igv 3.8.1 → 3.8.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -10
- package/dist/igv.d.ts +7 -2
- package/dist/igv.esm.js +777 -265
- package/dist/igv.esm.min.js +9 -9
- package/dist/igv.esm.min.js.map +1 -1
- package/dist/igv.js +777 -265
- package/dist/igv.min.js +9 -9
- package/dist/igv.min.js.map +1 -1
- package/package.json +2 -2
package/dist/igv.js
CHANGED
|
@@ -10612,7 +10612,7 @@
|
|
|
10612
10612
|
return 1 === unique.length
|
|
10613
10613
|
}
|
|
10614
10614
|
|
|
10615
|
-
/*! @license DOMPurify 3.4.
|
|
10615
|
+
/*! @license DOMPurify 3.4.11 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.4.11/LICENSE */
|
|
10616
10616
|
|
|
10617
10617
|
function _arrayLikeToArray(r, a) {
|
|
10618
10618
|
(null == a || a > r.length) && (a = r.length);
|
|
@@ -10941,8 +10941,14 @@
|
|
|
10941
10941
|
);
|
|
10942
10942
|
const DOCTYPE_NAME = seal(/^html$/i);
|
|
10943
10943
|
const CUSTOM_ELEMENT = seal(/^[a-z][.\w]*(-[.\w]+)+$/i);
|
|
10944
|
+
// Markup-significant character probes used by _sanitizeElements.
|
|
10945
|
+
// Shared module-level instances are safe despite the sticky /g flags:
|
|
10946
|
+
// unapply() resets lastIndex for RegExp receivers before every call.
|
|
10947
|
+
const ELEMENT_MARKUP_PROBE = seal(/<[/\w!]/g);
|
|
10948
|
+
const COMMENT_MARKUP_PROBE = seal(/<[/\w]/g);
|
|
10949
|
+
const FALLBACK_TAG_CLOSE = seal(/<\/no(script|embed|frames)/i);
|
|
10950
|
+
const SELF_CLOSING_TAG = seal(/\/>/i);
|
|
10944
10951
|
|
|
10945
|
-
/* eslint-disable @typescript-eslint/indent */
|
|
10946
10952
|
// https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType
|
|
10947
10953
|
const NODE_TYPE = {
|
|
10948
10954
|
element: 1,
|
|
@@ -10953,7 +10959,7 @@
|
|
|
10953
10959
|
// Deprecated
|
|
10954
10960
|
entityNode: 6,
|
|
10955
10961
|
// Deprecated
|
|
10956
|
-
|
|
10962
|
+
processingInstruction: 7,
|
|
10957
10963
|
comment: 8,
|
|
10958
10964
|
document: 9,
|
|
10959
10965
|
documentType: 10,
|
|
@@ -11014,10 +11020,25 @@
|
|
|
11014
11020
|
uponSanitizeShadowNode: []
|
|
11015
11021
|
};
|
|
11016
11022
|
};
|
|
11023
|
+
/**
|
|
11024
|
+
* Resolve a set-valued configuration option: a fresh set built from
|
|
11025
|
+
* cfg[key] when it is an own array property (seeded with a clone of
|
|
11026
|
+
* options.base when given, case-normalized via options.transform),
|
|
11027
|
+
* the fallback set otherwise.
|
|
11028
|
+
*
|
|
11029
|
+
* @param cfg the cloned, prototype-free configuration object
|
|
11030
|
+
* @param key the configuration property to read
|
|
11031
|
+
* @param fallback the set to use when the option is absent or not an array
|
|
11032
|
+
* @param options transform and optional base set to merge into
|
|
11033
|
+
* @returns the resolved set
|
|
11034
|
+
*/
|
|
11035
|
+
const _resolveSetOption = function _resolveSetOption(cfg, key, fallback, options) {
|
|
11036
|
+
return objectHasOwnProperty(cfg, key) && arrayIsArray(cfg[key]) ? addToSet(options.base ? clone(options.base) : {}, cfg[key], options.transform) : fallback;
|
|
11037
|
+
};
|
|
11017
11038
|
function createDOMPurify() {
|
|
11018
11039
|
let window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();
|
|
11019
11040
|
const DOMPurify = root => createDOMPurify(root);
|
|
11020
|
-
DOMPurify.version = '3.4.
|
|
11041
|
+
DOMPurify.version = '3.4.11';
|
|
11021
11042
|
DOMPurify.removed = [];
|
|
11022
11043
|
if (!window || !window.document || window.document.nodeType !== NODE_TYPE.document || !window.Element) {
|
|
11023
11044
|
// Not running in a browser, provide a factory function
|
|
@@ -11062,6 +11083,54 @@
|
|
|
11062
11083
|
}
|
|
11063
11084
|
let trustedTypesPolicy;
|
|
11064
11085
|
let emptyHTML = '';
|
|
11086
|
+
// The instance's own internal Trusted Types policy. Unlike a caller-supplied
|
|
11087
|
+
// `TRUSTED_TYPES_POLICY`, this is created at most once — Trusted Types throws
|
|
11088
|
+
// on duplicate policy names — and is the only policy allowed to persist
|
|
11089
|
+
// across configurations and survive `clearConfig()`.
|
|
11090
|
+
let defaultTrustedTypesPolicy;
|
|
11091
|
+
let defaultTrustedTypesPolicyResolved = false;
|
|
11092
|
+
// Tracks whether we are already inside a call to the configured Trusted Types
|
|
11093
|
+
// policy (`createHTML` or `createScriptURL`). If a supplied policy callback
|
|
11094
|
+
// itself calls `DOMPurify.sanitize` (the cause of #1422), `sanitize` would
|
|
11095
|
+
// re-enter the policy and recurse until the stack overflows. We detect that
|
|
11096
|
+
// re-entry and throw a clear, actionable error instead. The guard is shared
|
|
11097
|
+
// across both callbacks, because either one re-entering `sanitize` triggers
|
|
11098
|
+
// the same unbounded recursion.
|
|
11099
|
+
let IN_TRUSTED_TYPES_POLICY = 0;
|
|
11100
|
+
const _assertNotInTrustedTypesPolicy = function _assertNotInTrustedTypesPolicy() {
|
|
11101
|
+
if (IN_TRUSTED_TYPES_POLICY > 0) {
|
|
11102
|
+
throw typeErrorCreate('A configured TRUSTED_TYPES_POLICY callback (createHTML or ' + 'createScriptURL) must not call DOMPurify.sanitize, as that causes ' + 'infinite recursion. Do not pass a policy whose callbacks wrap ' + 'DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted ' + 'Types" section of the README.');
|
|
11103
|
+
}
|
|
11104
|
+
};
|
|
11105
|
+
const _createTrustedHTML = function _createTrustedHTML(html) {
|
|
11106
|
+
_assertNotInTrustedTypesPolicy();
|
|
11107
|
+
IN_TRUSTED_TYPES_POLICY++;
|
|
11108
|
+
try {
|
|
11109
|
+
return trustedTypesPolicy.createHTML(html);
|
|
11110
|
+
} finally {
|
|
11111
|
+
IN_TRUSTED_TYPES_POLICY--;
|
|
11112
|
+
}
|
|
11113
|
+
};
|
|
11114
|
+
const _createTrustedScriptURL = function _createTrustedScriptURL(scriptUrl) {
|
|
11115
|
+
_assertNotInTrustedTypesPolicy();
|
|
11116
|
+
IN_TRUSTED_TYPES_POLICY++;
|
|
11117
|
+
try {
|
|
11118
|
+
return trustedTypesPolicy.createScriptURL(scriptUrl);
|
|
11119
|
+
} finally {
|
|
11120
|
+
IN_TRUSTED_TYPES_POLICY--;
|
|
11121
|
+
}
|
|
11122
|
+
};
|
|
11123
|
+
// Lazily resolve (and cache) the instance's internal default policy.
|
|
11124
|
+
// Resolution is attempted at most once: a successful `createPolicy` cannot be
|
|
11125
|
+
// repeated (Trusted Types throws on duplicate names), and a failed or
|
|
11126
|
+
// unsupported attempt must not be retried on every parse.
|
|
11127
|
+
const _getDefaultTrustedTypesPolicy = function _getDefaultTrustedTypesPolicy() {
|
|
11128
|
+
if (!defaultTrustedTypesPolicyResolved) {
|
|
11129
|
+
defaultTrustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, currentScript);
|
|
11130
|
+
defaultTrustedTypesPolicyResolved = true;
|
|
11131
|
+
}
|
|
11132
|
+
return defaultTrustedTypesPolicy;
|
|
11133
|
+
};
|
|
11065
11134
|
const _document = document,
|
|
11066
11135
|
implementation = _document.implementation,
|
|
11067
11136
|
createNodeIterator = _document.createNodeIterator,
|
|
@@ -11158,6 +11227,13 @@
|
|
|
11158
11227
|
let WHOLE_DOCUMENT = false;
|
|
11159
11228
|
/* Track whether config is already set on this instance of DOMPurify. */
|
|
11160
11229
|
let SET_CONFIG = false;
|
|
11230
|
+
/* Pristine allowlist bindings captured at setConfig() time. On the
|
|
11231
|
+
* persistent-config path sanitize() restores the sets from these before
|
|
11232
|
+
* the per-walk hook clone-guard, so a hook's in-call widening cannot
|
|
11233
|
+
* carry across calls. Null until setConfig() is called; reset by
|
|
11234
|
+
* clearConfig(). */
|
|
11235
|
+
let SET_CONFIG_ALLOWED_TAGS = null;
|
|
11236
|
+
let SET_CONFIG_ALLOWED_ATTR = null;
|
|
11161
11237
|
/* Decide if all elements (e.g. style, script) must be children of
|
|
11162
11238
|
* document.body. By default, browsers might move them to document.head */
|
|
11163
11239
|
let FORCE_BODY = false;
|
|
@@ -11200,7 +11276,17 @@
|
|
|
11200
11276
|
let USE_PROFILES = {};
|
|
11201
11277
|
/* Tags to ignore content of when KEEP_CONTENT is true */
|
|
11202
11278
|
let FORBID_CONTENTS = null;
|
|
11203
|
-
const DEFAULT_FORBID_CONTENTS = addToSet({}, ['annotation-xml', 'audio', 'colgroup', 'desc', 'foreignobject', 'head', 'iframe', 'math', 'mi', 'mn', 'mo', 'ms', 'mtext', 'noembed', 'noframes', 'noscript', 'plaintext', 'script',
|
|
11279
|
+
const DEFAULT_FORBID_CONTENTS = addToSet({}, ['annotation-xml', 'audio', 'colgroup', 'desc', 'foreignobject', 'head', 'iframe', 'math', 'mi', 'mn', 'mo', 'ms', 'mtext', 'noembed', 'noframes', 'noscript', 'plaintext', 'script',
|
|
11280
|
+
// <selectedcontent> mirrors the selected <option>'s subtree, cloned by
|
|
11281
|
+
// the UA (customizable <select>) — including any on* handlers — and the
|
|
11282
|
+
// engine re-mirrors synchronously whenever a removal changes which
|
|
11283
|
+
// option/selectedcontent is current, even inside DOMPurify's inert
|
|
11284
|
+
// DOMParser document. Hoisting its children on removal re-inserts a fresh
|
|
11285
|
+
// mirror target ahead of the walk, which the engine refills, looping
|
|
11286
|
+
// forever (DoS) and amplifying output. Dropping its content on removal
|
|
11287
|
+
// (rather than hoisting) breaks that cascade; the content is a duplicate
|
|
11288
|
+
// of the option, which is sanitized on its own. See campaign-3 F1/F6.
|
|
11289
|
+
'selectedcontent', 'style', 'svg', 'template', 'thead', 'title', 'video', 'xmp']);
|
|
11204
11290
|
/* Tags that are safe for data: URIs */
|
|
11205
11291
|
let DATA_URI_TAGS = null;
|
|
11206
11292
|
const DEFAULT_DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image', 'track']);
|
|
@@ -11216,8 +11302,10 @@
|
|
|
11216
11302
|
/* Allowed XHTML+XML namespaces */
|
|
11217
11303
|
let ALLOWED_NAMESPACES = null;
|
|
11218
11304
|
const DEFAULT_ALLOWED_NAMESPACES = addToSet({}, [MATHML_NAMESPACE, SVG_NAMESPACE, HTML_NAMESPACE], stringToString);
|
|
11219
|
-
|
|
11220
|
-
let
|
|
11305
|
+
const DEFAULT_MATHML_TEXT_INTEGRATION_POINTS = freeze(['mi', 'mo', 'mn', 'ms', 'mtext']);
|
|
11306
|
+
let MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, DEFAULT_MATHML_TEXT_INTEGRATION_POINTS);
|
|
11307
|
+
const DEFAULT_HTML_INTEGRATION_POINTS = freeze(['annotation-xml']);
|
|
11308
|
+
let HTML_INTEGRATION_POINTS = addToSet({}, DEFAULT_HTML_INTEGRATION_POINTS);
|
|
11221
11309
|
// Certain elements are allowed in both SVG and HTML
|
|
11222
11310
|
// namespace. We need to specify them explicitly
|
|
11223
11311
|
// so that they don't get erroneously deleted from
|
|
@@ -11259,14 +11347,32 @@
|
|
|
11259
11347
|
// HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is.
|
|
11260
11348
|
transformCaseFunc = PARSER_MEDIA_TYPE === 'application/xhtml+xml' ? stringToString : stringToLowerCase;
|
|
11261
11349
|
/* Set configuration parameters */
|
|
11262
|
-
ALLOWED_TAGS =
|
|
11263
|
-
|
|
11264
|
-
|
|
11265
|
-
|
|
11266
|
-
|
|
11267
|
-
|
|
11268
|
-
|
|
11269
|
-
|
|
11350
|
+
ALLOWED_TAGS = _resolveSetOption(cfg, 'ALLOWED_TAGS', DEFAULT_ALLOWED_TAGS, {
|
|
11351
|
+
transform: transformCaseFunc
|
|
11352
|
+
});
|
|
11353
|
+
ALLOWED_ATTR = _resolveSetOption(cfg, 'ALLOWED_ATTR', DEFAULT_ALLOWED_ATTR, {
|
|
11354
|
+
transform: transformCaseFunc
|
|
11355
|
+
});
|
|
11356
|
+
ALLOWED_NAMESPACES = _resolveSetOption(cfg, 'ALLOWED_NAMESPACES', DEFAULT_ALLOWED_NAMESPACES, {
|
|
11357
|
+
transform: stringToString
|
|
11358
|
+
});
|
|
11359
|
+
URI_SAFE_ATTRIBUTES = _resolveSetOption(cfg, 'ADD_URI_SAFE_ATTR', DEFAULT_URI_SAFE_ATTRIBUTES, {
|
|
11360
|
+
transform: transformCaseFunc,
|
|
11361
|
+
base: DEFAULT_URI_SAFE_ATTRIBUTES
|
|
11362
|
+
});
|
|
11363
|
+
DATA_URI_TAGS = _resolveSetOption(cfg, 'ADD_DATA_URI_TAGS', DEFAULT_DATA_URI_TAGS, {
|
|
11364
|
+
transform: transformCaseFunc,
|
|
11365
|
+
base: DEFAULT_DATA_URI_TAGS
|
|
11366
|
+
});
|
|
11367
|
+
FORBID_CONTENTS = _resolveSetOption(cfg, 'FORBID_CONTENTS', DEFAULT_FORBID_CONTENTS, {
|
|
11368
|
+
transform: transformCaseFunc
|
|
11369
|
+
});
|
|
11370
|
+
FORBID_TAGS = _resolveSetOption(cfg, 'FORBID_TAGS', clone({}), {
|
|
11371
|
+
transform: transformCaseFunc
|
|
11372
|
+
});
|
|
11373
|
+
FORBID_ATTR = _resolveSetOption(cfg, 'FORBID_ATTR', clone({}), {
|
|
11374
|
+
transform: transformCaseFunc
|
|
11375
|
+
});
|
|
11270
11376
|
USE_PROFILES = objectHasOwnProperty(cfg, 'USE_PROFILES') ? cfg.USE_PROFILES && typeof cfg.USE_PROFILES === 'object' ? clone(cfg.USE_PROFILES) : cfg.USE_PROFILES : false;
|
|
11271
11377
|
ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true
|
|
11272
11378
|
ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true
|
|
@@ -11285,8 +11391,8 @@
|
|
|
11285
11391
|
IN_PLACE = cfg.IN_PLACE || false; // Default false
|
|
11286
11392
|
IS_ALLOWED_URI$1 = isRegex(cfg.ALLOWED_URI_REGEXP) ? cfg.ALLOWED_URI_REGEXP : IS_ALLOWED_URI; // Default regexp
|
|
11287
11393
|
NAMESPACE = typeof cfg.NAMESPACE === 'string' ? cfg.NAMESPACE : HTML_NAMESPACE; // Default HTML namespace
|
|
11288
|
-
MATHML_TEXT_INTEGRATION_POINTS = objectHasOwnProperty(cfg, 'MATHML_TEXT_INTEGRATION_POINTS') && cfg.MATHML_TEXT_INTEGRATION_POINTS && typeof cfg.MATHML_TEXT_INTEGRATION_POINTS === 'object' ? clone(cfg.MATHML_TEXT_INTEGRATION_POINTS) : addToSet({},
|
|
11289
|
-
HTML_INTEGRATION_POINTS = objectHasOwnProperty(cfg, 'HTML_INTEGRATION_POINTS') && cfg.HTML_INTEGRATION_POINTS && typeof cfg.HTML_INTEGRATION_POINTS === 'object' ? clone(cfg.HTML_INTEGRATION_POINTS) : addToSet({},
|
|
11394
|
+
MATHML_TEXT_INTEGRATION_POINTS = objectHasOwnProperty(cfg, 'MATHML_TEXT_INTEGRATION_POINTS') && cfg.MATHML_TEXT_INTEGRATION_POINTS && typeof cfg.MATHML_TEXT_INTEGRATION_POINTS === 'object' ? clone(cfg.MATHML_TEXT_INTEGRATION_POINTS) : addToSet({}, DEFAULT_MATHML_TEXT_INTEGRATION_POINTS); // Default built-in map
|
|
11395
|
+
HTML_INTEGRATION_POINTS = objectHasOwnProperty(cfg, 'HTML_INTEGRATION_POINTS') && cfg.HTML_INTEGRATION_POINTS && typeof cfg.HTML_INTEGRATION_POINTS === 'object' ? clone(cfg.HTML_INTEGRATION_POINTS) : addToSet({}, DEFAULT_HTML_INTEGRATION_POINTS); // Default built-in map
|
|
11290
11396
|
const customElementHandling = objectHasOwnProperty(cfg, 'CUSTOM_ELEMENT_HANDLING') && cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING === 'object' ? clone(cfg.CUSTOM_ELEMENT_HANDLING) : create(null);
|
|
11291
11397
|
CUSTOM_ELEMENT_HANDLING = create(null);
|
|
11292
11398
|
if (objectHasOwnProperty(customElementHandling, 'tagNameCheck') && isRegexOrFunction(customElementHandling.tagNameCheck)) {
|
|
@@ -11298,6 +11404,7 @@
|
|
|
11298
11404
|
if (objectHasOwnProperty(customElementHandling, 'allowCustomizedBuiltInElements') && typeof customElementHandling.allowCustomizedBuiltInElements === 'boolean') {
|
|
11299
11405
|
CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = customElementHandling.allowCustomizedBuiltInElements; // Default undefined
|
|
11300
11406
|
}
|
|
11407
|
+
seal(CUSTOM_ELEMENT_HANDLING);
|
|
11301
11408
|
if (SAFE_FOR_TEMPLATES) {
|
|
11302
11409
|
ALLOW_DATA_ATTR = false;
|
|
11303
11410
|
}
|
|
@@ -11381,6 +11488,13 @@
|
|
|
11381
11488
|
addToSet(ALLOWED_TAGS, ['tbody']);
|
|
11382
11489
|
delete FORBID_TAGS.tbody;
|
|
11383
11490
|
}
|
|
11491
|
+
// Re-derive the active Trusted Types policy from this configuration on
|
|
11492
|
+
// every parse. The active policy must never be sticky closure state that
|
|
11493
|
+
// outlives the config that set it: a caller-supplied policy left in place
|
|
11494
|
+
// after `clearConfig()` — or after a later call that supplied none, or
|
|
11495
|
+
// `TRUSTED_TYPES_POLICY: null` — could sign a subsequent "default"
|
|
11496
|
+
// `RETURN_TRUSTED_TYPE` result with a foreign, possibly unsafe policy.
|
|
11497
|
+
// See GHSA-vxr8-fq34-vvx9.
|
|
11384
11498
|
if (cfg.TRUSTED_TYPES_POLICY) {
|
|
11385
11499
|
if (typeof cfg.TRUSTED_TYPES_POLICY.createHTML !== 'function') {
|
|
11386
11500
|
throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');
|
|
@@ -11388,35 +11502,47 @@
|
|
|
11388
11502
|
if (typeof cfg.TRUSTED_TYPES_POLICY.createScriptURL !== 'function') {
|
|
11389
11503
|
throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');
|
|
11390
11504
|
}
|
|
11391
|
-
//
|
|
11505
|
+
// A caller-supplied policy applies to this configuration only.
|
|
11506
|
+
const previousTrustedTypesPolicy = trustedTypesPolicy;
|
|
11392
11507
|
trustedTypesPolicy = cfg.TRUSTED_TYPES_POLICY;
|
|
11393
|
-
// Sign local variables required by `sanitize`.
|
|
11394
|
-
|
|
11508
|
+
// Sign local variables required by `sanitize`. If the supplied policy's
|
|
11509
|
+
// `createHTML` is circular (i.e. it calls `DOMPurify.sanitize`), this
|
|
11510
|
+
// throws via the re-entrancy guard. Restore the previous policy first so
|
|
11511
|
+
// the instance is not left in a poisoned state. See #1422.
|
|
11512
|
+
try {
|
|
11513
|
+
emptyHTML = _createTrustedHTML('');
|
|
11514
|
+
} catch (error) {
|
|
11515
|
+
trustedTypesPolicy = previousTrustedTypesPolicy;
|
|
11516
|
+
throw error;
|
|
11517
|
+
}
|
|
11518
|
+
} else if (cfg.TRUSTED_TYPES_POLICY === null) {
|
|
11519
|
+
// Explicit opt-out for this call: perform no Trusted Types signing and
|
|
11520
|
+
// create nothing (so a strict `trusted-types` CSP that disallows a
|
|
11521
|
+
// `dompurify` policy can still call `sanitize` from inside its own
|
|
11522
|
+
// policy — see #1422). Resetting to `undefined` rather than a sticky
|
|
11523
|
+
// `null` also drops any previously retained caller policy, so it cannot
|
|
11524
|
+
// resurface on a later call, while still allowing the next config-less
|
|
11525
|
+
// call to restore the internal default policy. See GHSA-vxr8-fq34-vvx9.
|
|
11526
|
+
trustedTypesPolicy = undefined;
|
|
11527
|
+
emptyHTML = '';
|
|
11395
11528
|
} else {
|
|
11396
|
-
//
|
|
11529
|
+
// No policy supplied: keep the currently active policy if one is set — a
|
|
11530
|
+
// previously supplied policy is intentionally sticky across config-less
|
|
11531
|
+
// calls — otherwise fall back to the instance's own internal policy,
|
|
11532
|
+
// created at most once. (A policy supplied for a *single* call still
|
|
11533
|
+
// lingers by design; what must not linger is a policy whose configuration
|
|
11534
|
+
// has been torn down via `clearConfig()`, which restores the default.)
|
|
11397
11535
|
if (trustedTypesPolicy === undefined) {
|
|
11398
|
-
trustedTypesPolicy =
|
|
11536
|
+
trustedTypesPolicy = _getDefaultTrustedTypesPolicy();
|
|
11399
11537
|
}
|
|
11400
|
-
//
|
|
11401
|
-
|
|
11402
|
-
|
|
11538
|
+
// Sign internal variables only when a policy is active. A falsy policy
|
|
11539
|
+
// (Trusted Types unsupported, creation failed, or an explicit opt-out)
|
|
11540
|
+
// leaves `emptyHTML` as a plain string, so we never call `.createHTML` on
|
|
11541
|
+
// a non-policy and throw. See #1422.
|
|
11542
|
+
if (trustedTypesPolicy && typeof emptyHTML === 'string') {
|
|
11543
|
+
emptyHTML = _createTrustedHTML('');
|
|
11403
11544
|
}
|
|
11404
11545
|
}
|
|
11405
|
-
/*
|
|
11406
|
-
* Mirror the clone-before-mutate pattern already applied above for
|
|
11407
|
-
* cfg.ADD_TAGS / cfg.ADD_ATTR: if any uponSanitize* hook is
|
|
11408
|
-
* registered AND the set still points at the default constant,
|
|
11409
|
-
* clone it. The hook then mutates the clone (in-call widening
|
|
11410
|
-
* still works exactly as documented) and the next default-cfg
|
|
11411
|
-
* call rebinds to the untouched original via the reassignment at
|
|
11412
|
-
* the top of this function.
|
|
11413
|
-
*/
|
|
11414
|
-
if ((hooks.uponSanitizeElement.length > 0 || hooks.uponSanitizeAttribute.length > 0) && ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {
|
|
11415
|
-
ALLOWED_TAGS = clone(ALLOWED_TAGS);
|
|
11416
|
-
}
|
|
11417
|
-
if (hooks.uponSanitizeAttribute.length > 0 && ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {
|
|
11418
|
-
ALLOWED_ATTR = clone(ALLOWED_ATTR);
|
|
11419
|
-
}
|
|
11420
11546
|
// Prevent further manipulation of configuration.
|
|
11421
11547
|
// Not available in IE8, Safari 5, etc.
|
|
11422
11548
|
if (freeze) {
|
|
@@ -11429,6 +11555,77 @@
|
|
|
11429
11555
|
* correctly. */
|
|
11430
11556
|
const ALL_SVG_TAGS = addToSet({}, [...svg$1, ...svgFilters, ...svgDisallowed]);
|
|
11431
11557
|
const ALL_MATHML_TAGS = addToSet({}, [...mathMl$1, ...mathMlDisallowed]);
|
|
11558
|
+
/**
|
|
11559
|
+
* Namespace rules for an element in the SVG namespace.
|
|
11560
|
+
*
|
|
11561
|
+
* @param tagName the element's lowercase tag name
|
|
11562
|
+
* @param parent the (possibly simulated) parent node
|
|
11563
|
+
* @param parentTagName the parent's lowercase tag name
|
|
11564
|
+
* @returns true if a spec-compliant parser could produce this element
|
|
11565
|
+
*/
|
|
11566
|
+
const _checkSvgNamespace = function _checkSvgNamespace(tagName, parent, parentTagName) {
|
|
11567
|
+
// The only way to switch from HTML namespace to SVG
|
|
11568
|
+
// is via <svg>. If it happens via any other tag, then
|
|
11569
|
+
// it should be killed.
|
|
11570
|
+
if (parent.namespaceURI === HTML_NAMESPACE) {
|
|
11571
|
+
return tagName === 'svg';
|
|
11572
|
+
}
|
|
11573
|
+
// The only way to switch from MathML to SVG is via <svg>
|
|
11574
|
+
// if the parent is either <annotation-xml> or a MathML
|
|
11575
|
+
// text integration point.
|
|
11576
|
+
if (parent.namespaceURI === MATHML_NAMESPACE) {
|
|
11577
|
+
return tagName === 'svg' && (parentTagName === 'annotation-xml' || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);
|
|
11578
|
+
}
|
|
11579
|
+
// We only allow elements that are defined in SVG
|
|
11580
|
+
// spec. All others are disallowed in SVG namespace.
|
|
11581
|
+
return Boolean(ALL_SVG_TAGS[tagName]);
|
|
11582
|
+
};
|
|
11583
|
+
/**
|
|
11584
|
+
* Namespace rules for an element in the MathML namespace.
|
|
11585
|
+
*
|
|
11586
|
+
* @param tagName the element's lowercase tag name
|
|
11587
|
+
* @param parent the (possibly simulated) parent node
|
|
11588
|
+
* @param parentTagName the parent's lowercase tag name
|
|
11589
|
+
* @returns true if a spec-compliant parser could produce this element
|
|
11590
|
+
*/
|
|
11591
|
+
const _checkMathMlNamespace = function _checkMathMlNamespace(tagName, parent, parentTagName) {
|
|
11592
|
+
// The only way to switch from HTML namespace to MathML
|
|
11593
|
+
// is via <math>. If it happens via any other tag, then
|
|
11594
|
+
// it should be killed.
|
|
11595
|
+
if (parent.namespaceURI === HTML_NAMESPACE) {
|
|
11596
|
+
return tagName === 'math';
|
|
11597
|
+
}
|
|
11598
|
+
// The only way to switch from SVG to MathML is via
|
|
11599
|
+
// <math> and HTML integration points
|
|
11600
|
+
if (parent.namespaceURI === SVG_NAMESPACE) {
|
|
11601
|
+
return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];
|
|
11602
|
+
}
|
|
11603
|
+
// We only allow elements that are defined in MathML
|
|
11604
|
+
// spec. All others are disallowed in MathML namespace.
|
|
11605
|
+
return Boolean(ALL_MATHML_TAGS[tagName]);
|
|
11606
|
+
};
|
|
11607
|
+
/**
|
|
11608
|
+
* Namespace rules for an element in the HTML namespace.
|
|
11609
|
+
*
|
|
11610
|
+
* @param tagName the element's lowercase tag name
|
|
11611
|
+
* @param parent the (possibly simulated) parent node
|
|
11612
|
+
* @param parentTagName the parent's lowercase tag name
|
|
11613
|
+
* @returns true if a spec-compliant parser could produce this element
|
|
11614
|
+
*/
|
|
11615
|
+
const _checkHtmlNamespace = function _checkHtmlNamespace(tagName, parent, parentTagName) {
|
|
11616
|
+
// The only way to switch from SVG to HTML is via
|
|
11617
|
+
// HTML integration points, and from MathML to HTML
|
|
11618
|
+
// is via MathML text integration points
|
|
11619
|
+
if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {
|
|
11620
|
+
return false;
|
|
11621
|
+
}
|
|
11622
|
+
if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {
|
|
11623
|
+
return false;
|
|
11624
|
+
}
|
|
11625
|
+
// We disallow tags that are specific for MathML
|
|
11626
|
+
// or SVG and should never appear in HTML namespace
|
|
11627
|
+
return !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]);
|
|
11628
|
+
};
|
|
11432
11629
|
/**
|
|
11433
11630
|
* @param element a DOM element whose namespace is being checked
|
|
11434
11631
|
* @returns Return false if the element has a
|
|
@@ -11451,51 +11648,13 @@
|
|
|
11451
11648
|
return false;
|
|
11452
11649
|
}
|
|
11453
11650
|
if (element.namespaceURI === SVG_NAMESPACE) {
|
|
11454
|
-
|
|
11455
|
-
// is via <svg>. If it happens via any other tag, then
|
|
11456
|
-
// it should be killed.
|
|
11457
|
-
if (parent.namespaceURI === HTML_NAMESPACE) {
|
|
11458
|
-
return tagName === 'svg';
|
|
11459
|
-
}
|
|
11460
|
-
// The only way to switch from MathML to SVG is via`
|
|
11461
|
-
// svg if parent is either <annotation-xml> or MathML
|
|
11462
|
-
// text integration points.
|
|
11463
|
-
if (parent.namespaceURI === MATHML_NAMESPACE) {
|
|
11464
|
-
return tagName === 'svg' && (parentTagName === 'annotation-xml' || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);
|
|
11465
|
-
}
|
|
11466
|
-
// We only allow elements that are defined in SVG
|
|
11467
|
-
// spec. All others are disallowed in SVG namespace.
|
|
11468
|
-
return Boolean(ALL_SVG_TAGS[tagName]);
|
|
11651
|
+
return _checkSvgNamespace(tagName, parent, parentTagName);
|
|
11469
11652
|
}
|
|
11470
11653
|
if (element.namespaceURI === MATHML_NAMESPACE) {
|
|
11471
|
-
|
|
11472
|
-
// is via <math>. If it happens via any other tag, then
|
|
11473
|
-
// it should be killed.
|
|
11474
|
-
if (parent.namespaceURI === HTML_NAMESPACE) {
|
|
11475
|
-
return tagName === 'math';
|
|
11476
|
-
}
|
|
11477
|
-
// The only way to switch from SVG to MathML is via
|
|
11478
|
-
// <math> and HTML integration points
|
|
11479
|
-
if (parent.namespaceURI === SVG_NAMESPACE) {
|
|
11480
|
-
return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];
|
|
11481
|
-
}
|
|
11482
|
-
// We only allow elements that are defined in MathML
|
|
11483
|
-
// spec. All others are disallowed in MathML namespace.
|
|
11484
|
-
return Boolean(ALL_MATHML_TAGS[tagName]);
|
|
11654
|
+
return _checkMathMlNamespace(tagName, parent, parentTagName);
|
|
11485
11655
|
}
|
|
11486
11656
|
if (element.namespaceURI === HTML_NAMESPACE) {
|
|
11487
|
-
|
|
11488
|
-
// HTML integration points, and from MathML to HTML
|
|
11489
|
-
// is via MathML text integration points
|
|
11490
|
-
if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {
|
|
11491
|
-
return false;
|
|
11492
|
-
}
|
|
11493
|
-
if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {
|
|
11494
|
-
return false;
|
|
11495
|
-
}
|
|
11496
|
-
// We disallow tags that are specific for MathML
|
|
11497
|
-
// or SVG and should never appear in HTML namespace
|
|
11498
|
-
return !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]);
|
|
11657
|
+
return _checkHtmlNamespace(tagName, parent, parentTagName);
|
|
11499
11658
|
}
|
|
11500
11659
|
// For XHTML and XML documents that support custom namespaces
|
|
11501
11660
|
if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && ALLOWED_NAMESPACES[element.namespaceURI]) {
|
|
@@ -11520,7 +11679,74 @@
|
|
|
11520
11679
|
// eslint-disable-next-line unicorn/prefer-dom-node-remove
|
|
11521
11680
|
getParentNode(node).removeChild(node);
|
|
11522
11681
|
} catch (_) {
|
|
11682
|
+
/* The normal detach failed — this is reached for a parentless node
|
|
11683
|
+
(getParentNode() is null, so .removeChild throws). Element.prototype
|
|
11684
|
+
.remove() is itself a spec no-op on a parentless node, so a recorded
|
|
11685
|
+
"removal" would otherwise hand the caller back an intact,
|
|
11686
|
+
payload-bearing node (e.g. a detached IN_PLACE root the mXSS canary or
|
|
11687
|
+
the style-with-element-child rule decided to kill). Fail closed by
|
|
11688
|
+
throwing — exactly as a clobbered root does at the IN_PLACE entry —
|
|
11689
|
+
rather than trying to "neutralize" the node via its own methods.
|
|
11690
|
+
Neutralizing would mean calling getAttributeNames()/removeAttribute()
|
|
11691
|
+
on the node, both of which a <form> root can clobber via a named child
|
|
11692
|
+
(and _isClobbered does not even probe getAttributeNames), so the
|
|
11693
|
+
neutralize step could itself be silently defeated, leaving the payload
|
|
11694
|
+
intact. A throw touches only the cached, clobber-safe remove() and
|
|
11695
|
+
getParentNode(). Generalizes GHSA-r47g-fvhr-h676 (clobbered-form root)
|
|
11696
|
+
to every root-kill reason. REPORT-3.
|
|
11697
|
+
This lives inside the catch, so it never fires for a normally-removed
|
|
11698
|
+
in-tree node: those have a parent, removeChild() succeeds, and the
|
|
11699
|
+
catch is not entered. Only a kept (parentless) root reaches here. */
|
|
11523
11700
|
remove(node);
|
|
11701
|
+
if (!getParentNode(node)) {
|
|
11702
|
+
throw typeErrorCreate('a node selected for removal could not be detached from its tree ' + 'and cannot be safely returned; refusing to sanitize in place');
|
|
11703
|
+
}
|
|
11704
|
+
}
|
|
11705
|
+
};
|
|
11706
|
+
/**
|
|
11707
|
+
* _neutralizeRoot
|
|
11708
|
+
*
|
|
11709
|
+
* Fail-closed teardown of an in-place root after the sanitize walk aborts
|
|
11710
|
+
* (campaign-3 F2). An internal throw mid-walk — e.g. a page-registered
|
|
11711
|
+
* custom element's reaction detaches a node so `_forceRemove`'s deliberate
|
|
11712
|
+
* parentless guard throws, or any other re-entrant engine mutation — would
|
|
11713
|
+
* otherwise leave the caller's *live* tree half-sanitized, with everything
|
|
11714
|
+
* after the abort point still carrying its handlers. There is no safe way
|
|
11715
|
+
* to resume the walk (the tree mutated under us), so we strip the root bare:
|
|
11716
|
+
* remove every child and every attribute, then let the caller's catch see
|
|
11717
|
+
* the original error. Clobber-safe (cached `remove`/`childNodes`/`attributes`
|
|
11718
|
+
* getters; the root was already clobber-pre-flighted at the IN_PLACE entry).
|
|
11719
|
+
*
|
|
11720
|
+
* @param root the in-place root to empty
|
|
11721
|
+
*/
|
|
11722
|
+
const _neutralizeRoot = function _neutralizeRoot(root) {
|
|
11723
|
+
const childNodes = getChildNodes(root);
|
|
11724
|
+
if (childNodes) {
|
|
11725
|
+
const snapshot = [];
|
|
11726
|
+
arrayForEach(childNodes, child => {
|
|
11727
|
+
arrayPush(snapshot, child);
|
|
11728
|
+
});
|
|
11729
|
+
arrayForEach(snapshot, child => {
|
|
11730
|
+
try {
|
|
11731
|
+
remove(child);
|
|
11732
|
+
} catch (_) {
|
|
11733
|
+
/* Best-effort teardown; a still-attached child is handled below */
|
|
11734
|
+
}
|
|
11735
|
+
});
|
|
11736
|
+
}
|
|
11737
|
+
const attributes = getAttributes(root);
|
|
11738
|
+
if (attributes) {
|
|
11739
|
+
for (let i = attributes.length - 1; i >= 0; --i) {
|
|
11740
|
+
const attribute = attributes[i];
|
|
11741
|
+
const name = attribute && attribute.name;
|
|
11742
|
+
if (typeof name === 'string') {
|
|
11743
|
+
try {
|
|
11744
|
+
root.removeAttribute(name);
|
|
11745
|
+
} catch (_) {
|
|
11746
|
+
/* Clobbered removeAttribute — ignore (fail-closed best effort) */
|
|
11747
|
+
}
|
|
11748
|
+
}
|
|
11749
|
+
}
|
|
11524
11750
|
}
|
|
11525
11751
|
};
|
|
11526
11752
|
/**
|
|
@@ -11555,6 +11781,72 @@
|
|
|
11555
11781
|
}
|
|
11556
11782
|
}
|
|
11557
11783
|
};
|
|
11784
|
+
/**
|
|
11785
|
+
* _stripDisallowedAttributes
|
|
11786
|
+
*
|
|
11787
|
+
* Removes every attribute the active configuration does not allow from a
|
|
11788
|
+
* single element, using the same allowlist as the main attribute pass (so
|
|
11789
|
+
* `on*` handlers go, but no `/^on/` blocklist is introduced). Used only to
|
|
11790
|
+
* neutralise nodes that are being discarded from an in-place tree.
|
|
11791
|
+
*
|
|
11792
|
+
* @param element the element to strip
|
|
11793
|
+
*/
|
|
11794
|
+
const _stripDisallowedAttributes = function _stripDisallowedAttributes(element) {
|
|
11795
|
+
const attributes = getAttributes(element);
|
|
11796
|
+
if (!attributes) {
|
|
11797
|
+
return;
|
|
11798
|
+
}
|
|
11799
|
+
for (let i = attributes.length - 1; i >= 0; --i) {
|
|
11800
|
+
const attribute = attributes[i];
|
|
11801
|
+
const name = attribute && attribute.name;
|
|
11802
|
+
if (typeof name !== 'string' || ALLOWED_ATTR[transformCaseFunc(name)]) {
|
|
11803
|
+
continue;
|
|
11804
|
+
}
|
|
11805
|
+
try {
|
|
11806
|
+
element.removeAttribute(name);
|
|
11807
|
+
} catch (_) {
|
|
11808
|
+
/* Clobbered removeAttribute on a doomed node — ignore */
|
|
11809
|
+
}
|
|
11810
|
+
}
|
|
11811
|
+
};
|
|
11812
|
+
/**
|
|
11813
|
+
* _neutralizeSubtree
|
|
11814
|
+
*
|
|
11815
|
+
* Completes the audit-5 F1 fix across every removal path. The KEEP_CONTENT
|
|
11816
|
+
* move-hoist neutralises only disallowed-tag removals; clobber, mXSS-canary,
|
|
11817
|
+
* namespace, comment, processing-instruction and KEEP_CONTENT:false removals
|
|
11818
|
+
* all drop their subtree wholesale via `_forceRemove`. On the IN_PLACE path
|
|
11819
|
+
* those dropped nodes are detached from the caller's LIVE tree but a
|
|
11820
|
+
* handler-bearing original among them (an `<img onerror>`/`<video>` that was
|
|
11821
|
+
* loading) keeps its queued resource event, which fires in page scope after
|
|
11822
|
+
* sanitize returns. This walks a removed subtree and strips every attribute
|
|
11823
|
+
* the active configuration does not allow — so `on*` handlers are cancelled
|
|
11824
|
+
* through the SAME allowlist that governs kept nodes, not a separate `/^on/`
|
|
11825
|
+
* blocklist. Run synchronously before sanitize returns, i.e. before any
|
|
11826
|
+
* queued event can fire. Hook-free by design: these nodes leave the output,
|
|
11827
|
+
* so firing attribute hooks for them would be surprising. Clobber-safe reads;
|
|
11828
|
+
* a doomed clobbered node may shadow `removeAttribute` (its own attributes are
|
|
11829
|
+
* irrelevant — it is discarded — while its non-clobbered descendants, e.g.
|
|
11830
|
+
* the `<img>`, are reached and scrubbed).
|
|
11831
|
+
*
|
|
11832
|
+
* @param root the root of a removed subtree to neutralise
|
|
11833
|
+
*/
|
|
11834
|
+
const _neutralizeSubtree = function _neutralizeSubtree(root) {
|
|
11835
|
+
const stack = [root];
|
|
11836
|
+
while (stack.length > 0) {
|
|
11837
|
+
const node = stack.pop();
|
|
11838
|
+
const nodeType = getNodeType ? getNodeType(node) : node.nodeType;
|
|
11839
|
+
if (nodeType === NODE_TYPE.element) {
|
|
11840
|
+
_stripDisallowedAttributes(node);
|
|
11841
|
+
}
|
|
11842
|
+
const childNodes = getChildNodes(node);
|
|
11843
|
+
if (childNodes) {
|
|
11844
|
+
for (let i = childNodes.length - 1; i >= 0; --i) {
|
|
11845
|
+
stack.push(childNodes[i]);
|
|
11846
|
+
}
|
|
11847
|
+
}
|
|
11848
|
+
}
|
|
11849
|
+
};
|
|
11558
11850
|
/**
|
|
11559
11851
|
* _initDocument
|
|
11560
11852
|
*
|
|
@@ -11576,7 +11868,7 @@
|
|
|
11576
11868
|
// Root of XHTML doc must contain xmlns declaration (see https://www.w3.org/TR/xhtml1/normative.html#strict)
|
|
11577
11869
|
dirty = '<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>' + dirty + '</body></html>';
|
|
11578
11870
|
}
|
|
11579
|
-
const dirtyPayload = trustedTypesPolicy ?
|
|
11871
|
+
const dirtyPayload = trustedTypesPolicy ? _createTrustedHTML(dirty) : dirty;
|
|
11580
11872
|
/*
|
|
11581
11873
|
* Use the DOMParser API by default, fallback later if needs be
|
|
11582
11874
|
* DOMParser not work for svg when has multiple root element.
|
|
@@ -11616,6 +11908,20 @@
|
|
|
11616
11908
|
// eslint-disable-next-line no-bitwise
|
|
11617
11909
|
NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT | NodeFilter.SHOW_PROCESSING_INSTRUCTION | NodeFilter.SHOW_CDATA_SECTION, null);
|
|
11618
11910
|
};
|
|
11911
|
+
/**
|
|
11912
|
+
* Replace template expression syntax (mustache, ERB, template
|
|
11913
|
+
* literal) with a space; shared by all SAFE_FOR_TEMPLATES scrub
|
|
11914
|
+
* sites. Order matters: mustache, then ERB, then template literal.
|
|
11915
|
+
*
|
|
11916
|
+
* @param value the string to scrub
|
|
11917
|
+
* @returns the scrubbed string
|
|
11918
|
+
*/
|
|
11919
|
+
const _stripTemplateExpressions = function _stripTemplateExpressions(value) {
|
|
11920
|
+
value = stringReplace(value, MUSTACHE_EXPR$1, ' ');
|
|
11921
|
+
value = stringReplace(value, ERB_EXPR$1, ' ');
|
|
11922
|
+
value = stringReplace(value, TMPLIT_EXPR$1, ' ');
|
|
11923
|
+
return value;
|
|
11924
|
+
};
|
|
11619
11925
|
/**
|
|
11620
11926
|
* Strip template-engine expressions ({{...}}, ${...}, <%...%>) from the
|
|
11621
11927
|
* character data of an element subtree. Used as the final safety net for
|
|
@@ -11635,20 +11941,28 @@
|
|
|
11635
11941
|
*
|
|
11636
11942
|
* @param node The root element whose character data should be scrubbed.
|
|
11637
11943
|
*/
|
|
11638
|
-
const
|
|
11944
|
+
const _scrubTemplateExpressions2 = function _scrubTemplateExpressions(node) {
|
|
11945
|
+
var _node$querySelectorAl;
|
|
11639
11946
|
node.normalize();
|
|
11640
11947
|
const walker = createNodeIterator.call(node.ownerDocument || node, node,
|
|
11641
11948
|
// eslint-disable-next-line no-bitwise
|
|
11642
11949
|
NodeFilter.SHOW_TEXT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_CDATA_SECTION | NodeFilter.SHOW_PROCESSING_INSTRUCTION, null);
|
|
11643
11950
|
let currentNode = walker.nextNode();
|
|
11644
11951
|
while (currentNode) {
|
|
11645
|
-
|
|
11646
|
-
arrayForEach([MUSTACHE_EXPR$1, ERB_EXPR$1, TMPLIT_EXPR$1], expr => {
|
|
11647
|
-
data = stringReplace(data, expr, ' ');
|
|
11648
|
-
});
|
|
11649
|
-
currentNode.data = data;
|
|
11952
|
+
currentNode.data = _stripTemplateExpressions(currentNode.data);
|
|
11650
11953
|
currentNode = walker.nextNode();
|
|
11651
11954
|
}
|
|
11955
|
+
// NodeIterator does not descend into <template>.content per the DOM spec,
|
|
11956
|
+
// so we must explicitly recurse into each template's content fragment,
|
|
11957
|
+
// mirroring the approach used by _sanitizeShadowDOM.
|
|
11958
|
+
const templates = (_node$querySelectorAl = node.querySelectorAll) === null || _node$querySelectorAl === void 0 ? void 0 : _node$querySelectorAl.call(node, 'template');
|
|
11959
|
+
if (templates) {
|
|
11960
|
+
arrayForEach(templates, tmpl => {
|
|
11961
|
+
if (_isDocumentFragment(tmpl.content)) {
|
|
11962
|
+
_scrubTemplateExpressions2(tmpl.content);
|
|
11963
|
+
}
|
|
11964
|
+
});
|
|
11965
|
+
}
|
|
11652
11966
|
};
|
|
11653
11967
|
/**
|
|
11654
11968
|
* _isClobbered
|
|
@@ -11744,67 +12058,64 @@
|
|
|
11744
12058
|
}
|
|
11745
12059
|
};
|
|
11746
12060
|
function _executeHooks(hooks, currentNode, data) {
|
|
12061
|
+
if (hooks.length === 0) {
|
|
12062
|
+
return;
|
|
12063
|
+
}
|
|
11747
12064
|
arrayForEach(hooks, hook => {
|
|
11748
12065
|
hook.call(DOMPurify, currentNode, data, CONFIG);
|
|
11749
12066
|
});
|
|
11750
12067
|
}
|
|
11751
12068
|
/**
|
|
11752
|
-
*
|
|
12069
|
+
* Structural-threat checks that condemn a node regardless of the
|
|
12070
|
+
* allowlists: mXSS via namespace confusion, risky CSS construction,
|
|
12071
|
+
* processing instructions, markup-bearing comments. Pure predicate;
|
|
12072
|
+
* the caller removes. Check order is load-bearing.
|
|
11753
12073
|
*
|
|
11754
|
-
* @
|
|
11755
|
-
* @
|
|
11756
|
-
* @
|
|
11757
|
-
* @param currentNode to check for permission to exist
|
|
11758
|
-
* @return true if node was killed, false if left alive
|
|
12074
|
+
* @param currentNode the node to inspect
|
|
12075
|
+
* @param tagName the node's transformCaseFunc'd tag name
|
|
12076
|
+
* @return true if the node must be removed
|
|
11759
12077
|
*/
|
|
11760
|
-
const
|
|
11761
|
-
let content = null;
|
|
11762
|
-
/* Execute a hook if present */
|
|
11763
|
-
_executeHooks(hooks.beforeSanitizeElements, currentNode, null);
|
|
11764
|
-
/* Check if element is clobbered or can clobber */
|
|
11765
|
-
if (_isClobbered(currentNode)) {
|
|
11766
|
-
_forceRemove(currentNode);
|
|
11767
|
-
return true;
|
|
11768
|
-
}
|
|
11769
|
-
/* Now let's check the element's type and name */
|
|
11770
|
-
const tagName = transformCaseFunc(currentNode.nodeName);
|
|
11771
|
-
/* Execute a hook if present */
|
|
11772
|
-
_executeHooks(hooks.uponSanitizeElement, currentNode, {
|
|
11773
|
-
tagName,
|
|
11774
|
-
allowedTags: ALLOWED_TAGS
|
|
11775
|
-
});
|
|
12078
|
+
const _isUnsafeNode = function _isUnsafeNode(currentNode, tagName) {
|
|
11776
12079
|
/* Detect mXSS attempts abusing namespace confusion */
|
|
11777
|
-
if (SAFE_FOR_XML && currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && regExpTest(
|
|
11778
|
-
_forceRemove(currentNode);
|
|
12080
|
+
if (SAFE_FOR_XML && currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && regExpTest(ELEMENT_MARKUP_PROBE, currentNode.textContent) && regExpTest(ELEMENT_MARKUP_PROBE, currentNode.innerHTML)) {
|
|
11779
12081
|
return true;
|
|
11780
12082
|
}
|
|
11781
12083
|
/* Remove risky CSS construction leading to mXSS */
|
|
11782
12084
|
if (SAFE_FOR_XML && currentNode.namespaceURI === HTML_NAMESPACE && tagName === 'style' && _isNode(currentNode.firstElementChild)) {
|
|
11783
|
-
_forceRemove(currentNode);
|
|
11784
12085
|
return true;
|
|
11785
12086
|
}
|
|
11786
12087
|
/* Remove any occurrence of processing instructions */
|
|
11787
|
-
if (currentNode.nodeType === NODE_TYPE.
|
|
11788
|
-
_forceRemove(currentNode);
|
|
12088
|
+
if (currentNode.nodeType === NODE_TYPE.processingInstruction) {
|
|
11789
12089
|
return true;
|
|
11790
12090
|
}
|
|
11791
12091
|
/* Remove any kind of possibly harmful comments */
|
|
11792
|
-
if (SAFE_FOR_XML && currentNode.nodeType === NODE_TYPE.comment && regExpTest(
|
|
11793
|
-
_forceRemove(currentNode);
|
|
12092
|
+
if (SAFE_FOR_XML && currentNode.nodeType === NODE_TYPE.comment && regExpTest(COMMENT_MARKUP_PROBE, currentNode.data)) {
|
|
11794
12093
|
return true;
|
|
11795
12094
|
}
|
|
11796
|
-
|
|
11797
|
-
|
|
11798
|
-
|
|
11799
|
-
|
|
11800
|
-
|
|
11801
|
-
|
|
11802
|
-
|
|
11803
|
-
|
|
11804
|
-
|
|
11805
|
-
|
|
12095
|
+
return false;
|
|
12096
|
+
};
|
|
12097
|
+
/**
|
|
12098
|
+
* Handle a node whose tag is forbidden or not allowlisted: keep
|
|
12099
|
+
* allowed custom elements (false return exits _sanitizeElements
|
|
12100
|
+
* early - namespace/fallback checks and the afterSanitizeElements
|
|
12101
|
+
* hook are intentionally skipped for kept custom elements), else
|
|
12102
|
+
* hoist content per KEEP_CONTENT and remove.
|
|
12103
|
+
*
|
|
12104
|
+
* @param currentNode the disallowed node
|
|
12105
|
+
* @param tagName the node's transformCaseFunc'd tag name
|
|
12106
|
+
* @return true if the node was removed, false if kept
|
|
12107
|
+
*/
|
|
12108
|
+
const _sanitizeDisallowedNode = function _sanitizeDisallowedNode(currentNode, tagName) {
|
|
12109
|
+
/* Check if we have a custom element to handle */
|
|
12110
|
+
if (!FORBID_TAGS[tagName] && _isBasicCustomElement(tagName)) {
|
|
12111
|
+
if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) {
|
|
12112
|
+
return false;
|
|
12113
|
+
}
|
|
12114
|
+
if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)) {
|
|
12115
|
+
return false;
|
|
11806
12116
|
}
|
|
11807
|
-
|
|
12117
|
+
}
|
|
12118
|
+
/* Keep content except for bad-listed elements.
|
|
11808
12119
|
Use the cached prototype getters exclusively — the previous code
|
|
11809
12120
|
had `|| currentNode.parentNode` / `|| currentNode.childNodes`
|
|
11810
12121
|
fallbacks, but the cached getters always return the canonical
|
|
@@ -11812,20 +12123,72 @@
|
|
|
11812
12123
|
path was dead in safe cases and a clobbering surface in unsafe
|
|
11813
12124
|
ones. Falsy cached results stay falsy; the `if (childNodes &&
|
|
11814
12125
|
parentNode)` check already gates correctly. */
|
|
11815
|
-
|
|
11816
|
-
|
|
11817
|
-
|
|
11818
|
-
|
|
11819
|
-
|
|
11820
|
-
|
|
11821
|
-
|
|
11822
|
-
|
|
11823
|
-
|
|
12126
|
+
if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {
|
|
12127
|
+
const parentNode = getParentNode(currentNode);
|
|
12128
|
+
const childNodes = getChildNodes(currentNode);
|
|
12129
|
+
if (childNodes && parentNode) {
|
|
12130
|
+
const childCount = childNodes.length;
|
|
12131
|
+
/* In-place: hoist the *original* children so the iterator visits
|
|
12132
|
+
and sanitises them through the same allowlist pass as every other
|
|
12133
|
+
node. The caller built the tree in the live document, so the
|
|
12134
|
+
originals carry already-queued resource events (`<img onerror>`,
|
|
12135
|
+
`<video>`/`<audio>` error, lazy/`onload`, …); cloning would leave
|
|
12136
|
+
those originals detached but still armed, firing in page scope
|
|
12137
|
+
while the returned tree looked clean. Moving is safe in-place: the
|
|
12138
|
+
root is pre-validated as an allowed tag and so is never the node
|
|
12139
|
+
being removed, which keeps `parentNode` inside the iterator root
|
|
12140
|
+
and the relocated child inside the serialised tree.
|
|
12141
|
+
Otherwise (string / DOM-copy paths): clone. The iterator is rooted
|
|
12142
|
+
at — and the result serialised from — `body`, so a restrictive
|
|
12143
|
+
ALLOWED_TAGS that removes `body` itself must leave its content in
|
|
12144
|
+
place, which only cloning does; and those paths parse into an
|
|
12145
|
+
inert document, so their discarded originals never had a queued
|
|
12146
|
+
event to neutralise.
|
|
12147
|
+
`childNodes` is live; a tail-to-head walk keeps `childNodes[i]`
|
|
12148
|
+
valid whether we move (drops the trailing entry) or clone (leaves
|
|
12149
|
+
the list intact). */
|
|
12150
|
+
for (let i = childCount - 1; i >= 0; --i) {
|
|
12151
|
+
const hoisted = IN_PLACE ? childNodes[i] : cloneNode(childNodes[i], true);
|
|
12152
|
+
parentNode.insertBefore(hoisted, getNextSibling(currentNode));
|
|
11824
12153
|
}
|
|
11825
12154
|
}
|
|
12155
|
+
}
|
|
12156
|
+
_forceRemove(currentNode);
|
|
12157
|
+
return true;
|
|
12158
|
+
};
|
|
12159
|
+
/**
|
|
12160
|
+
* _sanitizeElements
|
|
12161
|
+
*
|
|
12162
|
+
* @protect nodeName
|
|
12163
|
+
* @protect textContent
|
|
12164
|
+
* @protect removeChild
|
|
12165
|
+
* @param currentNode to check for permission to exist
|
|
12166
|
+
* @return true if node was killed, false if left alive
|
|
12167
|
+
*/
|
|
12168
|
+
const _sanitizeElements = function _sanitizeElements(currentNode) {
|
|
12169
|
+
/* Execute a hook if present */
|
|
12170
|
+
_executeHooks(hooks.beforeSanitizeElements, currentNode, null);
|
|
12171
|
+
/* Check if element is clobbered or can clobber */
|
|
12172
|
+
if (_isClobbered(currentNode)) {
|
|
11826
12173
|
_forceRemove(currentNode);
|
|
11827
12174
|
return true;
|
|
11828
12175
|
}
|
|
12176
|
+
/* Now let's check the element's type and name */
|
|
12177
|
+
const tagName = transformCaseFunc(getNodeName ? getNodeName(currentNode) : currentNode.nodeName);
|
|
12178
|
+
/* Execute a hook if present */
|
|
12179
|
+
_executeHooks(hooks.uponSanitizeElement, currentNode, {
|
|
12180
|
+
tagName,
|
|
12181
|
+
allowedTags: ALLOWED_TAGS
|
|
12182
|
+
});
|
|
12183
|
+
/* Remove mXSS vectors, processing instructions and risky comments */
|
|
12184
|
+
if (_isUnsafeNode(currentNode, tagName)) {
|
|
12185
|
+
_forceRemove(currentNode);
|
|
12186
|
+
return true;
|
|
12187
|
+
}
|
|
12188
|
+
/* Remove element if anything forbids its presence */
|
|
12189
|
+
if (FORBID_TAGS[tagName] || !(EXTRA_ELEMENT_HANDLING.tagCheck instanceof Function && EXTRA_ELEMENT_HANDLING.tagCheck(tagName)) && !ALLOWED_TAGS[tagName]) {
|
|
12190
|
+
return _sanitizeDisallowedNode(currentNode, tagName);
|
|
12191
|
+
}
|
|
11829
12192
|
/* Check whether element has a valid namespace.
|
|
11830
12193
|
Realm-safe check (GHSA-hpcv-96wg-7vj8): use the cached Node.prototype
|
|
11831
12194
|
nodeType getter rather than `instanceof Element`, which is realm-
|
|
@@ -11838,17 +12201,14 @@
|
|
|
11838
12201
|
return true;
|
|
11839
12202
|
}
|
|
11840
12203
|
/* Make sure that older browsers don't get fallback-tag mXSS */
|
|
11841
|
-
if ((tagName === 'noscript' || tagName === 'noembed' || tagName === 'noframes') && regExpTest(
|
|
12204
|
+
if ((tagName === 'noscript' || tagName === 'noembed' || tagName === 'noframes') && regExpTest(FALLBACK_TAG_CLOSE, currentNode.innerHTML)) {
|
|
11842
12205
|
_forceRemove(currentNode);
|
|
11843
12206
|
return true;
|
|
11844
12207
|
}
|
|
11845
12208
|
/* Sanitize element content to be template-safe */
|
|
11846
12209
|
if (SAFE_FOR_TEMPLATES && currentNode.nodeType === NODE_TYPE.text) {
|
|
11847
12210
|
/* Get the element's text content */
|
|
11848
|
-
content = currentNode.textContent;
|
|
11849
|
-
arrayForEach([MUSTACHE_EXPR$1, ERB_EXPR$1, TMPLIT_EXPR$1], expr => {
|
|
11850
|
-
content = stringReplace(content, expr, ' ');
|
|
11851
|
-
});
|
|
12211
|
+
const content = _stripTemplateExpressions(currentNode.textContent);
|
|
11852
12212
|
if (currentNode.textContent !== content) {
|
|
11853
12213
|
arrayPush(DOMPurify.removed, {
|
|
11854
12214
|
element: currentNode.cloneNode()
|
|
@@ -11883,7 +12243,7 @@
|
|
|
11883
12243
|
(https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)
|
|
11884
12244
|
XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)
|
|
11885
12245
|
We don't need to check the value; it's always URI safe. */
|
|
11886
|
-
if (ALLOW_DATA_ATTR &&
|
|
12246
|
+
if (ALLOW_DATA_ATTR && regExpTest(DATA_ATTR$1, lcName)) ; else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR$1, lcName)) ; else if (!nameIsPermitted) {
|
|
11887
12247
|
if (
|
|
11888
12248
|
// First condition does a very basic check if a) it's basically a valid custom element tagname AND
|
|
11889
12249
|
// b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck
|
|
@@ -11915,6 +12275,63 @@
|
|
|
11915
12275
|
const _isBasicCustomElement = function _isBasicCustomElement(tagName) {
|
|
11916
12276
|
return !RESERVED_CUSTOM_ELEMENT_NAMES[stringToLowerCase(tagName)] && regExpTest(CUSTOM_ELEMENT$1, tagName);
|
|
11917
12277
|
};
|
|
12278
|
+
/**
|
|
12279
|
+
* Wrap an attribute value in the matching Trusted Types object when
|
|
12280
|
+
* the active policy requires it. Namespaced attributes pass through
|
|
12281
|
+
* unchanged (no TT support yet, see
|
|
12282
|
+
* https://bugs.chromium.org/p/chromium/issues/detail?id=1305293).
|
|
12283
|
+
*
|
|
12284
|
+
* @param lcTag lowercase tag name of the containing element
|
|
12285
|
+
* @param lcName lowercase attribute name
|
|
12286
|
+
* @param namespaceURI the attribute's namespace, if any
|
|
12287
|
+
* @param value the attribute value to wrap
|
|
12288
|
+
* @return the value, wrapped when Trusted Types demand it
|
|
12289
|
+
*/
|
|
12290
|
+
const _applyTrustedTypesToAttribute = function _applyTrustedTypesToAttribute(lcTag, lcName, namespaceURI, value) {
|
|
12291
|
+
if (trustedTypesPolicy && typeof trustedTypes === 'object' && typeof trustedTypes.getAttributeType === 'function' && !namespaceURI) {
|
|
12292
|
+
switch (trustedTypes.getAttributeType(lcTag, lcName)) {
|
|
12293
|
+
case 'TrustedHTML':
|
|
12294
|
+
{
|
|
12295
|
+
return _createTrustedHTML(value);
|
|
12296
|
+
}
|
|
12297
|
+
case 'TrustedScriptURL':
|
|
12298
|
+
{
|
|
12299
|
+
return _createTrustedScriptURL(value);
|
|
12300
|
+
}
|
|
12301
|
+
}
|
|
12302
|
+
}
|
|
12303
|
+
return value;
|
|
12304
|
+
};
|
|
12305
|
+
/**
|
|
12306
|
+
* Write a modified attribute value back onto the element. On
|
|
12307
|
+
* success, re-probe for clobbering introduced by the new value and
|
|
12308
|
+
* remove the element when found; otherwise pop the removal entry
|
|
12309
|
+
* recorded by the earlier _removeAttribute (long-standing pairing
|
|
12310
|
+
* with the SANITIZE_NAMED_PROPS path - do not "fix" casually). On
|
|
12311
|
+
* failure, remove the attribute instead.
|
|
12312
|
+
*
|
|
12313
|
+
* @param currentNode the element carrying the attribute
|
|
12314
|
+
* @param name the attribute name as present on the element
|
|
12315
|
+
* @param namespaceURI the attribute's namespace, if any
|
|
12316
|
+
* @param value the new attribute value
|
|
12317
|
+
*/
|
|
12318
|
+
const _setAttributeValue = function _setAttributeValue(currentNode, name, namespaceURI, value) {
|
|
12319
|
+
try {
|
|
12320
|
+
if (namespaceURI) {
|
|
12321
|
+
currentNode.setAttributeNS(namespaceURI, name, value);
|
|
12322
|
+
} else {
|
|
12323
|
+
/* Fallback to setAttribute() for browser-unrecognized namespaces e.g. "x-schema". */
|
|
12324
|
+
currentNode.setAttribute(name, value);
|
|
12325
|
+
}
|
|
12326
|
+
if (_isClobbered(currentNode)) {
|
|
12327
|
+
_forceRemove(currentNode);
|
|
12328
|
+
} else {
|
|
12329
|
+
arrayPop(DOMPurify.removed);
|
|
12330
|
+
}
|
|
12331
|
+
} catch (_) {
|
|
12332
|
+
_removeAttribute(name, currentNode);
|
|
12333
|
+
}
|
|
12334
|
+
};
|
|
11918
12335
|
/**
|
|
11919
12336
|
* _sanitizeAttributes
|
|
11920
12337
|
*
|
|
@@ -11941,6 +12358,7 @@
|
|
|
11941
12358
|
forceKeepAttr: undefined
|
|
11942
12359
|
};
|
|
11943
12360
|
let l = attributes.length;
|
|
12361
|
+
const lcTag = transformCaseFunc(currentNode.nodeName);
|
|
11944
12362
|
/* Go backwards over all attributes; safely remove bad ones */
|
|
11945
12363
|
while (l--) {
|
|
11946
12364
|
const attr = attributes[l];
|
|
@@ -11978,7 +12396,7 @@
|
|
|
11978
12396
|
_removeAttribute(name, currentNode);
|
|
11979
12397
|
continue;
|
|
11980
12398
|
}
|
|
11981
|
-
/* Did the hooks
|
|
12399
|
+
/* Did the hooks force-keep the attribute? */
|
|
11982
12400
|
if (hookEvent.forceKeepAttr) {
|
|
11983
12401
|
continue;
|
|
11984
12402
|
}
|
|
@@ -11988,56 +12406,24 @@
|
|
|
11988
12406
|
continue;
|
|
11989
12407
|
}
|
|
11990
12408
|
/* Work around a security issue in jQuery 3.0 */
|
|
11991
|
-
if (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(
|
|
12409
|
+
if (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(SELF_CLOSING_TAG, value)) {
|
|
11992
12410
|
_removeAttribute(name, currentNode);
|
|
11993
12411
|
continue;
|
|
11994
12412
|
}
|
|
11995
12413
|
/* Sanitize attribute content to be template-safe */
|
|
11996
12414
|
if (SAFE_FOR_TEMPLATES) {
|
|
11997
|
-
|
|
11998
|
-
value = stringReplace(value, expr, ' ');
|
|
11999
|
-
});
|
|
12415
|
+
value = _stripTemplateExpressions(value);
|
|
12000
12416
|
}
|
|
12001
12417
|
/* Is `value` valid for this attribute? */
|
|
12002
|
-
const lcTag = transformCaseFunc(currentNode.nodeName);
|
|
12003
12418
|
if (!_isValidAttribute(lcTag, lcName, value)) {
|
|
12004
12419
|
_removeAttribute(name, currentNode);
|
|
12005
12420
|
continue;
|
|
12006
12421
|
}
|
|
12007
12422
|
/* Handle attributes that require Trusted Types */
|
|
12008
|
-
|
|
12009
|
-
if (namespaceURI) ; else {
|
|
12010
|
-
switch (trustedTypes.getAttributeType(lcTag, lcName)) {
|
|
12011
|
-
case 'TrustedHTML':
|
|
12012
|
-
{
|
|
12013
|
-
value = trustedTypesPolicy.createHTML(value);
|
|
12014
|
-
break;
|
|
12015
|
-
}
|
|
12016
|
-
case 'TrustedScriptURL':
|
|
12017
|
-
{
|
|
12018
|
-
value = trustedTypesPolicy.createScriptURL(value);
|
|
12019
|
-
break;
|
|
12020
|
-
}
|
|
12021
|
-
}
|
|
12022
|
-
}
|
|
12023
|
-
}
|
|
12423
|
+
value = _applyTrustedTypesToAttribute(lcTag, lcName, namespaceURI, value);
|
|
12024
12424
|
/* Handle invalid data-* attribute set by try-catching it */
|
|
12025
12425
|
if (value !== initValue) {
|
|
12026
|
-
|
|
12027
|
-
if (namespaceURI) {
|
|
12028
|
-
currentNode.setAttributeNS(namespaceURI, name, value);
|
|
12029
|
-
} else {
|
|
12030
|
-
/* Fallback to setAttribute() for browser-unrecognized namespaces e.g. "x-schema". */
|
|
12031
|
-
currentNode.setAttribute(name, value);
|
|
12032
|
-
}
|
|
12033
|
-
if (_isClobbered(currentNode)) {
|
|
12034
|
-
_forceRemove(currentNode);
|
|
12035
|
-
} else {
|
|
12036
|
-
arrayPop(DOMPurify.removed);
|
|
12037
|
-
}
|
|
12038
|
-
} catch (_) {
|
|
12039
|
-
_removeAttribute(name, currentNode);
|
|
12040
|
-
}
|
|
12426
|
+
_setAttributeValue(currentNode, name, namespaceURI, value);
|
|
12041
12427
|
}
|
|
12042
12428
|
}
|
|
12043
12429
|
/* Execute a hook if present */
|
|
@@ -12079,9 +12465,9 @@
|
|
|
12079
12465
|
iterator also surfaces. */
|
|
12080
12466
|
const shadowNodeType = getNodeType ? getNodeType(shadowNode) : shadowNode.nodeType;
|
|
12081
12467
|
if (shadowNodeType === NODE_TYPE.element) {
|
|
12082
|
-
const innerSr = getShadowRoot
|
|
12468
|
+
const innerSr = getShadowRoot(shadowNode);
|
|
12083
12469
|
if (_isDocumentFragment(innerSr)) {
|
|
12084
|
-
|
|
12470
|
+
_sanitizeAttachedShadowRoots(innerSr);
|
|
12085
12471
|
_sanitizeShadowDOM2(innerSr);
|
|
12086
12472
|
}
|
|
12087
12473
|
}
|
|
@@ -12108,46 +12494,81 @@
|
|
|
12108
12494
|
*
|
|
12109
12495
|
* @param root the subtree root to walk for attached shadow roots
|
|
12110
12496
|
*/
|
|
12111
|
-
const
|
|
12112
|
-
|
|
12113
|
-
|
|
12114
|
-
|
|
12115
|
-
|
|
12116
|
-
|
|
12117
|
-
|
|
12118
|
-
|
|
12119
|
-
|
|
12120
|
-
|
|
12121
|
-
|
|
12122
|
-
|
|
12123
|
-
|
|
12124
|
-
|
|
12125
|
-
|
|
12126
|
-
|
|
12497
|
+
const _sanitizeAttachedShadowRoots = function _sanitizeAttachedShadowRoots(root) {
|
|
12498
|
+
/* Iterative (explicit stack) rather than per-child recursion. DOM APIs
|
|
12499
|
+
impose no depth cap, so an attacker-shaped tree (JSON/CRDT/editor data
|
|
12500
|
+
built straight into the DOM — the IN_PLACE surface) deeper than the JS
|
|
12501
|
+
call-stack budget would otherwise overflow native recursion here and
|
|
12502
|
+
throw at the IN_PLACE entry pre-pass, before a single node is
|
|
12503
|
+
sanitized, leaving the caller's live tree untouched (fail-open). See
|
|
12504
|
+
campaign-3 F4. A heap stack keeps depth off the call stack.
|
|
12505
|
+
Each work item is either a node to descend into, or a deferred
|
|
12506
|
+
`_sanitizeShadowDOM` for an already-walked shadow root. The deferred
|
|
12507
|
+
form preserves the original post-order discipline: a shadow root's
|
|
12508
|
+
nested shadow roots are discovered before the outer shadow is
|
|
12509
|
+
sanitized (which may remove hosts). Pushes are in reverse of the
|
|
12510
|
+
desired processing order (LIFO): template content, then children, then
|
|
12511
|
+
the shadow-sanitize, then the shadow walk — so the order matches the
|
|
12512
|
+
previous recursion exactly. */
|
|
12513
|
+
const stack = [{
|
|
12514
|
+
node: root,
|
|
12515
|
+
shadow: null
|
|
12516
|
+
}];
|
|
12517
|
+
while (stack.length > 0) {
|
|
12518
|
+
const item = stack.pop();
|
|
12519
|
+
/* Deferred shadow-DOM sanitisation: runs after its subtree was walked. */
|
|
12520
|
+
if (item.shadow) {
|
|
12521
|
+
_sanitizeShadowDOM2(item.shadow);
|
|
12522
|
+
continue;
|
|
12127
12523
|
}
|
|
12128
|
-
|
|
12129
|
-
|
|
12130
|
-
|
|
12131
|
-
|
|
12132
|
-
|
|
12133
|
-
|
|
12134
|
-
|
|
12135
|
-
|
|
12136
|
-
|
|
12137
|
-
|
|
12138
|
-
|
|
12139
|
-
|
|
12140
|
-
|
|
12141
|
-
|
|
12142
|
-
|
|
12143
|
-
|
|
12144
|
-
|
|
12145
|
-
|
|
12146
|
-
|
|
12147
|
-
|
|
12148
|
-
|
|
12149
|
-
|
|
12150
|
-
|
|
12524
|
+
const node = item.node;
|
|
12525
|
+
const nodeType = getNodeType ? getNodeType(node) : node.nodeType;
|
|
12526
|
+
const isElement = nodeType === NODE_TYPE.element;
|
|
12527
|
+
/* (pushed last → processed first) Children, snapshotted in reverse so
|
|
12528
|
+
the first child is processed first. Snapshotting matters because a
|
|
12529
|
+
hook may detach siblings mid-walk. */
|
|
12530
|
+
const childNodes = getChildNodes(node);
|
|
12531
|
+
if (childNodes) {
|
|
12532
|
+
for (let i = childNodes.length - 1; i >= 0; --i) {
|
|
12533
|
+
stack.push({
|
|
12534
|
+
node: childNodes[i],
|
|
12535
|
+
shadow: null
|
|
12536
|
+
});
|
|
12537
|
+
}
|
|
12538
|
+
}
|
|
12539
|
+
/* (pushed before children → processed after them, matching the old
|
|
12540
|
+
"template content last" order) When the node is a <template>,
|
|
12541
|
+
descend into its content. */
|
|
12542
|
+
if (isElement) {
|
|
12543
|
+
const rootName = getNodeName ? getNodeName(node) : null;
|
|
12544
|
+
if (typeof rootName === 'string' && transformCaseFunc(rootName) === 'template') {
|
|
12545
|
+
const content = node.content;
|
|
12546
|
+
if (_isDocumentFragment(content)) {
|
|
12547
|
+
stack.push({
|
|
12548
|
+
node: content,
|
|
12549
|
+
shadow: null
|
|
12550
|
+
});
|
|
12551
|
+
}
|
|
12552
|
+
}
|
|
12553
|
+
}
|
|
12554
|
+
/* Shadow root (processed first): walk its subtree, then sanitise it.
|
|
12555
|
+
Realm-safe check (GHSA-hpcv-96wg-7vj8): nodeType-based detection
|
|
12556
|
+
rather than `instanceof DocumentFragment`, which is realm-bound and
|
|
12557
|
+
silently skipped foreign-realm shadow roots (e.g.
|
|
12558
|
+
iframe.contentDocument attachShadow). */
|
|
12559
|
+
if (isElement) {
|
|
12560
|
+
const sr = getShadowRoot(node);
|
|
12561
|
+
if (_isDocumentFragment(sr)) {
|
|
12562
|
+
/* Push the deferred sanitise first so it pops after the shadow
|
|
12563
|
+
walk we push next, i.e. nested shadow roots are discovered
|
|
12564
|
+
before this one is sanitised. */
|
|
12565
|
+
stack.push({
|
|
12566
|
+
node: null,
|
|
12567
|
+
shadow: sr
|
|
12568
|
+
}, {
|
|
12569
|
+
node: sr,
|
|
12570
|
+
shadow: null
|
|
12571
|
+
});
|
|
12151
12572
|
}
|
|
12152
12573
|
}
|
|
12153
12574
|
}
|
|
@@ -12178,16 +12599,41 @@
|
|
|
12178
12599
|
return dirty;
|
|
12179
12600
|
}
|
|
12180
12601
|
/* Assign config vars */
|
|
12181
|
-
if (
|
|
12602
|
+
if (SET_CONFIG) {
|
|
12603
|
+
/* Persistent setConfig() path: _parseConfig is skipped, so the sets are
|
|
12604
|
+
* not re-derived per call. Restore them from the pristine bindings
|
|
12605
|
+
* captured at setConfig() time so a previous call's hook clone (mutated
|
|
12606
|
+
* below) does not carry over. */
|
|
12607
|
+
ALLOWED_TAGS = SET_CONFIG_ALLOWED_TAGS;
|
|
12608
|
+
ALLOWED_ATTR = SET_CONFIG_ALLOWED_ATTR;
|
|
12609
|
+
} else {
|
|
12182
12610
|
_parseConfig(cfg);
|
|
12183
12611
|
}
|
|
12612
|
+
/* Clone the hook-mutable allowlists before the walk whenever an
|
|
12613
|
+
* uponSanitize* hook is registered. The hook event exposes ALLOWED_TAGS
|
|
12614
|
+
* and ALLOWED_ATTR by reference (as allowedTags / allowedAttributes), so
|
|
12615
|
+
* a hook that widens them would otherwise mutate the shared set
|
|
12616
|
+
* permanently: across later calls and across every element. Cloning per
|
|
12617
|
+
* walk keeps documented in-call widening working while scoping it to the
|
|
12618
|
+
* call. A single guard for both config paths - the per-call path rebinds
|
|
12619
|
+
* the sets in _parseConfig each call, the persistent path restores them
|
|
12620
|
+
* from the captured bindings just above - so the two cannot diverge. */
|
|
12621
|
+
if (hooks.uponSanitizeElement.length > 0 || hooks.uponSanitizeAttribute.length > 0) {
|
|
12622
|
+
ALLOWED_TAGS = clone(ALLOWED_TAGS);
|
|
12623
|
+
}
|
|
12624
|
+
if (hooks.uponSanitizeAttribute.length > 0) {
|
|
12625
|
+
ALLOWED_ATTR = clone(ALLOWED_ATTR);
|
|
12626
|
+
}
|
|
12184
12627
|
/* Clean up removed elements */
|
|
12185
12628
|
DOMPurify.removed = [];
|
|
12186
|
-
/*
|
|
12187
|
-
|
|
12188
|
-
|
|
12189
|
-
|
|
12190
|
-
|
|
12629
|
+
/* Resolve IN_PLACE for this call without mutating persistent config.
|
|
12630
|
+
Writing the IN_PLACE closure variable here leaks under setConfig(),
|
|
12631
|
+
where _parseConfig is skipped on later calls: a single string call would
|
|
12632
|
+
disable in-place mode for every subsequent node call, returning a
|
|
12633
|
+
sanitized copy while leaving the caller's node — which in-place callers
|
|
12634
|
+
keep using and whose return value they ignore — unsanitized. REPORT-2. */
|
|
12635
|
+
const inPlace = IN_PLACE && typeof dirty !== 'string' && _isNode(dirty);
|
|
12636
|
+
if (inPlace) {
|
|
12191
12637
|
/* Do some early pre-sanitization to avoid unsafe root nodes.
|
|
12192
12638
|
Read nodeName through the cached prototype getter — a clobbering
|
|
12193
12639
|
child named "nodeName" on the form root would otherwise shadow
|
|
@@ -12214,8 +12660,16 @@
|
|
|
12214
12660
|
throw typeErrorCreate('root node is clobbered and cannot be sanitized in-place');
|
|
12215
12661
|
}
|
|
12216
12662
|
/* Sanitize attached shadow roots before the main iterator runs.
|
|
12217
|
-
The iterator does not descend into shadow trees.
|
|
12218
|
-
|
|
12663
|
+
The iterator does not descend into shadow trees. Same fail-closed
|
|
12664
|
+
barrier as the main walk (campaign-3 F2): a custom-element reaction
|
|
12665
|
+
inside a shadow root could abort this pre-pass before the walk runs,
|
|
12666
|
+
which would otherwise leave the entire live tree unsanitized. */
|
|
12667
|
+
try {
|
|
12668
|
+
_sanitizeAttachedShadowRoots(dirty);
|
|
12669
|
+
} catch (error) {
|
|
12670
|
+
_neutralizeRoot(dirty);
|
|
12671
|
+
throw error;
|
|
12672
|
+
}
|
|
12219
12673
|
} else if (_isNode(dirty)) {
|
|
12220
12674
|
/* If dirty is a DOM element, append to an empty document to avoid
|
|
12221
12675
|
elements being stripped by the parser */
|
|
@@ -12235,13 +12689,13 @@
|
|
|
12235
12689
|
descend into shadow trees. The walk routes every read through a
|
|
12236
12690
|
cached prototype getter so clobbering descendants on a form root
|
|
12237
12691
|
cannot hide a shadow host from this pass. */
|
|
12238
|
-
|
|
12692
|
+
_sanitizeAttachedShadowRoots(importedNode);
|
|
12239
12693
|
} else {
|
|
12240
12694
|
/* Exit directly if we have nothing to do */
|
|
12241
12695
|
if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT &&
|
|
12242
12696
|
// eslint-disable-next-line unicorn/prefer-includes
|
|
12243
12697
|
dirty.indexOf('<') === -1) {
|
|
12244
|
-
return trustedTypesPolicy && RETURN_TRUSTED_TYPE ?
|
|
12698
|
+
return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? _createTrustedHTML(dirty) : dirty;
|
|
12245
12699
|
}
|
|
12246
12700
|
/* Initialize the document to work on */
|
|
12247
12701
|
body = _initDocument(dirty);
|
|
@@ -12255,32 +12709,59 @@
|
|
|
12255
12709
|
_forceRemove(body.firstChild);
|
|
12256
12710
|
}
|
|
12257
12711
|
/* Get node iterator */
|
|
12258
|
-
const nodeIterator = _createNodeIterator(
|
|
12259
|
-
/* Now start iterating over the created document
|
|
12260
|
-
|
|
12261
|
-
|
|
12262
|
-
|
|
12263
|
-
|
|
12264
|
-
|
|
12265
|
-
|
|
12266
|
-
|
|
12267
|
-
|
|
12268
|
-
|
|
12269
|
-
|
|
12270
|
-
|
|
12712
|
+
const nodeIterator = _createNodeIterator(inPlace ? dirty : body);
|
|
12713
|
+
/* Now start iterating over the created document.
|
|
12714
|
+
The walk runs inside an exception barrier (campaign-3 F2): a re-entrant
|
|
12715
|
+
engine/custom-element mutation can detach a node mid-walk so
|
|
12716
|
+
`_forceRemove`'s parentless guard throws, aborting the loop. Without the
|
|
12717
|
+
barrier the caller's in-place tree would be left half-sanitized with the
|
|
12718
|
+
unvisited tail still armed. On any throw we fail closed — strip the
|
|
12719
|
+
in-place root bare — then rethrow so the existing throw contract is
|
|
12720
|
+
preserved. (String/DOM-copy paths never return the partial body, so the
|
|
12721
|
+
propagating throw is already fail-closed there.) */
|
|
12722
|
+
try {
|
|
12723
|
+
while (currentNode = nodeIterator.nextNode()) {
|
|
12724
|
+
/* Sanitize tags and elements */
|
|
12725
|
+
_sanitizeElements(currentNode);
|
|
12726
|
+
/* Check attributes next */
|
|
12727
|
+
_sanitizeAttributes(currentNode);
|
|
12728
|
+
/* Shadow DOM detected, sanitize it.
|
|
12729
|
+
Realm-safe check (GHSA-hpcv-96wg-7vj8): nodeType-based detection
|
|
12730
|
+
instead of instanceof, so foreign-realm <template>.content is
|
|
12731
|
+
walked correctly. */
|
|
12732
|
+
if (_isDocumentFragment(currentNode.content)) {
|
|
12733
|
+
_sanitizeShadowDOM2(currentNode.content);
|
|
12734
|
+
}
|
|
12271
12735
|
}
|
|
12736
|
+
} catch (error) {
|
|
12737
|
+
if (inPlace) {
|
|
12738
|
+
_neutralizeRoot(dirty);
|
|
12739
|
+
}
|
|
12740
|
+
throw error;
|
|
12272
12741
|
}
|
|
12273
12742
|
/* If we sanitized `dirty` in-place, return it. */
|
|
12274
|
-
if (
|
|
12743
|
+
if (inPlace) {
|
|
12744
|
+
/* Fail-closed completion of the audit-5 F1 fix: every node removed from
|
|
12745
|
+
the caller's live tree is detached but may still hold a queued
|
|
12746
|
+
resource-event handler that fires in page scope after we return. The
|
|
12747
|
+
move-hoist covers only disallowed-tag KEEP_CONTENT removals; strip the
|
|
12748
|
+
non-allow-listed attributes off every other removed subtree (clobber,
|
|
12749
|
+
mXSS, namespace, comments, KEEP_CONTENT:false, …) so those handlers are
|
|
12750
|
+
cancelled before any event can fire. Runs synchronously, pre-return. */
|
|
12751
|
+
arrayForEach(DOMPurify.removed, entry => {
|
|
12752
|
+
if (entry.element) {
|
|
12753
|
+
_neutralizeSubtree(entry.element);
|
|
12754
|
+
}
|
|
12755
|
+
});
|
|
12275
12756
|
if (SAFE_FOR_TEMPLATES) {
|
|
12276
|
-
|
|
12757
|
+
_scrubTemplateExpressions2(dirty);
|
|
12277
12758
|
}
|
|
12278
12759
|
return dirty;
|
|
12279
12760
|
}
|
|
12280
12761
|
/* Return sanitized string or DOM */
|
|
12281
12762
|
if (RETURN_DOM) {
|
|
12282
12763
|
if (SAFE_FOR_TEMPLATES) {
|
|
12283
|
-
|
|
12764
|
+
_scrubTemplateExpressions2(body);
|
|
12284
12765
|
}
|
|
12285
12766
|
if (RETURN_DOM_FRAGMENT) {
|
|
12286
12767
|
returnNode = createDocumentFragment.call(body.ownerDocument);
|
|
@@ -12310,20 +12791,28 @@
|
|
|
12310
12791
|
}
|
|
12311
12792
|
/* Sanitize final string template-safe */
|
|
12312
12793
|
if (SAFE_FOR_TEMPLATES) {
|
|
12313
|
-
|
|
12314
|
-
serializedHTML = stringReplace(serializedHTML, expr, ' ');
|
|
12315
|
-
});
|
|
12794
|
+
serializedHTML = _stripTemplateExpressions(serializedHTML);
|
|
12316
12795
|
}
|
|
12317
|
-
return trustedTypesPolicy && RETURN_TRUSTED_TYPE ?
|
|
12796
|
+
return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? _createTrustedHTML(serializedHTML) : serializedHTML;
|
|
12318
12797
|
};
|
|
12319
12798
|
DOMPurify.setConfig = function () {
|
|
12320
12799
|
let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
12321
12800
|
_parseConfig(cfg);
|
|
12322
12801
|
SET_CONFIG = true;
|
|
12802
|
+
SET_CONFIG_ALLOWED_TAGS = ALLOWED_TAGS;
|
|
12803
|
+
SET_CONFIG_ALLOWED_ATTR = ALLOWED_ATTR;
|
|
12323
12804
|
};
|
|
12324
12805
|
DOMPurify.clearConfig = function () {
|
|
12325
12806
|
CONFIG = null;
|
|
12326
12807
|
SET_CONFIG = false;
|
|
12808
|
+
SET_CONFIG_ALLOWED_TAGS = null;
|
|
12809
|
+
SET_CONFIG_ALLOWED_ATTR = null;
|
|
12810
|
+
// Drop any caller-supplied Trusted Types policy so it cannot poison later
|
|
12811
|
+
// `RETURN_TRUSTED_TYPE` output. The internal default policy (cached, and
|
|
12812
|
+
// never recreated — Trusted Types throws on duplicate names) is restored by
|
|
12813
|
+
// the next `_parseConfig`. See GHSA-vxr8-fq34-vvx9.
|
|
12814
|
+
trustedTypesPolicy = defaultTrustedTypesPolicy;
|
|
12815
|
+
emptyHTML = '';
|
|
12327
12816
|
};
|
|
12328
12817
|
DOMPurify.isValidAttribute = function (tag, attr, value) {
|
|
12329
12818
|
/* Initialize shared config vars if necessary. */
|
|
@@ -12338,9 +12827,19 @@
|
|
|
12338
12827
|
if (typeof hookFunction !== 'function') {
|
|
12339
12828
|
return;
|
|
12340
12829
|
}
|
|
12830
|
+
/* Reject unknown entry points. Without this, a non-hook key (e.g.
|
|
12831
|
+
* '__proto__') indexes off the prototype chain rather than a real
|
|
12832
|
+
* hook array, and arrayPush then writes to Object.prototype. Guard
|
|
12833
|
+
* with an own-property check against the known hook names. */
|
|
12834
|
+
if (!objectHasOwnProperty(hooks, entryPoint)) {
|
|
12835
|
+
return;
|
|
12836
|
+
}
|
|
12341
12837
|
arrayPush(hooks[entryPoint], hookFunction);
|
|
12342
12838
|
};
|
|
12343
12839
|
DOMPurify.removeHook = function (entryPoint, hookFunction) {
|
|
12840
|
+
if (!objectHasOwnProperty(hooks, entryPoint)) {
|
|
12841
|
+
return undefined;
|
|
12842
|
+
}
|
|
12344
12843
|
if (hookFunction !== undefined) {
|
|
12345
12844
|
const index = arrayLastIndexOf(hooks[entryPoint], hookFunction);
|
|
12346
12845
|
return index === -1 ? undefined : arraySplice(hooks[entryPoint], index, 1)[0];
|
|
@@ -12348,6 +12847,9 @@
|
|
|
12348
12847
|
return arrayPop(hooks[entryPoint]);
|
|
12349
12848
|
};
|
|
12350
12849
|
DOMPurify.removeHooks = function (entryPoint) {
|
|
12850
|
+
if (!objectHasOwnProperty(hooks, entryPoint)) {
|
|
12851
|
+
return;
|
|
12852
|
+
}
|
|
12351
12853
|
hooks[entryPoint] = [];
|
|
12352
12854
|
};
|
|
12353
12855
|
DOMPurify.removeAllHooks = function () {
|
|
@@ -39594,7 +40096,7 @@
|
|
|
39594
40096
|
*/
|
|
39595
40097
|
#getTrackConfig(t) {
|
|
39596
40098
|
|
|
39597
|
-
const format = typeFormatMap.get(t.format) || t.format;
|
|
40099
|
+
const format = typeFormatMap.get(t.format.toLowerCase()) || t.format;
|
|
39598
40100
|
|
|
39599
40101
|
const config = {
|
|
39600
40102
|
"id": t.getProperty("track"),
|
|
@@ -39693,14 +40195,9 @@
|
|
|
39693
40195
|
config.visibilityWindow = maxWindowToDraw;
|
|
39694
40196
|
}
|
|
39695
40197
|
|
|
39696
|
-
//
|
|
39697
|
-
if (t.hasProperty("maxWindowCoverage")) {
|
|
39698
|
-
|
|
39699
|
-
if (maxWindowToDraw > Number.MAX_SAFE_INTEGER) {
|
|
39700
|
-
maxWindowToDraw = Number.MAX_SAFE_INTEGER;
|
|
39701
|
-
}
|
|
39702
|
-
config.visibilityWindow = maxWindowToDraw;
|
|
39703
|
-
}
|
|
40198
|
+
// TODO - support "maxWindowCoverage"
|
|
40199
|
+
// if (t.hasProperty("maxWindowCoverage")) {
|
|
40200
|
+
// }
|
|
39704
40201
|
|
|
39705
40202
|
return config
|
|
39706
40203
|
}
|
|
@@ -52056,7 +52553,9 @@
|
|
|
52056
52553
|
}
|
|
52057
52554
|
|
|
52058
52555
|
/*! For license information please see cram-bundle.js.LICENSE.txt */
|
|
52059
|
-
var gmodCRAM = (()=>{var e={24:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.toHex=function(e){let t="";for(let r=0,i=e.length;r<i;r++)t+=n[e[r]];return t};const r=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"],n=new Array(256);for(let e=0;e<256;e++)n[e]=`${r[e>>>4&15]}${r[15&e]}`;},78:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});const n=r(24),i=[0,1,3,7,15,31,63,127,255];t.default=class{constructor(e){this.stream=e,this.bitOffset=0,this.curByte=0,this.hasByte=!1;}_ensureByte(){this.hasByte||(this.curByte=this.stream.readByte(),this.hasByte=!0);}read(e){let t=0;for(;e>0;){this._ensureByte();const r=8-this.bitOffset;if(e>=r)t<<=r,t|=i[r]&this.curByte,this.hasByte=!1,this.bitOffset=0,e-=r;else {t<<=e;const n=r-e;t|=(this.curByte&i[e]<<n)>>n,this.bitOffset+=e,e=0;}}return t}seek(e){const t=e%8,r=(e-t)/8;this.bitOffset=t,this.stream.seek(r),this.hasByte=!1;}pi(){const e=new Uint8Array(6);for(let t=0;t<e.length;t++)e[t]=this.read(8);return (0, n.toHex)(e)}};},86:(e,t,r)=>{const n=r(1308).A;e.exports=n,e.exports.default=n;},500:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const i=r(6272),a=r(6761),s=n(r(588)),A=n(r(9685)),o=n(r(7480)),c=r(7580),d=r(2549);function l(e,t,r,n){const a=!!(n.mate||void 0!==n.mateRecordNumber&&n.mateRecordNumber!==t);r.readName||(r.readName=String(r.uniqueId),n.readName=r.readName),r.mate={sequenceId:n.sequenceId,alignmentStart:n.alignmentStart,uniqueId:n.uniqueId},n.readName&&(r.mate.readName=n.readName),n.mate||void 0!==n.mateRecordNumber||(n.mate={sequenceId:r.sequenceId,alignmentStart:r.alignmentStart,uniqueId:r.uniqueId},r.readName&&(n.mate.readName=r.readName)),r.flags|=s.default.BAM_FPAIRED,n.flags&s.default.BAM_FUNMAP&&(r.flags|=s.default.BAM_FMUNMAP),r.flags&s.default.BAM_FUNMAP&&(n.flags|=s.default.BAM_FMUNMAP),n.flags&s.default.BAM_FREVERSE&&(r.flags|=s.default.BAM_FMREVERSE),r.flags&s.default.BAM_FREVERSE&&(n.flags|=s.default.BAM_FMREVERSE),void 0===r.templateLength&&(a?function(e,t,r){const n=function t(r){const n=[r];if(void 0!==r.mateRecordNumber&&r.mateRecordNumber>=0){const a=e[r.mateRecordNumber];if(!a)throw new i.CramMalformedError("intra-slice mate record not found, this file seems malformed");n.push(...t(a));}return n}(r),a=n.map((e=>e.alignmentStart)),s=n.map((e=>e.alignmentStart+e.readLength-1)),A=Math.max(...s)-Math.min(...a)+1;A>=0&&n.forEach((e=>{if(void 0!==e.templateLength)throw new i.CramMalformedError("mate pair group has some members that have template lengths already, this file seems malformed");e.templateLength=A;}));}(e,0,r):function(e,t){const r=Math.min(e.alignmentStart,t.alignmentStart),n=Math.max(e.alignmentStart+e.readLength-1,t.alignmentStart+t.readLength-1)-r+1;e.templateLength=n,t.templateLength=n;}(r,n)),r.mateRecordNumber=void 0;}class f{constructor(e,t,r){this.container=e,this.containerPosition=t,this.sliceSize=r,this.file=e.file;}async getHeader(){const{majorVersion:e}=await this.file.getDefinition(),t=(0, c.getSectionParsers)(e),r=await this.container.getHeader(),n=await this.file.readBlock(r._endPosition+this.containerPosition);if("MAPPED_SLICE_HEADER"===n.contentType){const e=(0, d.parseItem)(n.content,t.cramMappedSliceHeader.parser,0,r._endPosition);return {...n,parsedContent:e}}if("UNMAPPED_SLICE_HEADER"===n.contentType){const e=(0, d.parseItem)(n.content,t.cramUnmappedSliceHeader.parser,0,r._endPosition);return {...n,parsedContent:e}}throw new i.CramMalformedError(`error reading slice header block, invalid content type ${n.contentType}`)}async getBlocks(){const e=await this.getHeader();let t=e._endPosition;const r=new Array(e.parsedContent.numBlocks);for(let e=0;e<r.length;e++){const n=await this.file.readBlock(t);r[e]=n,t=r[e]._endPosition;}return r}async getCoreDataBlock(){return (await this.getBlocks())[0]}async _getBlocksContentIdIndex(){const e=await this.getBlocks(),t={};return e.forEach((e=>{"EXTERNAL_DATA"===e.contentType&&(t[e.contentId]=e);})),t}async getBlockByContentId(e){return (await this._getBlocksContentIdIndex())[e]}async getReferenceRegion(){const e=new TextDecoder("utf8"),t=(await this.getHeader()).parsedContent;if(!(0, c.isMappedSliceHeader)(t))throw new Error("slice header not mapped");if(t.refSeqId<0)return;const r=await this.container.getCompressionScheme();if(void 0===r)throw new Error("compression scheme undefined");if(t.refBaseBlockId>=0){const r=await this.getBlockByContentId(t.refBaseBlockId);if(!r)throw new i.CramMalformedError("embedded reference specified, but reference block does not exist");return {seq:e.decode(r.data),start:t.refSeqStart,end:t.refSeqStart+t.refSeqSpan-1,span:t.refSeqSpan}}if(r.referenceRequired||this.file.fetchReferenceSequenceCallback){if(!this.file.fetchReferenceSequenceCallback)throw new Error("reference sequence not embedded, and seqFetch callback not provided, cannot fetch reference sequence");const e=await this.file.fetchReferenceSequenceCallback(t.refSeqId,t.refSeqStart,t.refSeqStart+t.refSeqSpan-1);if(e.length!==t.refSeqSpan)throw new i.CramArgumentError("seqFetch callback returned a reference sequence of the wrong length");return {seq:e,start:t.refSeqStart,end:t.refSeqStart+t.refSeqSpan-1,span:t.refSeqSpan}}}getAllRecords(){return this.getRecords((()=>!0))}async _fetchRecords(){const{majorVersion:e}=await this.file.getDefinition(),t=await this.container.getCompressionScheme();if(void 0===t)throw new Error("compression scheme undefined");const r=await this.getHeader(),n=await this._getBlocksContentIdIndex();if(e>1&&this.file.options.checkSequenceMD5&&(0, c.isMappedSliceHeader)(r.parsedContent)&&r.parsedContent.refSeqId>=0&&"0000000000000000"!==r.parsedContent.md5?.join("")){const e=await this.getReferenceRegion();if(e){const{seq:t,start:n,end:a}=e,s=(0, d.sequenceMD5)(t),A=r.parsedContent.md5?.map((e=>(e<16?"0":"")+e.toString(16))).join("");if(s!==A)throw new i.CramMalformedError(`MD5 checksum reference mismatch for ref ${r.parsedContent.refSeqId} pos ${n}..${a}. recorded MD5: ${A}, calculated MD5: ${s}`)}}const s=await this.getCoreDataBlock(),f={lastAlignmentStart:(0, c.isMappedSliceHeader)(r.parsedContent)?r.parsedContent.refSeqStart:0,coreBlock:{bitPosition:7,bytePosition:0},externalBlocks:{map:new Map,getCursor(e){let t=this.map.get(e);return void 0===t&&(t={bitPosition:7,bytePosition:0},this.map.set(e,t)),t}}},u=e=>{const r=t.getCodecForDataSeries(e);if(!r)throw new i.CramMalformedError(`no codec defined for ${e} data series`);return r.decode(this,s,n,f)},g=new Array(r.parsedContent.numRecords);for(let i=0;i<g.length;i+=1)try{const a=(0,A.default)(this,u,t,r,s,n,f,e,i);g[i]=new o.default({...a,uniqueId:r.contentPosition+r.parsedContent.recordCounter+i+1});}catch(e){if(e instanceof a.CramBufferOverrunError){console.warn("read attempted beyond end of buffer, file seems truncated.");break}throw e}for(let e=0;e<g.length;e+=1){const t=g[e];if(t){const{mateRecordNumber:r}=t;void 0!==r&&r>=0&&g[r]&&l(g,e,t,g[r]);}}return g}async getRecords(e){const t=this.container.filePosition+this.containerPosition;let r=this.file.featureCache.get(t.toString());r||(r=this._fetchRecords(),this.file.featureCache.set(t.toString(),r));const n=(await r).filter(e);if(n.length&&this.file.fetchReferenceSequenceCallback){const e=await this.getHeader();if((0, c.isMappedSliceHeader)(e.parsedContent)&&(e.parsedContent.refSeqId>=0||-2===e.parsedContent.refSeqId)){const t=e.parsedContent.refSeqId>=0?e.parsedContent.refSeqId:void 0,r=await this.container.getCompressionScheme();if(void 0===r)throw new Error("compression scheme undefined");const i={};for(const e of n){const r=void 0!==t?t:e.sequenceId;let n=i[r];n||(n={id:r,start:e.alignmentStart,end:Number.NEGATIVE_INFINITY,seq:null},i[r]=n);const a=e.alignmentStart+(e.lengthOnRef||e.readLength)-1;a>n.end&&(n.end=a),e.alignmentStart<n.start&&(n.start=e.alignmentStart);}await Promise.all(Object.values(i).map((async e=>{-1!==e.id&&e.start<=e.end&&this.file.fetchReferenceSequenceCallback&&(e.seq=await this.file.fetchReferenceSequenceCallback(e.id,e.start,e.end));})));for(const e of n){const n=i[void 0!==t?t:e.sequenceId];if(n?.seq){const t=n.seq;e.addReferenceSequence({...n,seq:t},r);}}}}return n}}t.default=f,"getHeader getBlocks _getBlocksContentIdIndex".split(" ").forEach((e=>{(0, d.tinyMemoize)(f,e);}));},588:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default={CRAM_FLAG_PRESERVE_QUAL_SCORES:1,CRAM_FLAG_DETACHED:2,CRAM_FLAG_MATE_DOWNSTREAM:4,CRAM_FLAG_NO_SEQ:8,CRAM_FLAG_MASK:15,CRAM_M_REVERSE:1,CRAM_M_UNMAP:2,BAM_FPAIRED:1,BAM_FPROPER_PAIR:2,BAM_FUNMAP:4,BAM_FMUNMAP:8,BAM_FREVERSE:16,BAM_FMREVERSE:32,BAM_FREAD1:64,BAM_FREAD2:128,BAM_FSECONDARY:256,BAM_FQCFAIL:512,BAM_FDUP:1024,BAM_FSUPPLEMENTARY:2048,BAM_CMATCH:0,BAM_CINS:1,BAM_CDEL:2,BAM_CREF_SKIP:3,BAM_CSOFT_CLIP:4,BAM_CHARD_CLIP:5,BAM_CPAD:6,BAM_CEQUAL:7,BAM_CDIFF:8,BAM_CBACK:9,BAM_CIGAR_STR:"MIDNSHP:XB",BAM_CIGAR_SHIFT:4,BAM_CIGAR_MASK:15,BAM_CIGAR_TYPE:246183};},632:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const i=n(r(4141)),a=r(6761),s=r(6272);class A extends i.default{constructor(e,t){if(super(e,t),"int"!==this.dataType)throw new s.CramUnimplementedError(`${this.dataType} decoding not yet implemented by GAMMA codec`)}decode(e,t,r,n){let i=1;for(;0===(0, a.getBits)(t.content,n.coreBlock,1);)i+=1;return ((0, a.getBits)(t.content,n.coreBlock,i-1)|1<<i-1)-this.parameters.offset}}t.default=A;},652:e=>{function t(e){return !!e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}e.exports=function(e){return null!=e&&(t(e)||function(e){return "function"==typeof e.readFloatLE&&"function"==typeof e.slice&&t(e.slice(0,0))}(e)||!!e._isBuffer)};},772:()=>{},807:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const i=n(r(4141)),a=r(6761),s=r(6272);class A extends i.default{constructor(e,t){if(super(e,t),"int"!==this.dataType)throw new s.CramUnimplementedError(`${this.dataType} decoding not yet implemented by BETA codec`)}decode(e,t,r,n){return (0, a.getBits)(t.content,n.coreBlock,this.parameters.length)-this.parameters.offset}}t.default=A;},870:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.decode=function(e,t,r){const n=f(e),i=u(t),a=new l(n,i);for(;!("eof"in n)||!n.eof();)if(a._init_block())a._read_bunzip();else {const e=a.reader.read(32)>>>0;if(e!==a.streamCRC&&d(o.DATA_ERROR,"Bad stream CRC (got "+a.streamCRC.toString(16)+" expected "+e.toString(16)+")"),!r||!("eof"in n)||n.eof())break;a._start_bunzip(n,i);}if("getBuffer"in i)return i.getBuffer()};const i=n(r(78)),a=n(r(8761)),s=n(r(6612)),A=function(e,t){const r=e[t];for(let r=t;r>0;r--)e[r]=e[r-1];return e[0]=r,r},o={OK:0,LAST_BLOCK:-1,NOT_BZIP_DATA:-2,UNEXPECTED_INPUT_EOF:-3,UNEXPECTED_OUTPUT_EOF:-4,DATA_ERROR:-5,OUT_OF_MEMORY:-6,OBSOLETE_INPUT:-7,END_OF_BLOCK:-8},c={};c[o.LAST_BLOCK]="Bad file checksum",c[o.NOT_BZIP_DATA]="Not bzip data",c[o.UNEXPECTED_INPUT_EOF]="Unexpected input EOF",c[o.UNEXPECTED_OUTPUT_EOF]="Unexpected output EOF",c[o.DATA_ERROR]="Data error",c[o.OUT_OF_MEMORY]="Out of memory",c[o.OBSOLETE_INPUT]="Obsolete (pre 0.9.5) bzip format not supported.";const d=function(e,t){let r=c[e]||"unknown error";t&&(r+=": "+t);const n=new TypeError(r);throw n.errorCode=e,n};class l{constructor(e,t){this.writePos=this.writeCurrent=this.writeCount=0,this._start_bunzip(e,t);}_init_block(){return this._get_next_block()?(this.blockCRC=new a.default,!0):(this.writeCount=-1,!1)}_start_bunzip(e,t){const r=new Uint8Array(4);4===e.read(r,0,4)&&"BZh"===String.fromCharCode(r[0],r[1],r[2])||d(o.NOT_BZIP_DATA,"bad magic");const n=r[3]-48;(n<1||n>9)&&d(o.NOT_BZIP_DATA,"level out of range"),this.reader=new i.default(e),this.dbufSize=1e5*n,this.nextoutput=0,this.outputStream=t,this.streamCRC=0;}_get_next_block(){let e,t,r;const n=this.reader,i=n.pi();if("177245385090"===i)return !1;"314159265359"!==i&&d(o.NOT_BZIP_DATA),this.targetBlockCRC=n.read(32)>>>0,this.streamCRC=(this.targetBlockCRC^(this.streamCRC<<1|this.streamCRC>>>31))>>>0,n.read(1)&&d(o.OBSOLETE_INPUT);const a=n.read(24);a>this.dbufSize&&d(o.DATA_ERROR,"initial position out of bounds");let s=n.read(16),c=new Uint8Array(256),l=0;for(e=0;e<16;e++)if(s&1<<15-e){const i=16*e;for(r=n.read(16),t=0;t<16;t++)r&1<<15-t&&(c[l++]=i+t);}const f=n.read(3);(f<2||f>6)&&d(o.DATA_ERROR);const u=n.read(15);0===u&&d(o.DATA_ERROR);const g=new Uint8Array(256);for(e=0;e<f;e++)g[e]=e;const h=new Uint8Array(u);for(e=0;e<u;e++){for(t=0;n.read(1);t++)t>=f&&d(o.DATA_ERROR);h[e]=A(g,t);}let C,I=l+2,_=[];for(t=0;t<f;t++){const t=new Uint8Array(I),r=new Uint16Array(21);for(s=n.read(5),e=0;e<I;e++){for(;(s<1||s>20)&&d(o.DATA_ERROR),n.read(1);)n.read(1)?s--:s++;t[e]=s;}var m,B;for(m=B=t[0],e=1;e<I;e++)t[e]>B?B=t[e]:t[e]<m&&(m=t[e]);C={},_.push(C),C.permute=new Uint16Array(258),C.limit=new Uint32Array(22),C.base=new Uint32Array(21),C.minLen=m,C.maxLen=B;let i=0;for(e=m;e<=B;e++)for(r[e]=C.limit[e]=0,s=0;s<I;s++)t[s]===e&&(C.permute[i++]=s);for(e=0;e<I;e++)r[t[e]]++;for(i=s=0,e=m;e<B;e++)i+=r[e],C.limit[e]=i-1,i<<=1,s+=r[e],C.base[e+1]=i-s;C.limit[B+1]=Number.MAX_VALUE,C.limit[B]=i+r[B]-1,C.base[m]=0;}const p=new Uint32Array(256);for(e=0;e<256;e++)g[e]=e;let w,E=0,Q=0,y=0;const b=this.dbuf=new Uint32Array(this.dbufSize);for(I=0;;){for(I--||(I=49,y>=u&&d(o.DATA_ERROR),C=_[h[y++]]),e=C.minLen,t=n.read(e);e>C.maxLen&&d(o.DATA_ERROR),!(t<=C.limit[e]);e++)t=t<<1|n.read(1);t-=C.base[e],(t<0||t>=258)&&d(o.DATA_ERROR);const r=C.permute[t];if(0!==r&&1!==r){if(E)for(E=0,Q+s>this.dbufSize&&d(o.DATA_ERROR),w=c[g[0]],p[w]+=s;s--;)b[Q++]=w;if(r>l)break;Q>=this.dbufSize&&d(o.DATA_ERROR),e=r-1,w=A(g,e),w=c[w],p[w]++,b[Q++]=w;}else E||(E=1,s=0),s+=0===r?E:2*E,E<<=1;}for((a<0||a>=Q)&&d(o.DATA_ERROR),t=0,e=0;e<256;e++)r=t+p[e],p[e]=t,t=r;for(e=0;e<Q;e++)w=255&b[e],b[p[w]]|=e<<8,p[w]++;let D=0,S=0,k=0;return Q&&(D=b[a],S=255&D,D>>=8,k=-1),this.writePos=D,this.writeCurrent=S,this.writeCount=Q,this.writeRun=k,!0}_read_bunzip(e,t){let r,n,i;if(this.writeCount<0)return 0;let a=this.dbuf,s=this.writePos,A=this.writeCurrent,c=this.writeCount,l=(this.outputsize,this.writeRun);for(;c;){for(c--,n=A,s=a[s],A=255&s,s>>=8,3===l++?(r=A,i=n,A=-1):(r=1,i=A),this.blockCRC.updateCRCRun(i,r);r--;)this.outputStream.writeByte(i),this.nextoutput++;A!=n&&(l=0);}return this.writeCount=c,this.blockCRC.getCRC()!==this.targetBlockCRC&&d(o.DATA_ERROR,"Bad block CRC (got "+this.blockCRC.getCRC().toString(16)+" expected "+this.targetBlockCRC.toString(16)+")"),this.nextoutput}}const f=function(e){if("readByte"in e)return e;const t=new s.default;return t.pos=0,t.readByte=function(){return e[this.pos++]},t.seek=function(e){this.pos=e;},t.eof=function(){return this.pos>=e.length},t},u=function(e){const t=new s.default;let r=!0;if(e)if("number"==typeof e)t.buffer=new Uint8Array(e),r=!1;else {if("writeByte"in e)return e;t.buffer=e,r=!1;}else t.buffer=new Uint8Array(16384);return t.pos=0,t.writeByte=function(e){if(r&&this.pos>=this.buffer.length){const e=new Uint8Array(2*this.buffer.length);e.set(this.buffer),this.buffer=e;}this.buffer[this.pos++]=e;},t.getBuffer=function(){if(this.pos!==this.buffer.length){if(!r)throw new TypeError("outputsize does not match decoded input");const e=new Uint8Array(this.pos);e.set(this.buffer.slice(0,this.pos)),this.buffer=e;}return this.buffer},t._coerced=!0,t};t.default=l;},1064:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=class{constructor(e){this.blob=e,this.size=e.size;}async read(e,t=0){if(!e)return new Uint8Array(0);const r=t,n=r+e;return new Uint8Array(await this.blob.slice(r,n).arrayBuffer())}async readFile(e){const t="string"==typeof e?e:e?.encoding;if("utf8"===t)return this.blob.text();if(t)throw new Error(`unsupported encoding: ${t}`);return new Uint8Array(await this.blob.arrayBuffer())}async stat(){return {size:this.size}}async close(){}};},1307:function(e,t,r){var n;n=e=>(()=>{var t=[,e=>{e.exports="data:application/wasm;base64,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IgENAAsLIAJCf4UL1RACDH8CfgJAAkAgACgCJEUNACAAKAIAIQIMAQtBACECIABBADoAKCAAQgA3AwAgAEIANwMYIABByABqQQBB5AAQhoCAgAAaIABBrAFqQQw2AgALIAAgASgCBCIDNgIQIABBsAFqIQQgAEHgAGohBSAAQcgAaiEGIABBtgFqIQcgAEGoAWohCCABKAIQIQkCQAJAAkACQANAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAIOCgECAAQFBgcICQoPCyABKAIAIQogACgCqAEhAiAAKAKsASELIAEoAgQhDCABKAIIIQ0MAgsgCCAAKAKoASIMakEIaiABKAIAIAEoAgQiAmogASgCCCACayICIAAoAqwBIAxrIgwgAiAMSRsiAhCHgICAABogASABKAIEIAJqNgIEQQAhDCAAQQAgACgCqAEgAmoiAiACIAAoAqwBIgtGGzYCqAEgAiALRw0RIABBATYCAAJAIARBqIiAgABBBhCEgICAAEUNAEEFIQwMEgsgB0ECQQAQjYCAgAAgACgAuAFHDRBBBiEMIActAAANESAAIAAtALcBIgI2AiAgAkEESw0RQQEgAnRBE3FFDRELIAEoAgQiDCABKAIIIg1GDQ4CQCABKAIAIgogDGotAAAiCw0AIAAgDDYCECABIAxBAWo2AgRBBiECDAwLQQAhAiAAQQA2AqgBIABBAjYCACAAIAtBAnRBBGoiCzYCrAEgACALNgJACyAIIAJqQQhqIAogDGogDSAMayIMIAsgAmsiAiAMIAJJGyICEIeAgIAAGiABIAIgASgCBGo2AgRBACEMIABBACAAKAKoASACaiICIAIgACgCrAEiC0YbNgKoASACIAtHDQ8gACACQXxqIgI2AqwBQQchDCAEIAJBABCNgICAACAAIAAoAqwBIgtqQbABaigAAEcNDyAAQQI2AqgBIAAtALEBIgJBP3ENDAJAAkAgAkHAAHFFDQAgACAEIAggCxCRgICAAEEBRw0RIAAgACkDCDcDMCAALQCxASECDAELIABCfzcDMAtCfyEOAkAgAkEYdEEYdUF/Sg0AIAAgBCAIIAAoAqwBEJGAgIAAQQFHDRAgACkDCCEOCyAAIA43AzggACgCrAEiDSAAKAKoASICa0ECSQ0PIAAgAkEBaiIKNgKoASAIIAJqQQhq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IgM2AhAgACAOQQh0IAAoAgwgCWotAAByIg42AgQgAyEJCwJAAkAgDiALQQt2IA8vAQAiCmwiA08iEg0AIAAgAzYCACAKQYAQIAprQQV2aiEKDAELIAAgDiADayIONgIEIAAgCyADayIDNgIAIAogCkEFdmshCkEAIQ0LIA8gCjsBACANIBFzIQ0gBEEBdCASciIEQYACSQ0ACwsgACACQQFqNgIgIAAoAhggAmogBDoAAAJAIAAoAiQgACgCICICTw0AIAAgAjYCJAtBACEDAkAgACgCZCIEQQRJDQACQCAEQQlLDQAgBEF9aiEDDAELIARBemohAwsgACADNgJkDAELIAAgDiADayIONgIEIAAgBCADayIDNgIAIA0gDyAPQQV2azsBACAAIApBAXRqIg9B+ANqIQQCQAJAIANB////B00NACAJIQoMAQsgACADQQh0IgM2AgAgACAJQQFqIgo2AhAgACAOQQh0IAAoAgwgCWotAAByIg42AgQLAkACQCAOIANBC3YgBC8BACINbCIJSQ0AIAAgDiAJayIONgIEIAAgAyAJayIDNgIAIAQgDSANQQV2azsBACAPQZAEaiENAkACQCADQf///wdNDQAgCiEQDAELIAAgA0EIdCIDNgIAIAAgCkEBaiIQNgIQIAAgDkEIdCAAKAIMIApqLQAAciIONgIECwJAAkAgDiADQQt2IA0vAQAiCWwiBE8NACANIAlBgBAgCWtBBXZqOwEAIAxB2ARqIQMCQCAEQf///wdLDQAgACAEQQh0IgQ2AgAgACAQQQFqNgIQIAAgDkEIdCAAKAIMIBBqLQAAciIONgIECwJAIA4gBEELdiADLwEAIg1sIglJDQAgACAOIAlrNgIEIAAgBCAJazYCACADIA0gDUEFdms7AQAMAgsgAyANQYAQIA1rQQV2ajsBACAAIAk2AgAgAEEBNgJoIABBCUELIAAoAmRBB0kbNgJkDAMLIAAgDiAEayIONgIEIA0gCSAJQQV2azsBACAPQagEaiENAkACQCADIARrIgNB////B00NACAQIQoMAQsgACADQQh0IgM2AgAgACAQQQFqIgo2AhAgACAOQQh0IAAoAgwgEGotAAByIg42AgQLAkACQCAOIANBC3YgDS8BACIEbCIJTw0AIAAgCTYCACANIARBgBAgBGtBBXZqOwEAIAAoAlghAwwBCyAAIA4gCWsiDjYCBCANIAQgBEEFdms7AQAgD0HABGohBAJAIAMgCWsiA0H///8HSw0AIAAgA0EIdCIDNgIAIAAgCkEBajYCECAAIA5BCHQgACgCDCAKai0AAHIiDjYCBAsCQAJAIA4gA0ELdiAELwEAIg1sIglPDQAgACAJNgIAIAQgDUGAECANa0EFdmo7AQAgACgCXCEDDAELIAAgDiAJazYCBCAAIAMgCWs2AgAgACgCYCEDIAAgACgCXDYCYCAEIA0gDUEFdms7AQALIAAgACgCWDYCXAsgACAAKAJUNgJYIAAgAzYCVAsgAEEIQQsgACgCZEEHSRs2AmQgACAHIAsQn4CAgAAMAQsgBCANQYAQIA1rQQV2ajsBACAAIAk2AgAgACAAKAJcNgJgIAAgACkCVDcCWCAAQQdBCiAAKAJkQQdJGzYCZCAAIAUgCxCfgICAACAAKAJoIgNBfmpBAyADQQZJGyEKIAAoAgAhA0EBIQ4DQCAAIApBB3RqIA5BAXQiDmpB2AdqIQ0CQAJAIANBgICACEkNACAAKAIEIQQMAQsgACADQQh0IgM2AgAgACAAKAIQIgRBAWo2AhAgACAAKAIEQQh0IAQgACgCDGotAAByIgQ2AgQLAkACQCAEIANBC3YgDS8BACIJbCIPSQ0AIAAgBCAPayIENgIEIAAgAyAPayIDNgIAIA0gCSAJQQV2azsBACAOQQFyIQ4MAQsgACAPNgIAIA0gCUGAECAJa0EFdmo7AQAgDyEDCyAOQcAASQ0ACwJAIA5BQGoiCUEDSw0AIAAgCTYCVAwBCyAAIA5BAXFBAnIiDTYCVCAJQQF2IQ8CQCAJQQ1LDQAgACANIA9Bf2oiDHQiCzYCVEEBIQ0gCCALQQF0akGEC2ohEEE/IA5rIRFBACEPA0AgECARIA1qQQF0aiEOAkACQCADQf///wdNDQAgAyEKDAELIAAgA0EIdCIKNgIAIAAgACgCECIDQQFqNgIQIAAgBEEIdCADIAAoAgxqLQAAciIENgIECwJAAkAgBCAKQQt2IA4vAQAiCWwiA0kNACAAIAQgA2siBDYCBCAAIAogA2siAzYCACAOIAkgCUEFdms7AQAgAEEBIA90IAtqIgs2AlQgDUEBdEEBciENDAELIAAgAzYCACAOIAlBgBAgCWtBBXZqOwEAIA1BAXQhDQsgDCAPQQFqIg9HDQAMAgsLIA9Be2ohDgNAAkAgA0H///8HSw0AIAAgA0EIdCIDNgIAIAAgACgCECIJQQFqNgIQIARBCHQgCSAAKAIMai0AAHIhBAsgACADQQF2IgM2AgAgACAEIANrIgRBH3UiCSANQQF0akEBaiINNgJUIAAgCSADcSAEaiIENgIEIA5Bf2oiDg0ACyAAIA1BBHQiCzYCVEEAIQ9BASEOA0AgACAOQQF0Ig5qQbwNaiENAkACQCADQf///wdNDQAgAyEKDAELIAAgA0EIdCIKNgIAIAAgACgCECIDQQFqNgIQIAAgBEEIdCADIAAoAgxqLQAAciIENgIECwJAAkAgBCAKQQt2IA0vAQAiCWwiA0kNACAAIAQgA2siBDYCBCAAIAogA2siAzYCACANIAkgCUEFdms7AQAgAEEBIA90IAtqIgs2AlQgDkEBciEODAELIAAgAzYCACANIAlBgBAgCWtBBXZqOwEACyAPQQFqIg9BBEcNAAsLAkAgASAGIAAoAlQQnoCAgAANAEEADwsgACgCICECCyACIAAoAihJDQALC0EBIQMCQCAAKAIAIgRB////B0sNACAAIARBCHQ2AgBBASEDIAAgACgCECIEQQFqNgIQIAAgACgCBEEIdCAEIAAoAgxqLQAAcjYCBAsgAwtwAQF/AkBBqN4BEICAgIAAIgJFDQAgAkE0aiABNgIAIAJBPGogADYCAAJAAkACQCAAQX9qDgIAAQILIAIgARCAgICAACIANgIYIAANASACEIKAgIAADAILIAJBADYCGCACQThqQQA2AgALIAIPC0EAC9IBAQJ/QQYhAgJAIAFBJ0sNACAAQTBqIAFBAXFBAnIgAUEBdkELanQiATYCAAJAAkAgAEE8aigCACIDRQ0AQQQhAiABIABBNGooAgBLDQIgAEEsaiABNgIAIANBAkcNACAAQThqIgMoAgAgAU8NACAAIAE2AjggACgCGBCCgICAACAAIAAoAjAQgICAgAAiATYCGCABDQBBAyECDAELQQAhAiAAQQA2AkAgAEHQAGpBAToAACAAQegAakEANgIAIABB5N0BaiEDCyADQQA2AgALIAILIwACQCAAQTxqKAIARQ0AIAAoAhgQgoCAgAALIAAQgoCAgAAL9QEBBH9BACEDAkAgACgCDCACTQ0AIAAoAhggAk0NACABIAEoAgAiBCAAKAIQIAAoAggiBWsiBiAEIAYgBEkbIgRrNgIAIAUgAkF/c2ohAQJAIAUgAksNACAAKAIUIAFqIQELIAAoAgAiAiABai0AACEGQQEhAyAAIAVBAWo2AgggAiAFaiAGOgAAAkAgBEF/aiICRQ0AA0AgACgCACIFQQAgAUEBaiIBIAEgACgCFEYbIgFqLQAAIQQgACAAKAIIIgZBAWo2AgggBSAGaiAEOgAAIAJBf2oiAg0ACwsgACgCDCAAKAIIIgFPDQAgACABNgIMCyADC8gEAQd/AkACQCAAKAIAIgNBgICACEkNACAAKAIEIQQMAQsgACADQQh0IgM2AgAgACAAKAIQIgVBAWo2AhAgACAAKAIEQQh0IAUgACgCDGotAAByIgQ2AgQLAkACQCAEIANBC3YgAS8BACIGbCIFTw0AIAEgBkGAECAGa0EFdmo7AQAgASACQQR0akEEaiEHQQghCEECIQkMAQsgACAEIAVrIgQ2AgQgASAGIAZBBXZrOwEAAkAgAyAFayIDQf///wdLDQAgACADQQh0IgM2AgAgACAAKAIQIgVBAWo2AhAgACAEQQh0IAUgACgCDGotAAByIgQ2AgQLAkAgBCADQQt2IAEvAQIiBmwiBU8NACABIAZBgBAgBmtBBXZqOwECIAEgAkEEdGpBhAJqIQdBCCEIQQohCQwBCyAAIAQgBWsiBDYCBCABIAYgBkEFdms7AQIgAUGEBGohByADIAVrIQVBgAIhCEESIQkLIABB6ABqIAk2AgBBASEBA0AgByABQQF0IgFqIQMCQAJAIAVB////B00NACAFIQIMAQsgACAFQQh0IgI2AgAgACAAKAIQIgVBAWo2AhAgACAEQQh0IAUgACgCDGotAAByIgQ2AgQLAkACQCAEIAJBC3YgAy8BACIGbCIFSQ0AIAAgBCAFayIENgIEIAAgAiAFayIFNgIAIAMgBiAGQQV2azsBACABQQFyIQEMAQsgACAFNgIAIAMgBkGAECAGa0EFdmo7AQALIAEgCEkNAAsgAEHoAGogASAIayAJajYCAAsLNQEAQYAICy4IAAAAEAAAABgAAAAgAAAAKAAAADAAAABAAAAAUAAAAIAAAAAAAQAA/Td6WFoA";},t=>{t.exports=e;}],r={};function n(e){var i=r[e];if(void 0!==i)return i.exports;var a=r[e]={exports:{}};return t[e](a,a.exports,n),a.exports}n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]});},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0});};var i={};return (()=>{n.r(i),n.d(i,{XzReadableStream:()=>a});var e=n(1);const t=globalThis.ReadableStream||n(2).ReadableStream;class r{constructor(e){this.exports=e.exports,this.memory=this.exports.memory,this.ptr=this.exports.create_context(),this._refresh(),this.bufSize=this.mem32[0],this.inStart=this.mem32[1]-this.ptr,this.inEnd=this.inStart+this.bufSize,this.outStart=this.mem32[4]-this.ptr;}supplyInput(e){this._refresh(),this.mem8.subarray(this.inStart,this.inEnd).set(e,0),this.exports.supply_input(this.ptr,e.byteLength),this._refresh();}getNextOutput(){const e=this.exports.get_next_output(this.ptr);if(this._refresh(),0!==e&&1!==e)throw new Error(`get_next_output failed with error code ${e}`);return {outChunk:this.mem8.slice(this.outStart,this.outStart+this.mem32[5]),finished:1===e}}needsMoreInput(){return this.mem32[2]===this.mem32[3]}outputBufferIsFull(){return this.mem32[5]===this.bufSize}resetOutputBuffer(){this.outPos=this.mem32[5]=0;}dispose(){this.exports.destroy_context(this.ptr),this.exports=null;}_refresh(){this.memory.buffer!==this.mem8?.buffer&&(this.mem8=new Uint8Array(this.memory.buffer,this.ptr),this.mem32=new Uint32Array(this.memory.buffer,this.ptr));}}class a extends t{static _moduleInstancePromise;static _moduleInstance;static async _getModuleInstance(){const t=e.replace("data:application/wasm;base64,",""),r=Uint8Array.from(atob(t),(e=>e.charCodeAt(0))).buffer,n=await WebAssembly.instantiate(r,{});a._moduleInstance=n.instance;}constructor(e){let t,n=null;const i=e.getReader();super({async start(e){a._moduleInstance||await(a._moduleInstancePromise||(a._moduleInstancePromise=a._getModuleInstance())),t=new r(a._moduleInstance);},async pull(e){if(t.needsMoreInput()){if(null===n||0===n.byteLength){const{done:e,value:t}=await i.read();e||(n=t);}const e=Math.min(t.bufSize,n.byteLength);t.supplyInput(n.subarray(0,e)),n=n.subarray(e);}const r=t.getNextOutput();e.enqueue(r.outChunk),t.resetOutputBuffer(),r.finished&&(t.dispose(),e.close());},cancel:()=>(t.dispose(),i.cancel())});}}})(),i})(),e.exports=n(r(772));},1308:(e,t)=>{let r=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117];"undefined"!=typeof Int32Array&&(r=new Int32Array(r)),t.A=(e,t)=>{let n=0===t?0:-1^t;for(let t=0;t<e.length;t++)n=r[255&(n^e[t])]^n>>>8;return -1^n};},1447:(e,t,r)=>{var n=r(9805),i=r(3269),a=r(4823),s=r(7293),A=r(1998),o=-2,c=12,d=30;function l(e){return (e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}function f(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new n.Buf16(320),this.work=new n.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0;}function u(e){var t;return e&&e.state?(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=1,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new n.Buf32(852),t.distcode=t.distdyn=new n.Buf32(592),t.sane=1,t.back=-1,0):o}function g(e){var t;return e&&e.state?((t=e.state).wsize=0,t.whave=0,t.wnext=0,u(e)):o}function h(e,t){var r,n;return e&&e.state?(n=e.state,t<0?(r=0,t=-t):(r=1+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?o:(null!==n.window&&n.wbits!==t&&(n.window=null),n.wrap=r,n.wbits=t,g(e))):o}function C(e,t){var r,n;return e?(n=new f,e.state=n,n.window=null,0!==(r=h(e,t))&&(e.state=null),r):o}var I,_,m=!0;function B(e){if(m){var t;for(I=new n.Buf32(512),_=new n.Buf32(32),t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(A(1,e.lens,0,288,I,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;A(2,e.lens,0,32,_,0,e.work,{bits:5}),m=!1;}e.lencode=I,e.lenbits=9,e.distcode=_,e.distbits=5;}function p(e,t,r,i){var a,s=e.state;return null===s.window&&(s.wsize=1<<s.wbits,s.wnext=0,s.whave=0,s.window=new n.Buf8(s.wsize)),i>=s.wsize?(n.arraySet(s.window,t,r-s.wsize,s.wsize,0),s.wnext=0,s.whave=s.wsize):((a=s.wsize-s.wnext)>i&&(a=i),n.arraySet(s.window,t,r-i,a,s.wnext),(i-=a)?(n.arraySet(s.window,t,r-i,i,0),s.wnext=i,s.whave=s.wsize):(s.wnext+=a,s.wnext===s.wsize&&(s.wnext=0),s.whave<s.wsize&&(s.whave+=a))),0}t.inflateReset=g,t.inflateReset2=h,t.inflateResetKeep=u,t.inflateInit=function(e){return C(e,15)},t.inflateInit2=C,t.inflate=function(e,t){var r,f,u,g,h,C,I,_,m,w,E,Q,y,b,D,S,k,v,R,F,M,N,x,L,O=0,T=new n.Buf8(4),P=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!e||!e.state||!e.output||!e.input&&0!==e.avail_in)return o;(r=e.state).mode===c&&(r.mode=13),h=e.next_out,u=e.output,I=e.avail_out,g=e.next_in,f=e.input,C=e.avail_in,_=r.hold,m=r.bits,w=C,E=I,N=0;e:for(;;)switch(r.mode){case 1:if(0===r.wrap){r.mode=13;break}for(;m<16;){if(0===C)break e;C--,_+=f[g++]<<m,m+=8;}if(2&r.wrap&&35615===_){r.check=0,T[0]=255&_,T[1]=_>>>8&255,r.check=a(r.check,T,2,0),_=0,m=0,r.mode=2;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&_)<<8)+(_>>8))%31){e.msg="incorrect header check",r.mode=d;break}if(8!=(15&_)){e.msg="unknown compression method",r.mode=d;break}if(m-=4,M=8+(15&(_>>>=4)),0===r.wbits)r.wbits=M;else if(M>r.wbits){e.msg="invalid window size",r.mode=d;break}r.dmax=1<<M,e.adler=r.check=1,r.mode=512&_?10:c,_=0,m=0;break;case 2:for(;m<16;){if(0===C)break e;C--,_+=f[g++]<<m,m+=8;}if(r.flags=_,8!=(255&r.flags)){e.msg="unknown compression method",r.mode=d;break}if(57344&r.flags){e.msg="unknown header flags set",r.mode=d;break}r.head&&(r.head.text=_>>8&1),512&r.flags&&(T[0]=255&_,T[1]=_>>>8&255,r.check=a(r.check,T,2,0)),_=0,m=0,r.mode=3;case 3:for(;m<32;){if(0===C)break e;C--,_+=f[g++]<<m,m+=8;}r.head&&(r.head.time=_),512&r.flags&&(T[0]=255&_,T[1]=_>>>8&255,T[2]=_>>>16&255,T[3]=_>>>24&255,r.check=a(r.check,T,4,0)),_=0,m=0,r.mode=4;case 4:for(;m<16;){if(0===C)break e;C--,_+=f[g++]<<m,m+=8;}r.head&&(r.head.xflags=255&_,r.head.os=_>>8),512&r.flags&&(T[0]=255&_,T[1]=_>>>8&255,r.check=a(r.check,T,2,0)),_=0,m=0,r.mode=5;case 5:if(1024&r.flags){for(;m<16;){if(0===C)break e;C--,_+=f[g++]<<m,m+=8;}r.length=_,r.head&&(r.head.extra_len=_),512&r.flags&&(T[0]=255&_,T[1]=_>>>8&255,r.check=a(r.check,T,2,0)),_=0,m=0;}else r.head&&(r.head.extra=null);r.mode=6;case 6:if(1024&r.flags&&((Q=r.length)>C&&(Q=C),Q&&(r.head&&(M=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),n.arraySet(r.head.extra,f,g,Q,M)),512&r.flags&&(r.check=a(r.check,f,Q,g)),C-=Q,g+=Q,r.length-=Q),r.length))break e;r.length=0,r.mode=7;case 7:if(2048&r.flags){if(0===C)break e;Q=0;do{M=f[g+Q++],r.head&&M&&r.length<65536&&(r.head.name+=String.fromCharCode(M));}while(M&&Q<C);if(512&r.flags&&(r.check=a(r.check,f,Q,g)),C-=Q,g+=Q,M)break e}else r.head&&(r.head.name=null);r.length=0,r.mode=8;case 8:if(4096&r.flags){if(0===C)break e;Q=0;do{M=f[g+Q++],r.head&&M&&r.length<65536&&(r.head.comment+=String.fromCharCode(M));}while(M&&Q<C);if(512&r.flags&&(r.check=a(r.check,f,Q,g)),C-=Q,g+=Q,M)break e}else r.head&&(r.head.comment=null);r.mode=9;case 9:if(512&r.flags){for(;m<16;){if(0===C)break e;C--,_+=f[g++]<<m,m+=8;}if(_!==(65535&r.check)){e.msg="header crc mismatch",r.mode=d;break}_=0,m=0;}r.head&&(r.head.hcrc=r.flags>>9&1,r.head.done=!0),e.adler=r.check=0,r.mode=c;break;case 10:for(;m<32;){if(0===C)break e;C--,_+=f[g++]<<m,m+=8;}e.adler=r.check=l(_),_=0,m=0,r.mode=11;case 11:if(0===r.havedict)return e.next_out=h,e.avail_out=I,e.next_in=g,e.avail_in=C,r.hold=_,r.bits=m,2;e.adler=r.check=1,r.mode=c;case c:if(5===t||6===t)break e;case 13:if(r.last){_>>>=7&m,m-=7&m,r.mode=27;break}for(;m<3;){if(0===C)break e;C--,_+=f[g++]<<m,m+=8;}switch(r.last=1&_,m-=1,3&(_>>>=1)){case 0:r.mode=14;break;case 1:if(B(r),r.mode=20,6===t){_>>>=2,m-=2;break e}break;case 2:r.mode=17;break;case 3:e.msg="invalid block type",r.mode=d;}_>>>=2,m-=2;break;case 14:for(_>>>=7&m,m-=7&m;m<32;){if(0===C)break e;C--,_+=f[g++]<<m,m+=8;}if((65535&_)!=(_>>>16^65535)){e.msg="invalid stored block lengths",r.mode=d;break}if(r.length=65535&_,_=0,m=0,r.mode=15,6===t)break e;case 15:r.mode=16;case 16:if(Q=r.length){if(Q>C&&(Q=C),Q>I&&(Q=I),0===Q)break e;n.arraySet(u,f,g,Q,h),C-=Q,g+=Q,I-=Q,h+=Q,r.length-=Q;break}r.mode=c;break;case 17:for(;m<14;){if(0===C)break e;C--,_+=f[g++]<<m,m+=8;}if(r.nlen=257+(31&_),_>>>=5,m-=5,r.ndist=1+(31&_),_>>>=5,m-=5,r.ncode=4+(15&_),_>>>=4,m-=4,r.nlen>286||r.ndist>30){e.msg="too many length or distance symbols",r.mode=d;break}r.have=0,r.mode=18;case 18:for(;r.have<r.ncode;){for(;m<3;){if(0===C)break e;C--,_+=f[g++]<<m,m+=8;}r.lens[P[r.have++]]=7&_,_>>>=3,m-=3;}for(;r.have<19;)r.lens[P[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,x={bits:r.lenbits},N=A(0,r.lens,0,19,r.lencode,0,r.work,x),r.lenbits=x.bits,N){e.msg="invalid code lengths set",r.mode=d;break}r.have=0,r.mode=19;case 19:for(;r.have<r.nlen+r.ndist;){for(;S=(O=r.lencode[_&(1<<r.lenbits)-1])>>>16&255,k=65535&O,!((D=O>>>24)<=m);){if(0===C)break e;C--,_+=f[g++]<<m,m+=8;}if(k<16)_>>>=D,m-=D,r.lens[r.have++]=k;else {if(16===k){for(L=D+2;m<L;){if(0===C)break e;C--,_+=f[g++]<<m,m+=8;}if(_>>>=D,m-=D,0===r.have){e.msg="invalid bit length repeat",r.mode=d;break}M=r.lens[r.have-1],Q=3+(3&_),_>>>=2,m-=2;}else if(17===k){for(L=D+3;m<L;){if(0===C)break e;C--,_+=f[g++]<<m,m+=8;}m-=D,M=0,Q=3+(7&(_>>>=D)),_>>>=3,m-=3;}else {for(L=D+7;m<L;){if(0===C)break e;C--,_+=f[g++]<<m,m+=8;}m-=D,M=0,Q=11+(127&(_>>>=D)),_>>>=7,m-=7;}if(r.have+Q>r.nlen+r.ndist){e.msg="invalid bit length repeat",r.mode=d;break}for(;Q--;)r.lens[r.have++]=M;}}if(r.mode===d)break;if(0===r.lens[256]){e.msg="invalid code -- missing end-of-block",r.mode=d;break}if(r.lenbits=9,x={bits:r.lenbits},N=A(1,r.lens,0,r.nlen,r.lencode,0,r.work,x),r.lenbits=x.bits,N){e.msg="invalid literal/lengths set",r.mode=d;break}if(r.distbits=6,r.distcode=r.distdyn,x={bits:r.distbits},N=A(2,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,x),r.distbits=x.bits,N){e.msg="invalid distances set",r.mode=d;break}if(r.mode=20,6===t)break e;case 20:r.mode=21;case 21:if(C>=6&&I>=258){e.next_out=h,e.avail_out=I,e.next_in=g,e.avail_in=C,r.hold=_,r.bits=m,s(e,E),h=e.next_out,u=e.output,I=e.avail_out,g=e.next_in,f=e.input,C=e.avail_in,_=r.hold,m=r.bits,r.mode===c&&(r.back=-1);break}for(r.back=0;S=(O=r.lencode[_&(1<<r.lenbits)-1])>>>16&255,k=65535&O,!((D=O>>>24)<=m);){if(0===C)break e;C--,_+=f[g++]<<m,m+=8;}if(S&&!(240&S)){for(v=D,R=S,F=k;S=(O=r.lencode[F+((_&(1<<v+R)-1)>>v)])>>>16&255,k=65535&O,!(v+(D=O>>>24)<=m);){if(0===C)break e;C--,_+=f[g++]<<m,m+=8;}_>>>=v,m-=v,r.back+=v;}if(_>>>=D,m-=D,r.back+=D,r.length=k,0===S){r.mode=26;break}if(32&S){r.back=-1,r.mode=c;break}if(64&S){e.msg="invalid literal/length code",r.mode=d;break}r.extra=15&S,r.mode=22;case 22:if(r.extra){for(L=r.extra;m<L;){if(0===C)break e;C--,_+=f[g++]<<m,m+=8;}r.length+=_&(1<<r.extra)-1,_>>>=r.extra,m-=r.extra,r.back+=r.extra;}r.was=r.length,r.mode=23;case 23:for(;S=(O=r.distcode[_&(1<<r.distbits)-1])>>>16&255,k=65535&O,!((D=O>>>24)<=m);){if(0===C)break e;C--,_+=f[g++]<<m,m+=8;}if(!(240&S)){for(v=D,R=S,F=k;S=(O=r.distcode[F+((_&(1<<v+R)-1)>>v)])>>>16&255,k=65535&O,!(v+(D=O>>>24)<=m);){if(0===C)break e;C--,_+=f[g++]<<m,m+=8;}_>>>=v,m-=v,r.back+=v;}if(_>>>=D,m-=D,r.back+=D,64&S){e.msg="invalid distance code",r.mode=d;break}r.offset=k,r.extra=15&S,r.mode=24;case 24:if(r.extra){for(L=r.extra;m<L;){if(0===C)break e;C--,_+=f[g++]<<m,m+=8;}r.offset+=_&(1<<r.extra)-1,_>>>=r.extra,m-=r.extra,r.back+=r.extra;}if(r.offset>r.dmax){e.msg="invalid distance too far back",r.mode=d;break}r.mode=25;case 25:if(0===I)break e;if(Q=E-I,r.offset>Q){if((Q=r.offset-Q)>r.whave&&r.sane){e.msg="invalid distance too far back",r.mode=d;break}Q>r.wnext?(Q-=r.wnext,y=r.wsize-Q):y=r.wnext-Q,Q>r.length&&(Q=r.length),b=r.window;}else b=u,y=h-r.offset,Q=r.length;Q>I&&(Q=I),I-=Q,r.length-=Q;do{u[h++]=b[y++];}while(--Q);0===r.length&&(r.mode=21);break;case 26:if(0===I)break e;u[h++]=r.length,I--,r.mode=21;break;case 27:if(r.wrap){for(;m<32;){if(0===C)break e;C--,_|=f[g++]<<m,m+=8;}if(E-=I,e.total_out+=E,r.total+=E,E&&(e.adler=r.check=r.flags?a(r.check,u,E,h-E):i(r.check,u,E,h-E)),E=I,(r.flags?_:l(_))!==r.check){e.msg="incorrect data check",r.mode=d;break}_=0,m=0;}r.mode=28;case 28:if(r.wrap&&r.flags){for(;m<32;){if(0===C)break e;C--,_+=f[g++]<<m,m+=8;}if(_!==(4294967295&r.total)){e.msg="incorrect length check",r.mode=d;break}_=0,m=0;}r.mode=29;case 29:N=1;break e;case d:N=-3;break e;case 31:return -4;default:return o}return e.next_out=h,e.avail_out=I,e.next_in=g,e.avail_in=C,r.hold=_,r.bits=m,(r.wsize||E!==e.avail_out&&r.mode<d&&(r.mode<27||4!==t))&&p(e,e.output,e.next_out,E-e.avail_out)?(r.mode=31,-4):(w-=e.avail_in,E-=e.avail_out,e.total_in+=w,e.total_out+=E,r.total+=E,r.wrap&&E&&(e.adler=r.check=r.flags?a(r.check,u,E,e.next_out-E):i(r.check,u,E,e.next_out-E)),e.data_type=r.bits+(r.last?64:0)+(r.mode===c?128:0)+(20===r.mode||15===r.mode?256:0),(0===w&&0===E||4===t)&&0===N&&(N=-5),N)},t.inflateEnd=function(e){if(!e||!e.state)return o;var t=e.state;return t.window&&(t.window=null),e.state=null,0},t.inflateGetHeader=function(e,t){var r;return e&&e.state&&2&(r=e.state).wrap?(r.head=t,t.done=!1,0):o},t.inflateSetDictionary=function(e,t){var r,n=t.length;return e&&e.state?0!==(r=e.state).wrap&&11!==r.mode?o:11===r.mode&&i(1,t,n,0)!==r.check?-3:p(e,t,n,n)?(r.mode=31,-4):(r.havedict=1,0):o},t.inflateInfo="pako inflate (from Nodeca project)";},1492:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const i=n(r(4141)),a=r(6761),s=r(6272);class A extends i.default{constructor(e,t){if(super(e,t),"int"!==this.dataType)throw new s.CramUnimplementedError(`${this.dataType} decoding not yet implemented by SUBEXP codec`)}decode(e,t,r,n){let i,s,A=0;for(;(0, a.getBits)(t.content,n.coreBlock,1);)A+=1;return 0===A?(i=this.parameters.K,s=(0, a.getBits)(t.content,n.coreBlock,i)):(i=A+this.parameters.K-1,s=1<<i|(0, a.getBits)(t.content,n.coreBlock,i)),s-this.parameters.offset}}t.default=A;},1558:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,r,n){let A=e.getInt(),o=e.getInt(),c=e.getInt(),d=e.getInt();const l=n.remaining(),f=-4&l;for(let i=0;i<f;i+=4){const l=t.R[s.default.get(A,a.TF_SHIFT)],f=t.R[s.default.get(o,a.TF_SHIFT)],u=t.R[s.default.get(c,a.TF_SHIFT)],g=t.R[s.default.get(d,a.TF_SHIFT)];n.putAt(i,l),n.putAt(i+1,f),n.putAt(i+2,u),n.putAt(i+3,g),A=s.default.advanceSymbolStep(A,r[255&l],a.TF_SHIFT),o=s.default.advanceSymbolStep(o,r[255&f],a.TF_SHIFT),c=s.default.advanceSymbolStep(c,r[255&u],a.TF_SHIFT),d=s.default.advanceSymbolStep(d,r[255&g],a.TF_SHIFT),A=s.default.renormalize(A,e),o=s.default.renormalize(o,e),c=s.default.renormalize(c,e),d=s.default.renormalize(d,e);}let u;switch(n.setPosition(f),3&l){case 0:break;case 1:u=t.R[s.default.get(A,a.TF_SHIFT)],s.default.advanceSymbol(A,e,r[255&u],a.TF_SHIFT),n.put(u);break;case 2:u=t.R[s.default.get(A,a.TF_SHIFT)],s.default.advanceSymbol(A,e,r[255&u],a.TF_SHIFT),n.put(u),u=t.R[s.default.get(o,a.TF_SHIFT)],s.default.advanceSymbol(o,e,r[255&u],a.TF_SHIFT),n.put(u);break;case 3:u=t.R[s.default.get(A,a.TF_SHIFT)],s.default.advanceSymbol(A,e,r[255&u],a.TF_SHIFT),n.put(u),u=t.R[s.default.get(o,a.TF_SHIFT)],s.default.advanceSymbol(o,e,r[255&u],a.TF_SHIFT),n.put(u),u=t.R[s.default.get(c,a.TF_SHIFT)],s.default.advanceSymbol(c,e,r[255&u],a.TF_SHIFT),n.put(u);break;default:throw new i.CramMalformedError("invalid output size encountered during rANS decoding")}n.setPosition(0);};const i=r(6272),a=r(7151),s=n(r(9301));},1609:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.instantiateCodec=function e(t,r){const n=(i="ignore"===r?0:t.codecId,f[i]);var i;if(!n)throw new l.CramUnimplementedError(`no codec implemented for codec ID ${t.codecId}`);return new n(t.parameters,r,e)};const i=n(r(807)),a=n(r(7934)),s=n(r(8006)),A=n(r(8930)),o=n(r(632)),c=n(r(4056)),d=n(r(1492)),l=r(6272),f={1:A.default,3:c.default,4:a.default,5:s.default,6:i.default,7:d.default,9:o.default};},1668:(e,t,r)=>{var n={};(0, r(9805).assign)(n,r(3303),r(7083),r(9681)),e.exports=n;},1739:function(e,t,r){var n,i=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i);}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),s=this&&this.__importStar||(n=function(e){return n=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},n(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=n(e),s=0;s<r.length;s++)"default"!==r[s]&&i(t,e,r[s]);return a(t,e),t}),A=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.decode=function(e,t,r){(e=new d.default(e)).ReadUint32();const n=e.ReadUint32(),i=e.ReadByte(),a=function(e,t,r,n){let i=-1;const a=new Array(256);for(;!e.EOF();){const t=e.ReadByte(),s=128&t,A=64&t,c=63&t;if(s&&(i++,a[i]=new Array(13)),c!=u&&s){const e=new Array(n-1).fill(w);a[i][u]=new d.default((0, o.concatUint8Array)([new Uint8Array(c),e]));}if(A){const t=e.ReadByte(),r=e.ReadByte();a[i][c]=new d.default(a[t][r].buf);}else {const t=e.ReadUint7(),n=e.ReadData(t);a[i][c]=r?f.decode(n):l.decode(n),a[i][c]=new d.default(a[i][c]);}}return a}(e,0,i,n),s=new Array(n),A=new Array(n);let c="";void 0===r&&(r="\n");for(let e=0;e<n;e++)c+=y(a,s,A,e)+r;return c};const o=r(6951),c=A(r(9505)),d=A(r(3088)),l=s(r(9313)),f=new c.default,u=0,g=1,h=2,C=3,I=4,_=5,m=7,B=8,p=9,w=10,E=12;function Q(e,t){let r=e+"";for(;r.length<t;)r="0"+r;return r}function y(e,t,r,n){let i=e[0][u].ReadByte();const a=n-e[0][i].ReadUint32();if(i==_)return t[n]=t[a],r[n]=r[a],t[n];let s=1;t[n]="",r[n]=new Array(256);do{switch(i=e[s][u].ReadByte(),i){case h:r[n][s]=e[s][h].ReadChar();break;case g:r[n][s]=e[s][g].ReadString();break;case m:r[n][s]=e[s][m].ReadUint32();break;case C:var A=e[s][C].ReadUint32(),o=e[s][I].ReadByte();r[n][s]=Q(A,o);break;case B:r[n][s]=(0|r[a][s])+e[s][B].ReadByte();break;case p:A=(0|r[a][s])+e[s][p].ReadByte(),o=r[a][s].length,r[n][s]=Q(A,o);break;case w:r[n][s]=r[a][s];break;default:r[n][s]="";}t[n]+=r[n][s++];}while(i!=E);return t[n]}},1996:(e,t,r)=>{var n=r(9805),i=!0,a=!0;try{String.fromCharCode.apply(null,[0]);}catch(e){i=!1;}try{String.fromCharCode.apply(null,new Uint8Array(1));}catch(e){a=!1;}for(var s=new n.Buf8(256),A=0;A<256;A++)s[A]=A>=252?6:A>=248?5:A>=240?4:A>=224?3:A>=192?2:1;function o(e,t){if(t<65534&&(e.subarray&&a||!e.subarray&&i))return String.fromCharCode.apply(null,n.shrinkBuf(e,t));for(var r="",s=0;s<t;s++)r+=String.fromCharCode(e[s]);return r}s[254]=s[254]=1,t.string2buf=function(e){var t,r,i,a,s,A=e.length,o=0;for(a=0;a<A;a++)55296==(64512&(r=e.charCodeAt(a)))&&a+1<A&&56320==(64512&(i=e.charCodeAt(a+1)))&&(r=65536+(r-55296<<10)+(i-56320),a++),o+=r<128?1:r<2048?2:r<65536?3:4;for(t=new n.Buf8(o),s=0,a=0;s<o;a++)55296==(64512&(r=e.charCodeAt(a)))&&a+1<A&&56320==(64512&(i=e.charCodeAt(a+1)))&&(r=65536+(r-55296<<10)+(i-56320),a++),r<128?t[s++]=r:r<2048?(t[s++]=192|r>>>6,t[s++]=128|63&r):r<65536?(t[s++]=224|r>>>12,t[s++]=128|r>>>6&63,t[s++]=128|63&r):(t[s++]=240|r>>>18,t[s++]=128|r>>>12&63,t[s++]=128|r>>>6&63,t[s++]=128|63&r);return t},t.buf2binstring=function(e){return o(e,e.length)},t.binstring2buf=function(e){for(var t=new n.Buf8(e.length),r=0,i=t.length;r<i;r++)t[r]=e.charCodeAt(r);return t},t.buf2string=function(e,t){var r,n,i,a,A=t||e.length,c=new Array(2*A);for(n=0,r=0;r<A;)if((i=e[r++])<128)c[n++]=i;else if((a=s[i])>4)c[n++]=65533,r+=a-1;else {for(i&=2===a?31:3===a?15:7;a>1&&r<A;)i=i<<6|63&e[r++],a--;a>1?c[n++]=65533:i<65536?c[n++]=i:(i-=65536,c[n++]=55296|i>>10&1023,c[n++]=56320|1023&i);}return o(c,n)},t.utf8border=function(e,t){var r;for((t=t||e.length)>e.length&&(t=e.length),r=t-1;r>=0&&128==(192&e[r]);)r--;return r<0||0===r?t:r+s[e[r]]>t?r:t};},1998:(e,t,r)=>{var n=r(9805),i=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],a=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],s=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],A=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];e.exports=function(e,t,r,o,c,d,l,f){var u,g,h,C,I,_,m,B,p,w=f.bits,E=0,Q=0,y=0,b=0,D=0,S=0,k=0,v=0,R=0,F=0,M=null,N=0,x=new n.Buf16(16),L=new n.Buf16(16),O=null,T=0;for(E=0;E<=15;E++)x[E]=0;for(Q=0;Q<o;Q++)x[t[r+Q]]++;for(D=w,b=15;b>=1&&0===x[b];b--);if(D>b&&(D=b),0===b)return c[d++]=20971520,c[d++]=20971520,f.bits=1,0;for(y=1;y<b&&0===x[y];y++);for(D<y&&(D=y),v=1,E=1;E<=15;E++)if(v<<=1,(v-=x[E])<0)return -1;if(v>0&&(0===e||1!==b))return -1;for(L[1]=0,E=1;E<15;E++)L[E+1]=L[E]+x[E];for(Q=0;Q<o;Q++)0!==t[r+Q]&&(l[L[t[r+Q]]++]=Q);if(0===e?(M=O=l,_=19):1===e?(M=i,N-=257,O=a,T-=257,_=256):(M=s,O=A,_=-1),F=0,Q=0,E=y,I=d,S=D,k=0,h=-1,C=(R=1<<D)-1,1===e&&R>852||2===e&&R>592)return 1;for(;;){m=E-k,l[Q]<_?(B=0,p=l[Q]):l[Q]>_?(B=O[T+l[Q]],p=M[N+l[Q]]):(B=96,p=0),u=1<<E-k,y=g=1<<S;do{c[I+(F>>k)+(g-=u)]=m<<24|B<<16|p;}while(0!==g);for(u=1<<E-1;F&u;)u>>=1;if(0!==u?(F&=u-1,F+=u):F=0,Q++,0===--x[E]){if(E===b)break;E=t[r+l[Q]];}if(E>D&&(F&C)!==h){for(0===k&&(k=D),I+=y,v=1<<(S=E-k);S+k<b&&!((v-=x[S+k])<=0);)S++,v<<=1;if(R+=1<<S,1===e&&R>852||2===e&&R>592)return 1;c[h=F&C]=D<<24|S<<16|I-d;}}return 0!==F&&(c[I+F]=E-k<<24|64<<16),f.bits=D,0};},2151:e=>{var t={utf8:{stringToBytes:function(e){return t.bin.stringToBytes(unescape(encodeURIComponent(e)))},bytesToString:function(e){return decodeURIComponent(escape(t.bin.bytesToString(e)))}},bin:{stringToBytes:function(e){for(var t=[],r=0;r<e.length;r++)t.push(255&e.charCodeAt(r));return t},bytesToString:function(e){for(var t=[],r=0;r<e.length;r++)t.push(String.fromCharCode(e[r]));return t.join("")}}};e.exports=t;},2169:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.unzip=function(e){return (0, n.inflate)(e)};const n=r(1668);},2324:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=class{constructor(e=256){this.total_freq=e,this.max_sym=e-1,this.S=[],this.F=[];for(let e=0;e<=this.max_sym;e++)this.S[e]=e,this.F[e]=1;}ModelDecode(e,t){const r=t.RangeGetFrequency(this.total_freq);let n=0,i=0;for(;n+this.F[i]<=r;)n+=this.F[i++];t.RangeDecode(e,n,this.F[i],this.total_freq),this.F[i]+=16,this.total_freq+=16,this.total_freq>65519&&this.ModelRenormalise();const a=this.S[i];if(i>0&&this.F[i]>this.F[i-1]){let e=this.F[i];this.F[i]=this.F[i-1],this.F[i-1]=e,e=this.S[i],this.S[i]=this.S[i-1],this.S[i-1]=e;}return a}ModelRenormalise(){this.total_freq=0;for(let e=0;e<=this.max_sym;e++)this.F[e]-=Math.floor(this.F[e]/2),this.total_freq+=this.F[e];}ModelEncode(e,t,r){let n=0;for(var i=0;this.S[i]!=r;i++)n+=this.F[i];if(t.RangeEncode(e,n,this.F[i],this.total_freq),this.F[i]+=16,this.total_freq+=16,this.total_freq>65519&&this.ModelRenormalise(),r=this.S[i],i>0&&this.F[i]>this.F[i-1]){let e=this.F[i];this.F[i]=this.F[i-1],this.F[i-1]=e,e=this.S[i],this.S[i]=this.S[i-1],this.S[i-1]=e;}}};},2549:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.TWO_PWR_56_DBL=t.TWO_PWR_24_DBL=t.TWO_PWR_64_DBL=t.TWO_PWR_32_DBL=t.TWO_PWR_16_DBL=void 0,t.itf8Size=function(e){return -128&e?-16384&e?-2097152&e?-268435456&e?5:4:3:2:1},t.parseItf8=function(e,t){let r=t;const n=e[r];let i;return n<128?(i=n,r+=1):n<192?(i=(63&n)<<8|e[r+1],r+=2):n<224?(i=(31&n)<<16|e[r+1]<<8|e[r+2],r+=3):n<240?(i=(15&n)<<24|e[r+1]<<16|e[r+2]<<8|e[r+3],r+=4):(i=(15&n)<<28|e[r+1]<<20|e[r+2]<<12|e[r+3]<<4|15&e[r+4],r+=5),[i,r-t]},t.parseLtf8=function(e,r){let n=r;const i=e[n];let a;return i<128?(a=i,n+=1):i<192?(a=16383&(i<<8|e[n+1]),n+=2):i<224?(a=(63&i)<<16|e[n+1]<<8|e[n+2],n+=3):i<240?(a=(31&i)<<24|e[n+1]<<16|e[n+2]<<8|e[n+3],n+=4):i<248?(a=(15&e[n])*t.TWO_PWR_32_DBL+(e[n+1]<<24|e[n+2]<<16|e[n+3]<<8|e[n+4]),n+=5):i<252?(a=((7&e[n])<<8|e[n+1])*t.TWO_PWR_32_DBL+(e[n+2]<<24|e[n+3]<<16|e[n+4]<<8|e[n+5]),n+=6):i<254?(a=((3&e[n])<<16|e[n+1]<<8|e[n+2])*t.TWO_PWR_32_DBL+(e[n+3]<<24|e[n+4]<<16|e[n+5]<<8|e[n+6]),n+=7):i<255?(a=(e[n+1]<<24|e[n+2]<<16|e[n+3]<<8|e[n+4])*t.TWO_PWR_32_DBL+(e[n+5]<<24|e[n+6]<<16|e[n+7]<<8|e[n+8]),n+=8):(a=e[n+1]*t.TWO_PWR_56_DBL+(e[n+2]<<24|e[n+3]<<16|e[n+4]<<8|e[n+5])*t.TWO_PWR_32_DBL+(e[n+6]<<24|e[n+7]<<16|e[n+8]<<8|e[n+9]),n+=9),[a,n-r]},t.parseItem=function(e,t,r=0,n=0){const{offset:i,value:a}=t(e,r);return {...a,_endPosition:i+n,_size:i-r}},t.tinyMemoize=function(e,t){const r=e.prototype[t],n=`_memo_${t}`;e.prototype[t]=function(){if(!(n in this)){const e=r.call(this);this[n]=e,Promise.resolve(e).catch((()=>{delete this[n];}));}return this[n]};},t.sequenceMD5=function(e){return (0, i.default)(e.toUpperCase().replaceAll(/[^\u0021-\u007e]/g,""))};const i=n(r(3503));t.TWO_PWR_16_DBL=65536,t.TWO_PWR_32_DBL=t.TWO_PWR_16_DBL*t.TWO_PWR_16_DBL,t.TWO_PWR_64_DBL=t.TWO_PWR_32_DBL*t.TWO_PWR_32_DBL,t.TWO_PWR_24_DBL=1<<24,t.TWO_PWR_56_DBL=t.TWO_PWR_24_DBL*t.TWO_PWR_32_DBL;},2616:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});const n=r(9846);t.default=class{constructor(e,t={}){this.filename=e;}async read(e,t=0){const r=new Uint8Array(e),i=await(0, n.open)(this.filename,"r"),a=await i.read(r,0,e,t);return await i.close(),a.buffer.subarray(0,a.bytesRead)}async readFile(e){const t=await(0, n.readFile)(this.filename,e);return "string"==typeof t?t:new Uint8Array(t)}async stat(){return (0, n.stat)(this.filename)}async close(){}};},2660:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.decode=function(e,t){return function(e,t){const r=e.ReadUint7(),n=function(e){const t={max_sym:0};if(5!=e.ReadByte())return void console.error("Invalid FQZComp version number");const r=e.ReadByte(),n=r&h?e.ReadByte():1;let i=r.nparam>1?r.nparam-1:0;const a=new Array(256);if(r&C)i=e.ReadByte(),A(e,a,256);else {for(var s=0;s<n;s++)a[s]=s;for(;s<256;s++)a[s]=n-1;}t.do_rev=r&I,t.stab=a,t.max_sel=i,t.params=new Array(t.nparam);for(let r=0;r<n;r++)t.params[r]=m(e),t.max_sym<t.params[r].max_sym&&(t.max_sym=t.params[r].max_sym);return t}(e);if(!n)return;var s=n.params;const o=new Array(t.length),c=function(e){const t={};t.qual=new Array(65536);for(var r=0;r<65536;r++)t.qual[r]=new a.default(e.max_sym+1);for(t.len=new Array(4),r=0;r<4;r++)t.len[r]=new a.default(256);return t.rev=new a.default(2),t.dup=new a.default(2),e.max_sel>0&&(t.sel=new a.default(e.max_sel+1)),t}(n),d=new i.default(e);d.RangeStartDecode(e);const l=new Uint8Array(r),f={qctx:0,prevq:0,delta:0,p:0,s:0,x:0,len:0,is_dup:0,rec:0};let u=0;for(;u<r;){if(0==f.p){if(B(e,d,n,c,f,o),f.is_dup>0&&c.dup.ModelDecode(e,d)){for(let e=0;e<len;e++)l[u+e]=l[u+e-f.len];u+=f.len,f.p=0;continue}t.push(f.len);var g=(s=n.params[f.x]).context;}const r=c.qual[g].ModelDecode(e,d);l[u++]=s.qmap[r],g=_(s,f,r);}return n.do_rev&&function(e,t,r,n){let i=0,a=0;for(;a<t;){if(r[i]){let t=0,r=n[i]-1;for(;t<r;){const n=e[a+t];e[a+t]=e[a+r],e[a+r]=n,t++,r--;}}a+=n[i++];}}(l,r,o,t),l}(new s.default(e),t)};const i=n(r(4652)),a=n(r(2324)),s=n(r(3088));function A(e,t,r){let n=0,i=0,a=-1;const s=new Array(1024);for(;i<r;){const t=e.ReadByte();if(s[n++]=t,i+=t,t==a){let r=e.ReadByte();for(i+=t*r;r--;)s[n++]=t;}a=t;}let A=0;for(n=0,i=0;i<r;){let e=0;do{var o=s[n++];e+=o;}while(255==o);for(;e--;)t[i++]=A;A++;}}const o=2,c=4,d=8,l=16,f=32,u=64,g=128,h=1,C=2,I=4;function _(e,t,r){let n=e.context;return t.qctx=(t.qctx<<e.qshift)+e.qtab[r],n+=(t.qctx&(1<<e.qbits)-1)<<e.qloc,e.do_pos&&(n+=e.ptab[Math.min(t.p,1023)]<<e.ploc),e.do_delta&&(n+=e.dtab[Math.min(t.delta,255)]<<e.dloc,t.delta+=t.prevq!=r?1:0,t.prevq=r),e.do_sel&&(n+=t.s<<e.sloc),t.p--,65535&n}function m(e){const t={};t.context=e.ReadUint16(),t.pflags=e.ReadByte(),t.do_dedup=t.pflags&o,t.fixed_len=t.pflags&c,t.do_sel=t.pflags&d,t.do_qmap=t.pflags&l,t.do_pos=t.pflags&f,t.do_delta=t.pflags&u,t.do_qtab=t.pflags&g,t.max_sym=e.ReadByte();let r=e.ReadByte();if(t.qbits=r>>4,t.qshift=15&r,r=e.ReadByte(),t.qloc=r>>4,t.sloc=15&r,r=e.ReadByte(),t.ploc=r>>4,t.dloc=15&r,t.qmap=new Array(256),t.pflags&l)for(var n=0;n<t.max_sym;n++)t.qmap[n]=e.ReadByte();else for(n=0;n<256;n++)t.qmap[n]=n;if(t.qtab=new Array(1024),t.qbits>0&&t.pflags&g)A(e,t.qtab,256);else for(n=0;n<256;n++)t.qtab[n]=n;return t.ptab=new Array(1024),t.pflags&f&&A(e,t.ptab,1024),t.dtab=new Array(256),t.pflags&u&&A(e,t.dtab,256),t}function B(e,t,r,n,i,a){i.s=r.max_sel>0?n.sel.ModelDecode(e,t):0,i.x=r.stab[i.s];const s=r.params[i.x];if(s.fixed_len>=0){var A=n.len[0].ModelDecode(e,t);A|=n.len[1].ModelDecode(e,t)<<8,A|=n.len[2].ModelDecode(e,t)<<16,A|=n.len[3].ModelDecode(e,t)<<24,s.fixed_len>0&&(s.fixed_len=-A);}else A=-s.fixed_len;i.len=A,r.do_rev&&(a[i.rec]=n.rev.ModelDecode(e,t)),i.is_dup=0,s.pflags&o&&n.dup.ModelDecode(e,t)&&(i.is_dup=1),i.p=A,i.delta=0,i.qctx=0,i.prevq=0,i.rec++;}},2670:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,r=0){if(0===e.length)return t.fill(0),t;const n=new d(e,r),l=n.get();if(0!==l&&1!==l)throw new i.CramMalformedError(`Invalid rANS order ${l}`);if(n.getInt()!==n.remaining()-c)throw new i.CramMalformedError("Incorrect input length.");const f=n.getInt(),u=new d(t||new Uint8Array(f));if(u.length<f)throw new i.CramMalformedError(`Output buffer too small to fit ${f} bytes.`);switch(l){case 0:return function(e,t){const r=new A.default.AriDecoder,n=new Array(256);for(let e=0;e<n.length;e+=1)n[e]=new A.default.DecodingSymbol;return (0, o.readStatsO0)(e,r,n),(0, a.default)(e,r,n,t),t}(n,u);case 1:return function(e,t){const r=new Array(256);for(let e=0;e<r.length;e+=1)r[e]=new A.default.AriDecoder;const n=new Array(256);for(let e=0;e<n.length;e+=1){n[e]=new Array(256);for(let t=0;t<n[e].length;t+=1)n[e][t]=new A.default.DecodingSymbol;}return (0, o.readStatsO1)(e,r,n),(0, s.default)(e,t,r,n),t}(n,u);default:throw new i.CramMalformedError(`Invalid rANS order: ${l}`)}};const i=r(6272),a=n(r(1558)),s=n(r(2867)),A=n(r(9301)),o=r(6268),c=4;class d{constructor(e,t=0){this._buffer=e,this._dataView=new DataView(e.buffer),this._position=t,this.length=e.length;}get(){const e=this._buffer[this._position];return this._position+=1,e}getByte(){return this.get()}getByteAt(e){return this._buffer[e]}position(){return this._position}put(e){return this._buffer[this._position]=e,this._position+=1,e}putAt(e,t){return this._buffer[e]=t,t}setPosition(e){return this._position=e,e}getInt(){const e=this._dataView.getInt32(this._position,!0);return this._position+=4,e}remaining(){return this._buffer.length-this._position}}},2845:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const i=r(6272),a=n(r(500)),s=r(2549),A=n(r(8700)),o=r(7580);class c{constructor(e,t){this.file=e,this.filePosition=t;}getHeader(){return this._readContainerHeader(this.filePosition)}async getCompressionHeaderBlock(){if(!(await this.getHeader()).numRecords)return null;const{majorVersion:e}=await this.file.getDefinition(),t=(0, o.getSectionParsers)(e),r=await this.getFirstBlock();if("COMPRESSION_HEADER"!==r.contentType)throw new i.CramMalformedError(`invalid content type ${r.contentType} in compression header block`);const n=(0, s.parseItem)(r.content,t.cramCompressionHeader.parser,0,r.contentPosition);return {...r,parsedContent:n}}async getFirstBlock(){const e=await this.getHeader();return this.file.readBlock(e._endPosition)}async getCompressionScheme(){const e=await this.getCompressionHeaderBlock();if(e)return new A.default(e.parsedContent)}getSlice(e,t){return new a.default(this,e,t)}async _readContainerHeader(e){const{majorVersion:t}=await this.file.getDefinition(),r=(0, o.getSectionParsers)(t),{cramContainerHeader1:n,cramContainerHeader2:i}=r,a=await this.file.read(n.maxLength,e),A=(0, s.parseItem)(a,n.parser),c=(0, s.itf8Size)(A.numLandmarks),d=await this.file.read(i.maxLength(A.numLandmarks),e+A._size-c),l=(0, s.parseItem)(d,i.parser);return this.file.validateChecksums&&void 0!==l.crc32&&await this.file.checkCrc32(e,A._size+l._size-c-4,l.crc32,`container header beginning at position ${e}`),{...A,...l,_size:A._size+l._size-c,_endPosition:A._size+l._size-c+e}}}t.default=c,"getHeader getCompressionHeaderBlock getCompressionScheme".split(" ").forEach((e=>{(0, s.tinyMemoize)(c,e);}));},2867:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,r,n){const s=t.remaining();let A=e.getInt(),o=e.getInt(),c=e.getInt(),d=e.getInt();const l=s>>2;let f=0,u=l,g=2*l,h=3*l,C=0,I=0,_=0,m=0;for(;f<l;f+=1,u+=1,g+=1,h+=1){const s=255&r[C].R[a.default.get(A,i.TF_SHIFT)],l=255&r[I].R[a.default.get(o,i.TF_SHIFT)],B=255&r[_].R[a.default.get(c,i.TF_SHIFT)],p=255&r[m].R[a.default.get(d,i.TF_SHIFT)];t.putAt(f,s),t.putAt(u,l),t.putAt(g,B),t.putAt(h,p),A=a.default.advanceSymbolStep(A,n[C][s],i.TF_SHIFT),o=a.default.advanceSymbolStep(o,n[I][l],i.TF_SHIFT),c=a.default.advanceSymbolStep(c,n[_][B],i.TF_SHIFT),d=a.default.advanceSymbolStep(d,n[m][p],i.TF_SHIFT),A=a.default.renormalize(A,e),o=a.default.renormalize(o,e),c=a.default.renormalize(c,e),d=a.default.renormalize(d,e),C=s,I=l,_=B,m=p;}for(;h<s;h+=1){const s=255&r[m].R[a.default.get(d,i.TF_SHIFT)];t.putAt(h,s),d=a.default.advanceSymbol(d,e,n[m][s],i.TF_SHIFT),m=s;}};const i=r(7151),a=n(r(9301));},3088:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=class{constructor(e,t=0,r=0){0!==r?(this.buf=new Uint8Array(r),this.length=r):(this.buf=e,this.length=e.length),this.dataView=new DataView(this.buf.buffer),this.pos=t;}EOF(){return this.pos>=this.length}ReadData(e){const t=this.buf.slice(this.pos,this.pos+e);return this.pos+=e,t}ReadByte(){const e=this.buf[this.pos];return this.pos++,e}ReadChar(){const e=this.buf[this.pos];return this.pos++,String.fromCharCode(e)}ReadUint16(){let e=this.ReadByte();return e|=this.ReadByte()<<8,e}ReadUint32(){const e=this.dataView.getInt32(this.pos,!0);return this.pos+=4,e}ReadString(){let e,t="";do{e=this.buf[this.pos++],e&&(t+=String.fromCharCode(e));}while(e);return t}ReadUint7(){let e,t=0;do{e=this.ReadByte(),t=t<<7|127&e;}while(128&e);return t}ReadITF8(){let e=this.buf[this.pos];return this.pos++,e>=240?(e=(15&e)<<28,e+=(this.buf[this.pos+0]<<20)+(this.buf[this.pos+1]<<12)+(this.buf[this.pos+2]<<4)+(this.buf[this.pos+3]>>4),this.pos+=4):e>=224?(e=(15&e)<<24,e+=(this.buf[this.pos+0]<<16)+(this.buf[this.pos+1]<<8)+(0|this.buf[this.pos+2]),this.pos+=3):e>=192?(e=(31&e)<<16,e+=(this.buf[this.pos+0]<<8)+(0|this.buf[this.pos+1]),this.pos+=2):e>=128&&(e=(63&e)<<8,e+=this.buf[this.pos],this.pos++),e}};},3269:e=>{e.exports=function(e,t,r,n){for(var i=65535&e,a=e>>>16&65535,s=0;0!==r;){r-=s=r>2e3?2e3:r;do{a=a+(i=i+t[n++]|0)|0;}while(--s);i%=65521,a%=65521;}return i|a<<16};},3303:(e,t,r)=>{var n=r(8411),i=r(9805),a=r(1996),s=r(4674),A=r(4442),o=Object.prototype.toString;function c(e){if(!(this instanceof c))return new c(e);this.options=i.assign({level:-1,method:8,chunkSize:16384,windowBits:15,memLevel:8,strategy:0,to:""},e||{});var t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new A,this.strm.avail_out=0;var r=n.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(0!==r)throw new Error(s[r]);if(t.header&&n.deflateSetHeader(this.strm,t.header),t.dictionary){var d;if(d="string"==typeof t.dictionary?a.string2buf(t.dictionary):"[object ArrayBuffer]"===o.call(t.dictionary)?new Uint8Array(t.dictionary):t.dictionary,0!==(r=n.deflateSetDictionary(this.strm,d)))throw new Error(s[r]);this._dict_set=!0;}}function d(e,t){var r=new c(t);if(r.push(e,!0),r.err)throw r.msg||s[r.err];return r.result}c.prototype.push=function(e,t){var r,s,A=this.strm,c=this.options.chunkSize;if(this.ended)return !1;s=t===~~t?t:!0===t?4:0,"string"==typeof e?A.input=a.string2buf(e):"[object ArrayBuffer]"===o.call(e)?A.input=new Uint8Array(e):A.input=e,A.next_in=0,A.avail_in=A.input.length;do{if(0===A.avail_out&&(A.output=new i.Buf8(c),A.next_out=0,A.avail_out=c),1!==(r=n.deflate(A,s))&&0!==r)return this.onEnd(r),this.ended=!0,!1;0!==A.avail_out&&(0!==A.avail_in||4!==s&&2!==s)||("string"===this.options.to?this.onData(a.buf2binstring(i.shrinkBuf(A.output,A.next_out))):this.onData(i.shrinkBuf(A.output,A.next_out)));}while((A.avail_in>0||0===A.avail_out)&&1!==r);return 4===s?(r=n.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,0===r):2!==s||(this.onEnd(0),A.avail_out=0,!0)},c.prototype.onData=function(e){this.chunks.push(e);},c.prototype.onEnd=function(e){0===e&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=i.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg;},t.Deflate=c,t.deflate=d,t.deflateRaw=function(e,t){return (t=t||{}).raw=!0,d(e,t)},t.gzip=function(e,t){return (t=t||{}).gzip=!0,d(e,t)};},3503:(e,t,r)=>{var n,i,a,s,A;n=r(3939),i=r(2151).utf8,a=r(652),s=r(2151).bin,(A=function(e,t){e.constructor==String?e=t&&"binary"===t.encoding?s.stringToBytes(e):i.stringToBytes(e):a(e)?e=Array.prototype.slice.call(e,0):Array.isArray(e)||e.constructor===Uint8Array||(e=e.toString());for(var r=n.bytesToWords(e),o=8*e.length,c=1732584193,d=-271733879,l=-1732584194,f=271733878,u=0;u<r.length;u++)r[u]=16711935&(r[u]<<8|r[u]>>>24)|4278255360&(r[u]<<24|r[u]>>>8);r[o>>>5]|=128<<o%32,r[14+(o+64>>>9<<4)]=o;var g=A._ff,h=A._gg,C=A._hh,I=A._ii;for(u=0;u<r.length;u+=16){var _=c,m=d,B=l,p=f;c=g(c,d,l,f,r[u+0],7,-680876936),f=g(f,c,d,l,r[u+1],12,-389564586),l=g(l,f,c,d,r[u+2],17,606105819),d=g(d,l,f,c,r[u+3],22,-1044525330),c=g(c,d,l,f,r[u+4],7,-176418897),f=g(f,c,d,l,r[u+5],12,1200080426),l=g(l,f,c,d,r[u+6],17,-1473231341),d=g(d,l,f,c,r[u+7],22,-45705983),c=g(c,d,l,f,r[u+8],7,1770035416),f=g(f,c,d,l,r[u+9],12,-1958414417),l=g(l,f,c,d,r[u+10],17,-42063),d=g(d,l,f,c,r[u+11],22,-1990404162),c=g(c,d,l,f,r[u+12],7,1804603682),f=g(f,c,d,l,r[u+13],12,-40341101),l=g(l,f,c,d,r[u+14],17,-1502002290),c=h(c,d=g(d,l,f,c,r[u+15],22,1236535329),l,f,r[u+1],5,-165796510),f=h(f,c,d,l,r[u+6],9,-1069501632),l=h(l,f,c,d,r[u+11],14,643717713),d=h(d,l,f,c,r[u+0],20,-373897302),c=h(c,d,l,f,r[u+5],5,-701558691),f=h(f,c,d,l,r[u+10],9,38016083),l=h(l,f,c,d,r[u+15],14,-660478335),d=h(d,l,f,c,r[u+4],20,-405537848),c=h(c,d,l,f,r[u+9],5,568446438),f=h(f,c,d,l,r[u+14],9,-1019803690),l=h(l,f,c,d,r[u+3],14,-187363961),d=h(d,l,f,c,r[u+8],20,1163531501),c=h(c,d,l,f,r[u+13],5,-1444681467),f=h(f,c,d,l,r[u+2],9,-51403784),l=h(l,f,c,d,r[u+7],14,1735328473),c=C(c,d=h(d,l,f,c,r[u+12],20,-1926607734),l,f,r[u+5],4,-378558),f=C(f,c,d,l,r[u+8],11,-2022574463),l=C(l,f,c,d,r[u+11],16,1839030562),d=C(d,l,f,c,r[u+14],23,-35309556),c=C(c,d,l,f,r[u+1],4,-1530992060),f=C(f,c,d,l,r[u+4],11,1272893353),l=C(l,f,c,d,r[u+7],16,-155497632),d=C(d,l,f,c,r[u+10],23,-1094730640),c=C(c,d,l,f,r[u+13],4,681279174),f=C(f,c,d,l,r[u+0],11,-358537222),l=C(l,f,c,d,r[u+3],16,-722521979),d=C(d,l,f,c,r[u+6],23,76029189),c=C(c,d,l,f,r[u+9],4,-640364487),f=C(f,c,d,l,r[u+12],11,-421815835),l=C(l,f,c,d,r[u+15],16,530742520),c=I(c,d=C(d,l,f,c,r[u+2],23,-995338651),l,f,r[u+0],6,-198630844),f=I(f,c,d,l,r[u+7],10,1126891415),l=I(l,f,c,d,r[u+14],15,-1416354905),d=I(d,l,f,c,r[u+5],21,-57434055),c=I(c,d,l,f,r[u+12],6,1700485571),f=I(f,c,d,l,r[u+3],10,-1894986606),l=I(l,f,c,d,r[u+10],15,-1051523),d=I(d,l,f,c,r[u+1],21,-2054922799),c=I(c,d,l,f,r[u+8],6,1873313359),f=I(f,c,d,l,r[u+15],10,-30611744),l=I(l,f,c,d,r[u+6],15,-1560198380),d=I(d,l,f,c,r[u+13],21,1309151649),c=I(c,d,l,f,r[u+4],6,-145523070),f=I(f,c,d,l,r[u+11],10,-1120210379),l=I(l,f,c,d,r[u+2],15,718787259),d=I(d,l,f,c,r[u+9],21,-343485551),c=c+_>>>0,d=d+m>>>0,l=l+B>>>0,f=f+p>>>0;}return n.endian([c,d,l,f])})._ff=function(e,t,r,n,i,a,s){var A=e+(t&r|~t&n)+(i>>>0)+s;return (A<<a|A>>>32-a)+t},A._gg=function(e,t,r,n,i,a,s){var A=e+(t&n|r&~n)+(i>>>0)+s;return (A<<a|A>>>32-a)+t},A._hh=function(e,t,r,n,i,a,s){var A=e+(t^r^n)+(i>>>0)+s;return (A<<a|A>>>32-a)+t},A._ii=function(e,t,r,n,i,a,s){var A=e+(r^(t|~n))+(i>>>0)+s;return (A<<a|A>>>32-a)+t},A._blocksize=16,A._digestsize=16,e.exports=function(e,t){if(null==e)throw new Error("Illegal argument "+e);var r=n.wordsToBytes(A(e,t));return t&&t.asBytes?r:t&&t.asString?s.bytesToString(r):n.bytesToHex(r)};},3665:(e,t,r)=>{var n=r(9805);function i(e){for(var t=e.length;--t>=0;)e[t]=0;}var a=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],s=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],A=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],o=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],c=new Array(576);i(c);var d=new Array(60);i(d);var l=new Array(512);i(l);var f=new Array(256);i(f);var u=new Array(29);i(u);var g,h,C,I=new Array(30);function _(e,t,r,n,i){this.static_tree=e,this.extra_bits=t,this.extra_base=r,this.elems=n,this.max_length=i,this.has_stree=e&&e.length;}function m(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t;}function B(e){return e<256?l[e]:l[256+(e>>>7)]}function p(e,t){e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255;}function w(e,t,r){e.bi_valid>16-r?(e.bi_buf|=t<<e.bi_valid&65535,p(e,e.bi_buf),e.bi_buf=t>>16-e.bi_valid,e.bi_valid+=r-16):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=r);}function E(e,t,r){w(e,r[2*t],r[2*t+1]);}function Q(e,t){var r=0;do{r|=1&e,e>>>=1,r<<=1;}while(--t>0);return r>>>1}function y(e,t,r){var n,i,a=new Array(16),s=0;for(n=1;n<=15;n++)a[n]=s=s+r[n-1]<<1;for(i=0;i<=t;i++){var A=e[2*i+1];0!==A&&(e[2*i]=Q(a[A]++,A));}}function b(e){var t;for(t=0;t<286;t++)e.dyn_ltree[2*t]=0;for(t=0;t<30;t++)e.dyn_dtree[2*t]=0;for(t=0;t<19;t++)e.bl_tree[2*t]=0;e.dyn_ltree[512]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0;}function D(e){e.bi_valid>8?p(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0;}function S(e,t,r,n){var i=2*t,a=2*r;return e[i]<e[a]||e[i]===e[a]&&n[t]<=n[r]}function k(e,t,r){for(var n=e.heap[r],i=r<<1;i<=e.heap_len&&(i<e.heap_len&&S(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!S(t,n,e.heap[i],e.depth));)e.heap[r]=e.heap[i],r=i,i<<=1;e.heap[r]=n;}function v(e,t,r){var n,i,A,o,c=0;if(0!==e.last_lit)do{n=e.pending_buf[e.d_buf+2*c]<<8|e.pending_buf[e.d_buf+2*c+1],i=e.pending_buf[e.l_buf+c],c++,0===n?E(e,i,t):(E(e,(A=f[i])+256+1,t),0!==(o=a[A])&&w(e,i-=u[A],o),E(e,A=B(--n),r),0!==(o=s[A])&&w(e,n-=I[A],o));}while(c<e.last_lit);E(e,256,t);}function R(e,t){var r,n,i,a=t.dyn_tree,s=t.stat_desc.static_tree,A=t.stat_desc.has_stree,o=t.stat_desc.elems,c=-1;for(e.heap_len=0,e.heap_max=573,r=0;r<o;r++)0!==a[2*r]?(e.heap[++e.heap_len]=c=r,e.depth[r]=0):a[2*r+1]=0;for(;e.heap_len<2;)a[2*(i=e.heap[++e.heap_len]=c<2?++c:0)]=1,e.depth[i]=0,e.opt_len--,A&&(e.static_len-=s[2*i+1]);for(t.max_code=c,r=e.heap_len>>1;r>=1;r--)k(e,a,r);i=o;do{r=e.heap[1],e.heap[1]=e.heap[e.heap_len--],k(e,a,1),n=e.heap[1],e.heap[--e.heap_max]=r,e.heap[--e.heap_max]=n,a[2*i]=a[2*r]+a[2*n],e.depth[i]=(e.depth[r]>=e.depth[n]?e.depth[r]:e.depth[n])+1,a[2*r+1]=a[2*n+1]=i,e.heap[1]=i++,k(e,a,1);}while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],function(e,t){var r,n,i,a,s,A,o=t.dyn_tree,c=t.max_code,d=t.stat_desc.static_tree,l=t.stat_desc.has_stree,f=t.stat_desc.extra_bits,u=t.stat_desc.extra_base,g=t.stat_desc.max_length,h=0;for(a=0;a<=15;a++)e.bl_count[a]=0;for(o[2*e.heap[e.heap_max]+1]=0,r=e.heap_max+1;r<573;r++)(a=o[2*o[2*(n=e.heap[r])+1]+1]+1)>g&&(a=g,h++),o[2*n+1]=a,n>c||(e.bl_count[a]++,s=0,n>=u&&(s=f[n-u]),A=o[2*n],e.opt_len+=A*(a+s),l&&(e.static_len+=A*(d[2*n+1]+s)));if(0!==h){do{for(a=g-1;0===e.bl_count[a];)a--;e.bl_count[a]--,e.bl_count[a+1]+=2,e.bl_count[g]--,h-=2;}while(h>0);for(a=g;0!==a;a--)for(n=e.bl_count[a];0!==n;)(i=e.heap[--r])>c||(o[2*i+1]!==a&&(e.opt_len+=(a-o[2*i+1])*o[2*i],o[2*i+1]=a),n--);}}(e,t),y(a,c,e.bl_count);}function F(e,t,r){var n,i,a=-1,s=t[1],A=0,o=7,c=4;for(0===s&&(o=138,c=3),t[2*(r+1)+1]=65535,n=0;n<=r;n++)i=s,s=t[2*(n+1)+1],++A<o&&i===s||(A<c?e.bl_tree[2*i]+=A:0!==i?(i!==a&&e.bl_tree[2*i]++,e.bl_tree[32]++):A<=10?e.bl_tree[34]++:e.bl_tree[36]++,A=0,a=i,0===s?(o=138,c=3):i===s?(o=6,c=3):(o=7,c=4));}function M(e,t,r){var n,i,a=-1,s=t[1],A=0,o=7,c=4;for(0===s&&(o=138,c=3),n=0;n<=r;n++)if(i=s,s=t[2*(n+1)+1],!(++A<o&&i===s)){if(A<c)do{E(e,i,e.bl_tree);}while(0!==--A);else 0!==i?(i!==a&&(E(e,i,e.bl_tree),A--),E(e,16,e.bl_tree),w(e,A-3,2)):A<=10?(E(e,17,e.bl_tree),w(e,A-3,3)):(E(e,18,e.bl_tree),w(e,A-11,7));A=0,a=i,0===s?(o=138,c=3):i===s?(o=6,c=3):(o=7,c=4);}}i(I);var N=!1;function x(e,t,r,i){w(e,0+(i?1:0),3),function(e,t,r){D(e),p(e,r),p(e,~r),n.arraySet(e.pending_buf,e.window,t,r,e.pending),e.pending+=r;}(e,t,r);}t._tr_init=function(e){N||(function(){var e,t,r,n,i,o=new Array(16);for(r=0,n=0;n<28;n++)for(u[n]=r,e=0;e<1<<a[n];e++)f[r++]=n;for(f[r-1]=n,i=0,n=0;n<16;n++)for(I[n]=i,e=0;e<1<<s[n];e++)l[i++]=n;for(i>>=7;n<30;n++)for(I[n]=i<<7,e=0;e<1<<s[n]-7;e++)l[256+i++]=n;for(t=0;t<=15;t++)o[t]=0;for(e=0;e<=143;)c[2*e+1]=8,e++,o[8]++;for(;e<=255;)c[2*e+1]=9,e++,o[9]++;for(;e<=279;)c[2*e+1]=7,e++,o[7]++;for(;e<=287;)c[2*e+1]=8,e++,o[8]++;for(y(c,287,o),e=0;e<30;e++)d[2*e+1]=5,d[2*e]=Q(e,5);g=new _(c,a,257,286,15),h=new _(d,s,0,30,15),C=new _(new Array(0),A,0,19,7);}(),N=!0),e.l_desc=new m(e.dyn_ltree,g),e.d_desc=new m(e.dyn_dtree,h),e.bl_desc=new m(e.bl_tree,C),e.bi_buf=0,e.bi_valid=0,b(e);},t._tr_stored_block=x,t._tr_flush_block=function(e,t,r,n){var i,a,s=0;e.level>0?(2===e.strm.data_type&&(e.strm.data_type=function(e){var t,r=4093624447;for(t=0;t<=31;t++,r>>>=1)if(1&r&&0!==e.dyn_ltree[2*t])return 0;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return 1;for(t=32;t<256;t++)if(0!==e.dyn_ltree[2*t])return 1;return 0}(e)),R(e,e.l_desc),R(e,e.d_desc),s=function(e){var t;for(F(e,e.dyn_ltree,e.l_desc.max_code),F(e,e.dyn_dtree,e.d_desc.max_code),R(e,e.bl_desc),t=18;t>=3&&0===e.bl_tree[2*o[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t}(e),i=e.opt_len+3+7>>>3,(a=e.static_len+3+7>>>3)<=i&&(i=a)):i=a=r+5,r+4<=i&&-1!==t?x(e,t,r,n):4===e.strategy||a===i?(w(e,2+(n?1:0),3),v(e,c,d)):(w(e,4+(n?1:0),3),function(e,t,r,n){var i;for(w(e,t-257,5),w(e,r-1,5),w(e,n-4,4),i=0;i<n;i++)w(e,e.bl_tree[2*o[i]+1],3);M(e,e.dyn_ltree,t-1),M(e,e.dyn_dtree,r-1);}(e,e.l_desc.max_code+1,e.d_desc.max_code+1,s+1),v(e,e.dyn_ltree,e.dyn_dtree)),b(e),n&&D(e);},t._tr_tally=function(e,t,r){return e.pending_buf[e.d_buf+2*e.last_lit]=t>>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&r,e.last_lit++,0===t?e.dyn_ltree[2*r]++:(e.matches++,t--,e.dyn_ltree[2*(f[r]+256+1)]++,e.dyn_dtree[2*B(t)]++),e.last_lit===e.lit_bufsize-1},t._tr_align=function(e){w(e,2,3),E(e,256,c),function(e){16===e.bi_valid?(p(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8);}(e);};},3939:e=>{var t,r;t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",r={rotl:function(e,t){return e<<t|e>>>32-t},rotr:function(e,t){return e<<32-t|e>>>t},endian:function(e){if(e.constructor==Number)return 16711935&r.rotl(e,8)|4278255360&r.rotl(e,24);for(var t=0;t<e.length;t++)e[t]=r.endian(e[t]);return e},randomBytes:function(e){for(var t=[];e>0;e--)t.push(Math.floor(256*Math.random()));return t},bytesToWords:function(e){for(var t=[],r=0,n=0;r<e.length;r++,n+=8)t[n>>>5]|=e[r]<<24-n%32;return t},wordsToBytes:function(e){for(var t=[],r=0;r<32*e.length;r+=8)t.push(e[r>>>5]>>>24-r%32&255);return t},bytesToHex:function(e){for(var t=[],r=0;r<e.length;r++)t.push((e[r]>>>4).toString(16)),t.push((15&e[r]).toString(16));return t.join("")},hexToBytes:function(e){for(var t=[],r=0;r<e.length;r+=2)t.push(parseInt(e.substr(r,2),16));return t},bytesToBase64:function(e){for(var r=[],n=0;n<e.length;n+=3)for(var i=e[n]<<16|e[n+1]<<8|e[n+2],a=0;a<4;a++)8*n+6*a<=8*e.length?r.push(t.charAt(i>>>6*(3-a)&63)):r.push("=");return r.join("")},base64ToBytes:function(e){e=e.replace(/[^A-Z0-9+\/]/gi,"");for(var r=[],n=0,i=0;n<e.length;i=++n%4)0!=i&&r.push((t.indexOf(e.charAt(n-1))&Math.pow(2,-2*i+8)-1)<<2*i|t.indexOf(e.charAt(n))>>>6-2*i);return r}},e.exports=r;},4056:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const i=n(r(4141)),a=r(6761),s=r(6272);class A extends i.default{constructor(e,t){if(super(e,t),this.codes={},this.codeBook={},this.sortedCodes=[],this.sortedValuesByBitCode=[],this.sortedBitCodes=[],this.sortedBitLengthsByBitCode=[],this.bitCodeToValue=[],!["byte","int"].includes(this.dataType))throw new TypeError(`${this.dataType} decoding not yet implemented by HUFFMAN_INT codec`);this.buildCodeBook(),this.buildCodes(),this.buildCaches(),0===this.sortedCodes[0].bitLength&&(this._decode=this._decodeZeroLengthCode);}buildCodeBook(){let e=new Array(this.parameters.numCodes);for(let t=0;t<this.parameters.numCodes;t++)e[t]={symbol:this.parameters.symbols[t],bitLength:this.parameters.bitLengths[t]};e=e.sort(((e,t)=>e.bitLength-t.bitLength||e.symbol-t.symbol)),this.codeBook={},e.forEach((e=>{this.codeBook[e.bitLength]||(this.codeBook[e.bitLength]=[]),this.codeBook[e.bitLength].push(e.symbol);}));}buildCodes(){this.codes={};let e=0,t=-1;Object.entries(this.codeBook).forEach((([r,n])=>{const i=Number.parseInt(r,10);n.forEach((r=>{const n={bitLength:i,value:r,bitCode:0};t+=1;const a=i-e;if(t<<=a,n.bitCode=t,e+=a,function(e){let t=e-(e>>1)&1431655765;return t=(858993459&t)+(t>>2&858993459),16843009*(t+(t>>4)&252645135)>>24}(t)>i)throw new s.CramMalformedError("Symbol out of range");this.codes[r]=n;}));}));}buildCaches(){this.sortedCodes=Object.values(this.codes).sort(((e,t)=>e.bitLength-t.bitLength||e.bitCode-t.bitCode)),this.sortedValuesByBitCode=this.sortedCodes.map((e=>e.value)),this.sortedBitCodes=this.sortedCodes.map((e=>e.bitCode)),this.sortedBitLengthsByBitCode=this.sortedCodes.map((e=>e.bitLength));const e=Math.max(...this.sortedBitCodes);this.bitCodeToValue=new Array(e+1).fill(-1);for(let e=0;e<this.sortedBitCodes.length;e+=1)this.bitCodeToValue[this.sortedCodes[e].bitCode]=e;}decode(e,t,r,n){return this._decode(e,t,n.coreBlock)}_decodeZeroLengthCode(){return this.sortedCodes[0].value}_decode(e,t,r){const n=t.content;let i=0,A=0;for(let e=0;e<this.sortedCodes.length;e+=1){const t=this.sortedCodes[e].bitLength;A<<=t-i,A|=(0, a.getBits)(n,r,t-i),i=t;{const r=this.bitCodeToValue[A];if(r>-1&&this.sortedBitLengthsByBitCode[r]===t)return this.sortedValuesByBitCode[r];for(let r=e;this.sortedCodes[r+1].bitLength===t&&r<this.sortedCodes.length;r+=1)e+=1;}}throw new s.CramMalformedError("Huffman symbol not found.")}}t.default=A;},4141:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=class{constructor(e,t){this.parameters=e,this.dataType=t;}};},4442:e=>{e.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0;};},4562:function(e,t,r){var n,i=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i);}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),s=this&&this.__importStar||(n=function(e){return n=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},n(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=n(e),s=0;s<r.length;s++)"default"!==r[s]&&i(t,e,r[s]);return a(t,e),t}),A=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.r4x8_uncompress=function(e){return d.decode(e)},t.r4x16_uncompress=function(e){return l.decode(e)},t.arith_uncompress=function(e){return (new o.default).decode(e)},t.fqzcomp_uncompress=function(e){return c.decode(e,[])},t.tok3_uncompress=function(e){const t=f.decode(e,0,"\0");return Uint8Array.from(Array.from(t).map((e=>e.charCodeAt(0))))};const o=A(r(9505)),c=s(r(2660)),d=s(r(8594)),l=s(r(9313)),f=s(r(1739));},4652:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=class{constructor(e){this.low=0,this.range=4294967295,this.code=0,this.FFnum=0,this.carry=0,this.cache=0;}RangeStartDecode(e){for(let t=0;t<5;t++)this.code=(this.code<<8)+e.ReadByte();this.code&=4294967295,this.code>>>=0;}RangeGetFrequency(e){return this.range=Math.floor(this.range/e),Math.floor(this.code/this.range)}RangeDecode(e,t,r,n){for(this.code-=t*this.range,this.range*=r;this.range<1<<24;)this.range*=256,this.code=256*this.code+e.ReadByte();}RangeShiftLow(e){if(this.low<4278190080|this.carry){for(e.WriteByte(this.cache+this.carry);this.FFnum;)e.WriteByte(this.carry-1),this.FFnum--;this.cache=this.low>>>24,this.carry=0;}else this.FFnum++;this.low<<=8,this.low>>>=0;}RangeEncode(e,t,r,n){const i=this.low;for(this.range=Math.floor(this.range/n),this.low+=t*this.range,this.low>>>=0,this.range*=r,this.low<i&&(0!=this.carry&&console.log("ERROR: Multiple carry"),this.carry=1);this.range<1<<24;)this.range*=256,this.RangeShiftLow(e);}RangeFinishEncode(e){for(let t=0;t<5;t++)this.RangeShiftLow(e);}};},4674:e=>{e.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"};},4823:e=>{var t=function(){for(var e,t=[],r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e;}return t}();e.exports=function(e,r,n,i){var a=t,s=i+n;e^=-1;for(var A=i;A<s;A++)e=e>>>8^a[255&(e^r[A])];return -1^e};},4997:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.CramRecord=void 0;var i=r(7480);Object.defineProperty(t,"CramRecord",{enumerable:!0,get:function(){return n(i).default}});var a=r(8751);Object.defineProperty(t,"default",{enumerable:!0,get:function(){return n(a).default}});},5011:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.parseHeaderText=function(e){const t=e.split(/\r?\n/),r=[];for(const e of t){const[t,...n]=e.split(/\t/);t&&r.push({tag:t.slice(1),data:n.map((e=>{const t=e.indexOf(":");return -1!==t?{tag:e.slice(0,t),value:e.slice(t+1)}:{tag:e,value:""}}))});}return r};},5159:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.IndexedCramFile=t.CraiIndex=t.CramFile=t.CramRecord=void 0;var i=r(4997);Object.defineProperty(t,"CramRecord",{enumerable:!0,get:function(){return i.CramRecord}}),Object.defineProperty(t,"CramFile",{enumerable:!0,get:function(){return n(i).default}});var a=r(6638);Object.defineProperty(t,"CraiIndex",{enumerable:!0,get:function(){return n(a).default}});var s=r(8223);Object.defineProperty(t,"IndexedCramFile",{enumerable:!0,get:function(){return n(s).default}});},6268:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.readStatsO0=function(e,t,r){let n=0,i=0,o=255&e.get();do{null==t.fc[o]&&(t.fc[o]=new s.default.FC),t.fc[o].F=255&e.get(),t.fc[o].F>=128&&(t.fc[o].F&=-129,t.fc[o].F=(127&t.fc[o].F)<<8|255&e.get()),t.fc[o].C=i,s.default.symbolInit(r[o],t.fc[o].C,t.fc[o].F),t.R||(t.R=new Array(a.TOTFREQ)),t.R.fill(o,i,i+t.fc[o].F),i+=t.fc[o].F,0===n&&o+1===(255&e.getByteAt(e.position()))?(o=255&e.get(),n=255&e.get()):0!==n?(n-=1,o+=1):o=255&e.get();}while(0!==o);A(i<a.TOTFREQ);},t.readStatsO1=function(e,t,r){let n=0,i=255&e.get();do{let o=0,c=0,d=255&e.get();null==t[i]&&(t[i]=new s.default.AriDecoder);do{null==t[i].fc[d]&&(t[i].fc[d]=new s.default.FC),t[i].fc[d].F=255&e.get(),t[i].fc[d].F>=128&&(t[i].fc[d].F&=-129,t[i].fc[d].F=(127&t[i].fc[d].F)<<8|255&e.get()),t[i].fc[d].C=c,0===t[i].fc[d].F&&(t[i].fc[d].F=a.TOTFREQ),null==r[i][d]&&(r[i][d]=new s.default.RansDecSymbol),s.default.symbolInit(r[i][d],t[i].fc[d].C,t[i].fc[d].F),null==t[i].R&&(t[i].R=new Array(a.TOTFREQ)),t[i].R.fill(d,c,c+t[i].fc[d].F),c+=t[i].fc[d].F,A(c<=a.TOTFREQ),0===o&&d+1===(255&e.getByteAt(e.position()))?(d=255&e.get(),o=255&e.get()):0!==o?(o-=1,d+=1):d=255&e.get();}while(0!==d);0===n&&i+1===(255&e.getByteAt(e.position()))?(i=255&e.get(),n=255&e.get()):0!==n?(n-=1,i+=1):i=255&e.get();}while(0!==i)};const i=r(6272),a=r(7151),s=n(r(9301));function A(e){if(!e)throw new i.CramMalformedError("assertion failed")}},6272:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CramArgumentError=t.CramSizeLimitError=t.CramMalformedError=t.CramUnimplementedError=t.CramError=void 0;class r extends Error{}t.CramError=r;class n extends Error{}t.CramUnimplementedError=n,t.CramMalformedError=class extends r{},t.CramSizeLimitError=class extends r{},t.CramArgumentError=class extends r{};},6612:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=class{readByte(){throw new Error("abstract method readByte() not implemented")}read(e,t,r){let n=0;for(;n<r;){const r=this.readByte();if(r<0)return 0===n?-1:n;e[t++]=r,n++;}return n}writeByte(e){throw new Error("abstract method readByte() not implemented")}seek(e){throw new Error("abstract method seek() not implemented")}write(e,t,r){let n;for(n=0;n<r;n++)this.writeByte(e[t++]);return r}flush(){}};},6638:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});const n=r(6272),i=r(6727),a=r(2169);function s(e,t){const[r,n,i,a,s,A]=t,o=r;e[o]||(e[o]=[]),e[o].push({start:n,span:i,containerStart:a,sliceStart:s,sliceBytes:A});}t.default=class{constructor(e){this.filehandle=(0, i.open)(e.url,e.path,e.filehandle);}async parseIndex(){const e={},t=31===(r=await this.filehandle.readFile())[0]&&139===r[1]?(0, a.unzip)(r):r;var r;const i=new DataView(t.buffer);if(t.length>4&&21578050===i.getUint32(0,!0))throw new n.CramMalformedError("invalid .crai index file. note: file appears to be a .bai index. this is technically legal but please open a github issue if you need support");let A=[],o="";for(const r of t)if(r>=48&&r<=57||!o&&45===r)o+=String.fromCharCode(r);else if(9===r)A.push(Number.parseInt(o,10)),o="";else if(10===r)A.push(Number.parseInt(o,10)),o="",s(e,A),A=[];else if(13!==r&&32!==r)throw new n.CramMalformedError("invalid .crai index file");return o&&A.push(Number.parseInt(o,10)),6===A.length&&s(e,A),Object.entries(e).forEach((([t,r])=>{const n=r;e[t]=n.sort(((e,t)=>e.start-t.start||e.span-t.span));})),e}getIndex(){return this.parseIndexP||(this.parseIndexP=this.parseIndex().catch((e=>{throw this.parseIndexP=void 0,e}))),this.parseIndexP}async hasDataForReferenceSequence(e){return !!(await this.getIndex())[e]}async getEntriesForRange(e,t,r){const n=(await this.getIndex())[e];if(!n)return [];const i=e=>{const n=e.start,i=e.start+e.span;return n>r?-1:i<=t?1:0},a=[];for(const e of n)0===i(e)&&a.push(e);return a}};},6727:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.RemoteFile=t.LocalFile=void 0,t.open=function(e,t,r){if(r)return r;if(e)return new n.RemoteFile(e);if(t)return new n.LocalFile(t);throw new Error("no url, path, or filehandle provided, cannot open")};const n=r(8301);var i=r(8301);Object.defineProperty(t,"LocalFile",{enumerable:!0,get:function(){return i.LocalFile}}),Object.defineProperty(t,"RemoteFile",{enumerable:!0,get:function(){return i.RemoteFile}});},6761:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CramBufferOverrunError=void 0,t.getBits=function(e,t,n){let i=0;if(t.bytePosition+(7-t.bitPosition+n)/8>e.length)throw new r("read error during decoding. the file seems to be truncated.");for(let r=n;r;r--)i<<=1,i|=e[t.bytePosition]>>t.bitPosition&1,t.bitPosition-=1,t.bitPosition<0&&(t.bytePosition+=1),t.bitPosition&=7;return i};class r extends Error{}t.CramBufferOverrunError=r;},6951:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.concatUint8Array=function(e){const t=new Uint8Array(function(e){let t=0;for(const r of e)t+=r.length;return t}(e));let r=0;for(const n of e)t.set(n,r),r+=n.length;return t};},7083:(e,t,r)=>{var n=r(1447),i=r(9805),a=r(1996),s=r(9681),A=r(4674),o=r(4442),c=r(7414),d=Object.prototype.toString;function l(e){if(!(this instanceof l))return new l(e);this.options=i.assign({chunkSize:16384,windowBits:0,to:""},e||{});var t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(t.windowBits>=0&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&(15&t.windowBits||(t.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new o,this.strm.avail_out=0;var r=n.inflateInit2(this.strm,t.windowBits);if(r!==s.Z_OK)throw new Error(A[r]);if(this.header=new c,n.inflateGetHeader(this.strm,this.header),t.dictionary&&("string"==typeof t.dictionary?t.dictionary=a.string2buf(t.dictionary):"[object ArrayBuffer]"===d.call(t.dictionary)&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(r=n.inflateSetDictionary(this.strm,t.dictionary))!==s.Z_OK))throw new Error(A[r])}function f(e,t){var r=new l(t);if(r.push(e,!0),r.err)throw r.msg||A[r.err];return r.result}l.prototype.push=function(e,t){var r,A,o,c,l,f=this.strm,u=this.options.chunkSize,g=this.options.dictionary,h=!1;if(this.ended)return !1;A=t===~~t?t:!0===t?s.Z_FINISH:s.Z_NO_FLUSH,"string"==typeof e?f.input=a.binstring2buf(e):"[object ArrayBuffer]"===d.call(e)?f.input=new Uint8Array(e):f.input=e,f.next_in=0,f.avail_in=f.input.length;do{if(0===f.avail_out&&(f.output=new i.Buf8(u),f.next_out=0,f.avail_out=u),(r=n.inflate(f,s.Z_NO_FLUSH))===s.Z_NEED_DICT&&g&&(r=n.inflateSetDictionary(this.strm,g)),r===s.Z_BUF_ERROR&&!0===h&&(r=s.Z_OK,h=!1),r!==s.Z_STREAM_END&&r!==s.Z_OK)return this.onEnd(r),this.ended=!0,!1;f.next_out&&(0!==f.avail_out&&r!==s.Z_STREAM_END&&(0!==f.avail_in||A!==s.Z_FINISH&&A!==s.Z_SYNC_FLUSH)||("string"===this.options.to?(o=a.utf8border(f.output,f.next_out),c=f.next_out-o,l=a.buf2string(f.output,o),f.next_out=c,f.avail_out=u-c,c&&i.arraySet(f.output,f.output,o,c,0),this.onData(l)):this.onData(i.shrinkBuf(f.output,f.next_out)))),0===f.avail_in&&0===f.avail_out&&(h=!0);}while((f.avail_in>0||0===f.avail_out)&&r!==s.Z_STREAM_END);return r===s.Z_STREAM_END&&(A=s.Z_FINISH),A===s.Z_FINISH?(r=n.inflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===s.Z_OK):A!==s.Z_SYNC_FLUSH||(this.onEnd(s.Z_OK),f.avail_out=0,!0)},l.prototype.onData=function(e){this.chunks.push(e);},l.prototype.onEnd=function(e){e===s.Z_OK&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=i.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg;},t.Inflate=l,t.inflate=f,t.inflateRaw=function(e,t){return (t=t||{}).raw=!0,f(e,t)},t.ungzip=f;},7151:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.TOTFREQ=t.TF_SHIFT=t.RANS_BYTE_L=void 0,t.TF_SHIFT=12,t.TOTFREQ=4096,t.RANS_BYTE_L=1<<23;},7293:e=>{e.exports=function(e,t){var r,n,i,a,s,A,o,c,d,l,f,u,g,h,C,I,_,m,B,p,w,E,Q,y,b;r=e.state,n=e.next_in,y=e.input,i=n+(e.avail_in-5),a=e.next_out,b=e.output,s=a-(t-e.avail_out),A=a+(e.avail_out-257),o=r.dmax,c=r.wsize,d=r.whave,l=r.wnext,f=r.window,u=r.hold,g=r.bits,h=r.lencode,C=r.distcode,I=(1<<r.lenbits)-1,_=(1<<r.distbits)-1;e:do{g<15&&(u+=y[n++]<<g,g+=8,u+=y[n++]<<g,g+=8),m=h[u&I];t:for(;;){if(u>>>=B=m>>>24,g-=B,0==(B=m>>>16&255))b[a++]=65535&m;else {if(!(16&B)){if(64&B){if(32&B){r.mode=12;break e}e.msg="invalid literal/length code",r.mode=30;break e}m=h[(65535&m)+(u&(1<<B)-1)];continue t}for(p=65535&m,(B&=15)&&(g<B&&(u+=y[n++]<<g,g+=8),p+=u&(1<<B)-1,u>>>=B,g-=B),g<15&&(u+=y[n++]<<g,g+=8,u+=y[n++]<<g,g+=8),m=C[u&_];;){if(u>>>=B=m>>>24,g-=B,16&(B=m>>>16&255)){if(w=65535&m,g<(B&=15)&&(u+=y[n++]<<g,(g+=8)<B&&(u+=y[n++]<<g,g+=8)),(w+=u&(1<<B)-1)>o){e.msg="invalid distance too far back",r.mode=30;break e}if(u>>>=B,g-=B,w>(B=a-s)){if((B=w-B)>d&&r.sane){e.msg="invalid distance too far back",r.mode=30;break e}if(E=0,Q=f,0===l){if(E+=c-B,B<p){p-=B;do{b[a++]=f[E++];}while(--B);E=a-w,Q=b;}}else if(l<B){if(E+=c+l-B,(B-=l)<p){p-=B;do{b[a++]=f[E++];}while(--B);if(E=0,l<p){p-=B=l;do{b[a++]=f[E++];}while(--B);E=a-w,Q=b;}}}else if(E+=l-B,B<p){p-=B;do{b[a++]=f[E++];}while(--B);E=a-w,Q=b;}for(;p>2;)b[a++]=Q[E++],b[a++]=Q[E++],b[a++]=Q[E++],p-=3;p&&(b[a++]=Q[E++],p>1&&(b[a++]=Q[E++]));}else {E=a-w;do{b[a++]=b[E++],b[a++]=b[E++],b[a++]=b[E++],p-=3;}while(p>2);p&&(b[a++]=b[E++],p>1&&(b[a++]=b[E++]));}break}if(64&B){e.msg="invalid distance code",r.mode=30;break e}m=C[(65535&m)+(u&(1<<B)-1)];}}break}}while(n<i&&a<A);n-=p=g>>3,u&=(1<<(g-=p<<3))-1,e.next_in=n,e.next_out=a,e.avail_in=n<i?i-n+5:5-(n-i),e.avail_out=a<A?A-a+257:257-(a-A),r.hold=u,r.bits=g;};},7392:e=>{class t{constructor(e={}){if(!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");this.maxSize=e.maxSize,this.cache=new Map,this.oldCache=new Map,this._size=0;}_set(e,t){this.cache.set(e,t),this._size++,this._size>=this.maxSize&&(this._size=0,this.oldCache=this.cache,this.cache=new Map);}get(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e)){const t=this.oldCache.get(e);return this.oldCache.delete(e),this._set(e,t),t}}set(e,t){return this.cache.has(e)?this.cache.set(e,t):this._set(e,t),this}has(e){return this.cache.has(e)||this.oldCache.has(e)}peek(e){return this.cache.has(e)?this.cache.get(e):this.oldCache.has(e)?this.oldCache.get(e):void 0}delete(e){const t=this.cache.delete(e);return t&&this._size--,this.oldCache.delete(e)||t}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0;}*keys(){for(const[e]of this)yield e;}*values(){for(const[,e]of this)yield e;}*[Symbol.iterator](){for(const e of this.cache)yield e;for(const e of this.oldCache){const[t]=e;this.cache.has(t)||(yield e);}}get size(){let e=0;for(const t of this.oldCache.keys())this.cache.has(t)||e++;return this._size+e}}e.exports=t;},7414:e=>{e.exports=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1;};},7480:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.MateFlagsDecoder=t.CramFlagsDecoder=t.BamFlagsDecoder=t.MateFlags=t.CramFlags=t.BamFlags=void 0;const i=n(r(588)),a={a:0,A:0,c:1,C:1,g:2,G:2,t:3,T:3,n:4,N:4};function s(e){const t={};for(const[r,n]of e)t[`is${n}`]=e=>!!(e&r),t[`set${n}`]=e=>e|r;return t}t.BamFlags=[[1,"Paired"],[2,"ProperlyPaired"],[4,"SegmentUnmapped"],[8,"MateUnmapped"],[16,"ReverseComplemented"],[32,"MateReverseComplemented"],[64,"Read1"],[128,"Read2"],[256,"Secondary"],[512,"FailedQc"],[1024,"Duplicate"],[2048,"Supplementary"]],t.CramFlags=[[1,"PreservingQualityScores"],[2,"Detached"],[4,"WithMateDownstream"],[8,"DecodeSequenceAsStar"]],t.MateFlags=[[1,"OnNegativeStrand"],[2,"Unmapped"]],t.BamFlagsDecoder=s(t.BamFlags),t.CramFlagsDecoder=s(t.CramFlags),t.MateFlagsDecoder=s(t.MateFlags),t.default=class{constructor({flags:e,cramFlags:t,readLength:r,mappingQuality:n,lengthOnRef:i,qualityScores:a,mateRecordNumber:s,readBases:A,readFeatures:o,mateToUse:c,readGroupId:d,readName:l,sequenceId:f,uniqueId:u,templateSize:g,alignmentStart:h,tags:C}){this.flags=e,this.cramFlags=t,this.readLength=r,this.mappingQuality=n,this.lengthOnRef=i,this.qualityScores=a,A&&(this.readBases=A),this.readGroupId=d,this.readName=l,this.sequenceId=f,this.uniqueId=u,this.templateSize=g,this.alignmentStart=h,this.tags=C,o&&(this.readFeatures=o),c&&(this.mate={flags:c.mateFlags,readName:c.mateReadName,sequenceId:c.mateSequenceId,alignmentStart:c.mateAlignmentStart}),s&&(this.mateRecordNumber=s);}isPaired(){return !!(this.flags&i.default.BAM_FPAIRED)}isProperlyPaired(){return !!(this.flags&i.default.BAM_FPROPER_PAIR)}isSegmentUnmapped(){return !!(this.flags&i.default.BAM_FUNMAP)}isMateUnmapped(){return !!(this.flags&i.default.BAM_FMUNMAP)}isReverseComplemented(){return !!(this.flags&i.default.BAM_FREVERSE)}isMateReverseComplemented(){return !!(this.flags&i.default.BAM_FMREVERSE)}isRead1(){return !!(this.flags&i.default.BAM_FREAD1)}isRead2(){return !!(this.flags&i.default.BAM_FREAD2)}isSecondary(){return !!(this.flags&i.default.BAM_FSECONDARY)}isFailedQc(){return !!(this.flags&i.default.BAM_FQCFAIL)}isDuplicate(){return !!(this.flags&i.default.BAM_FDUP)}isSupplementary(){return !!(this.flags&i.default.BAM_FSUPPLEMENTARY)}isDetached(){return !!(this.cramFlags&i.default.CRAM_FLAG_DETACHED)}hasMateDownStream(){return !!(this.cramFlags&i.default.CRAM_FLAG_MATE_DOWNSTREAM)}isPreservingQualityScores(){return !!(this.cramFlags&i.default.CRAM_FLAG_PRESERVE_QUAL_SCORES)}isUnknownBases(){return !!(this.cramFlags&i.default.CRAM_FLAG_NO_SEQ)}getReadBases(){if(!this.readBases&&this._refRegion){const e=function(e,t){if(!e.lengthOnRef&&!e.readLength)return null;if(e.isUnknownBases())return null;const r=e.alignmentStart-t.start;if(!e.readFeatures)return t.seq.slice(r,r+(e.lengthOnRef||0)).toUpperCase();let n="",i=r,a=0;for(;n.length<e.readLength;)if(a<e.readFeatures.length){const r=e.readFeatures[a];if("Q"===r.code||"q"===r.code)a+=1;else if(r.pos===n.length+1)if(a+=1,"b"===r.code){const e=r.data;n+=e,i+=e.length;}else "B"===r.code?(n+=r.data[0],i+=1):"X"===r.code?(n+=r.sub,i+=1):"I"===r.code?n+=r.data:"D"===r.code?i+=r.data:"i"===r.code?n+=r.data:"N"===r.code?i+=r.data:"S"===r.code?n+=r.data:"P"===r.code||r.code;else if(a<e.readFeatures.length){const e=t.seq.slice(i,i+r.pos-n.length-1);n+=e,i+=e.length;}}else {const r=t.seq.slice(i,i+e.readLength-n.length);n+=r,i+=r.length;}return n.toUpperCase()}(this,this._refRegion);e&&(this.readBases=e);}return this.readBases}getPairOrientation(){if(!this.isSegmentUnmapped()&&this.isPaired()&&!this.isMateUnmapped()&&this.mate&&this.sequenceId===this.mate.sequenceId){const e=this.isReverseComplemented()?"R":"F",t=this.isMateReverseComplemented()?"R":"F";let r=" ",n=" ";this.isRead1()?(r="1",n="2"):this.isRead2()&&(r="2",n="1");const i=[];let a=this.templateLength||this.templateSize;if(void 0===a)throw new Error("One of templateSize and templateLength must be set");return this.alignmentStart>this.mate.alignmentStart&&a>0&&(a=-a),a>0?(i[0]=e,i[1]=r,i[2]=t,i[3]=n):(i[2]=e,i[3]=r,i[0]=t,i[1]=n),i.join("")}return null}addReferenceSequence(e,t){this.readFeatures&&this.readFeatures.forEach((r=>{"X"===r.code&&function(e,t,r,n){const i=n.refPos-t.start,s=t.seq.charAt(i);s&&(n.ref=s);let A=a[s];void 0===A&&(A=4);const o=r.substitutionMatrix[A][n.data];o&&(n.sub=o);}(0,e,t,r);})),!this.readBases&&e.start<=this.alignmentStart&&e.end>=this.alignmentStart+(this.lengthOnRef||this.readLength)-1&&(this._refRegion=e);}toJSON(){const e={};return Object.keys(this).forEach((t=>{t.startsWith("_")||(e[t]=this[t]);})),e.readBases=this.getReadBases(),e}};},7580:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.cramFileDefinition=i,t.cramBlockHeader=a,t.cramBlockCrc32=s,t.cramTagDictionary=o,t.cramPreservationMap=c,t.isMappedSliceHeader=function(e){return "number"==typeof e.refSeqId},t.getSectionParsers=function(e){return {cramFileDefinition:i(),cramBlockHeader:a(),cramBlockCrc32:s(),cramDataSeriesEncodingMap:g(),cramTagEncodingMap:h(),cramCompressionHeader:{parser:(e,t)=>{const{value:r,offset:n}=c().parser(e,t);t=n;const{value:i,offset:a}=g().parser(e,t);t=a;const{value:s,offset:A}=h().parser(e,t);return t=A,{value:{dataSeriesEncoding:d(i),preservation:d(r),tagEncoding:d(s)},offset:t}}},cramEncoding:{parser:(e,t)=>u(e,t)},cramUnmappedSliceHeader:l(e),cramMappedSliceHeader:f(e),cramContainerHeader1:C(e),cramContainerHeader2:I(e)}};const n=r(2549);function i(){return {parser:(e,t=0)=>{const r=new DataView(e.buffer,e.byteOffset,e.length),n=new TextDecoder("utf8");let i=0;const a=n.decode(e.subarray(i,i+4));i+=4;const s=r.getUint8(i);i+=1;const A=r.getUint8(i);i+=1;const o=n.decode(e.subarray(i,i+20)).replaceAll("\0","");return i+=20,{value:{magic:a,majorVersion:s,minorVersion:A,fileId:o},offset:i}},maxLength:26}}function a(){return {parser:(e,t=0)=>{const r=e,i=new DataView(r.buffer,r.byteOffset,r.length);let a=0;const s=i.getUint8(a),A=["raw","gzip","bzip2","lzma","rans","rans4x16","arith","fqzcomp","tok3"][s];if(!A)throw new Error(`compression method number ${s} not implemented`);a+=1;const o=i.getUint8(a),c=["FILE_HEADER","COMPRESSION_HEADER","MAPPED_SLICE_HEADER","UNMAPPED_SLICE_HEADER","EXTERNAL_DATA","CORE_DATA"][o];if(!c)throw new Error(`invalid block content type id ${o}`);a+=1;const[d,l]=(0, n.parseItf8)(e,a);a+=l;const[f,u]=(0, n.parseItf8)(e,a);a+=u;const[g,h]=(0, n.parseItf8)(e,a);return a+=h,{offset:a,value:{uncompressedSize:g,compressedSize:f,contentId:d,contentType:c,compressionMethod:A}}},maxLength:17}}function s(){return {parser:(e,t)=>{const r=e,n=new DataView(r.buffer,r.byteOffset,r.length).getUint32(t,!0);return {offset:t+=4,value:{crc32:n}}},maxLength:4}}function A(e,t,r){const n=new TextDecoder("utf8").decode(e.subarray(t,r)),i=[];for(let e=0;e<n.length;e+=3)i.push(n.slice(e,e+3));return i}function o(){return {parser:(e,t)=>{const[r,i]=(0, n.parseItf8)(e,t);t+=i;const a=e.subarray(t,t+r);t+=r;const s=[];let o=0,c=0;for(;c<a.length;c++)a[c]||(s.push(A(a,o,c)),o=c+1);return c>o&&s.push(A(a,o,c)),{value:{size:r,ents:s},offset:t}}}}function c(){return {parser:(e,t)=>{const r=e,i=new DataView(r.buffer,r.byteOffset,r.length),[a,s]=(0, n.parseItf8)(e,t);t+=s;const[A,c]=(0, n.parseItf8)(e,t);t+=c;const d=[];for(let r=0;r<A;r++){const r=String.fromCharCode(e[t])+String.fromCharCode(e[t+1]);if(t+=2,"MI"===r||"UI"===r||"PI"===r||"RN"===r||"AP"===r||"RR"===r)d.push({key:r,value:!!i.getUint8(t)}),t+=1;else if("SM"===r)d.push({key:r,value:[i.getUint8(t),i.getUint8(t+1),i.getUint8(t+2),i.getUint8(t+3),i.getUint8(t+4)]}),t+=5;else {if("TD"!==r)throw new Error(`unknown key ${r}`);{const{offset:n,value:i}=o().parser(e,t);d.push({key:r,value:i.ents}),t=n;}}}return {value:{mapSize:a,mapCount:A,ents:d},offset:t}}}}function d(e){const t={};for(const{key:r,value:n}of e.ents)t[r]&&console.warn(`duplicate key ${r} in map`),t[r]=n;return t}function l(e){return {parser:(t,r)=>{const[i,a]=(0, n.parseItf8)(t,r);r+=a;let s=0;if(e>=3){const[e,i]=(0, n.parseLtf8)(t,r);r+=i,s=e;}else if(2===e){const[e,i]=(0, n.parseItf8)(t,r);r+=i,s=e;}else console.warn("recordCounter=0");const[A,o]=(0, n.parseItf8)(t,r);r+=o;const[c,d]=(0, n.parseItf8)(t,r);r+=d;const l=[];for(let e=0;e<c;e++){const[e,i]=(0, n.parseItf8)(t,r);r+=i,l.push(e);}let f;return e>=2&&(f=[...t.subarray(r,r+16)],r+=16),{value:{recordCounter:s,md5:f,contentIds:l,numContentIds:c,numBlocks:A,numRecords:i},offset:r}},maxLength:e=>40+5*e}}function f(e){return {parser:(t,r)=>{const[i,a]=(0, n.parseItf8)(t,r);r+=a;const[s,A]=(0, n.parseItf8)(t,r);r+=A;const[o,c]=(0, n.parseItf8)(t,r);r+=c;const[d,l]=(0, n.parseItf8)(t,r);r+=l;let f=0;if(e>=3){const[e,i]=(0, n.parseLtf8)(t,r);r+=i,f=e;}else if(2===e){const[e,i]=(0, n.parseItf8)(t,r);r+=i,f=e;}else console.warn("majorVersion is <2, recordCounter set to 0");const[u,g]=(0, n.parseItf8)(t,r);r+=g;const[h,C]=(0, n.parseItf8)(t,r);r+=C;const I=[];for(let e=0;e<h;e++){const[e,i]=(0, n.parseItf8)(t,r);r+=i,I.push(e);}const[_,m]=(0, n.parseItf8)(t,r);let B;return r+=m,e>=2&&(B=[...t.subarray(r,r+16)],r+=16),{value:{md5:B,numBlocks:u,numRecords:d,numContentIds:h,refSeqSpan:o,refSeqId:i,refSeqStart:s,recordCounter:f,refBaseBlockId:_,contentIds:I},offset:r}},maxLength:e=>60+5*e}}function u(e,t){const r=e,i=new DataView(r.buffer,r.byteOffset,r.length),[a,s]=(0, n.parseItf8)(e,t);t+=s;const[A,o]=(0, n.parseItf8)(e,t);t+=o;const c={};if(0===a);else if(1===a){const[r,i]=(0, n.parseItf8)(e,t);c.blockContentId=r,t+=i;}else if(2===a){const[r,i]=(0, n.parseItf8)(e,t);c.offset=r,t+=i;const[a,s]=(0, n.parseItf8)(e,t);c.M=a,t+=s;}else if(3===a){const r=(0, n.parseItf8)(e,t),i=r[0];t+=r[1];const a=[];for(let r=0;r<i;r++){const r=(0, n.parseItf8)(e,t);a.push(r[0]),t+=r[1];}c.symbols=a;const s=(0, n.parseItf8)(e,t),A=r[0];c.numLengths=A,c.numCodes=i,c.numLengths=A,t+=s[1];const o=[];for(let r=0;r<A;r++){const r=(0, n.parseItf8)(e,t);t+=r[1],o.push(r[0]);}c.bitLengths=o;}else if(4===a){const{value:r,offset:n}=u(e,t);c.lengthsEncoding=r,t=n;const{value:i,offset:a}=u(e,t);c.valuesEncoding=i,t=a;}else if(5===a){c.stopByte=i.getUint8(t),t+=1;const[r,a]=(0, n.parseItf8)(e,t);c.blockContentId=r,t+=a;}else if(6===a){const[r,i]=(0, n.parseItf8)(e,t);c.offset=r,t+=i;const[a,s]=(0, n.parseItf8)(e,t);c.length=a,t+=s;}else if(7===a){const[r,i]=(0, n.parseItf8)(e,t);c.offset=r,t+=i;const[a,s]=(0, n.parseItf8)(e,t);c.K=a,t+=s;}else if(8===a){const[r,i]=(0, n.parseItf8)(e,t);c.offset=r,t+=i;const[a,s]=(0, n.parseItf8)(e,t);c.log2m=a,t+=s;}else {if(9!==a)throw new Error(`unknown codecId ${a}`);{const[r,i]=(0, n.parseItf8)(e,t);c.offset=r,t+=i;}}return {value:{codecId:a,parametersBytes:A,parameters:c},offset:t}}function g(){return {parser:(e,t)=>{const[r,i]=(0, n.parseItf8)(e,t);t+=i;const[a,s]=(0, n.parseItf8)(e,t);t+=s;const A=[];for(let r=0;r<a;r++){const r=String.fromCharCode(e[t])+String.fromCharCode(e[t+1]);t+=2;const{value:n,offset:i}=u(e,t);t=i,A.push({key:r,value:n});}return {value:{mapSize:r,ents:A,mapCount:a},offset:t}}}}function h(){return {parser:(e,t)=>{const[r,i]=(0, n.parseItf8)(e,t);t+=i;const[a,s]=(0, n.parseItf8)(e,t);t+=s;const A=[];for(let r=0;r<a;r++){const[r,i]=(0, n.parseItf8)(e,t);t+=i;const a=String.fromCharCode(r>>16&255)+String.fromCharCode(r>>8&255)+String.fromCharCode(255&r),{value:s,offset:o}=u(e,t);t=o,A.push({key:a,value:s});}return {value:{mapSize:r,ents:A,mapCount:a},offset:t}}}}function C(e){return {maxLength:52,parser:(t,r)=>{const i=t,a=new DataView(i.buffer,i.byteOffset,i.length).getInt32(r,!0);r+=4;const[s,A]=(0, n.parseItf8)(t,r);r+=A;const[o,c]=(0, n.parseItf8)(t,r);r+=c;const[d,l]=(0, n.parseItf8)(t,r);r+=l;const[f,u]=(0, n.parseItf8)(t,r);r+=u;let g,h=0;if(e>=3){const[e,i]=(0, n.parseLtf8)(t,r);h=e,r+=i;}else if(2===e){const[e,i]=(0, n.parseItf8)(t,r);h=e,r+=i;}else console.warn("setting recordCounter=0");if(e>1){const[e,i]=(0, n.parseLtf8)(t,r);g=e,r+=i;}const[C,I]=(0, n.parseItf8)(t,r);r+=I;const[_,m]=(0, n.parseItf8)(t,r);return {value:{length:a,refSeqId:s,refSeqStart:o,alignmentSpan:d,numBlocks:C,numLandmarks:_,numBases:g,recordCounter:h,numRecords:f},offset:r+=m}}}}function I(e){return {parser:(t,r)=>{const i=t,a=new DataView(i.buffer,i.byteOffset,i.length),[s,A]=(0, n.parseItf8)(t,r);r+=A;const o=[];for(let e=0;e<s;e++){const[e,i]=(0, n.parseItf8)(t,r);r+=i,o.push(e);}let c;return e>=3&&(c=a.getUint32(r,!0),r+=4),{value:{...void 0===c?{}:{crc32:c},numLandmarks:s,landmarks:o},offset:r}},maxLength:e=>5+5*e+4}}},7593:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});},7934:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const i=n(r(4141)),a=r(2549);class s extends i.default{constructor(e,t,r){super(e,t),this.instantiateCodec=r;}decode(e,t,r,n){const i=this._getLengthCodec().decode(e,t,r,n)||0,a=this._getDataCodec(),s=new Uint8Array(i);for(let A=0;A<i;A+=1)s[A]=a.decode(e,t,r,n)||0;return s}_getLengthCodec(){const e=this.parameters.lengthsEncoding;return this.instantiateCodec(e,"int")}_getDataCodec(){const e=this.parameters.valuesEncoding;return this.instantiateCodec(e,"byte")}}t.default=s,"_getLengthCodec _getDataCodec".split(" ").forEach((e=>{(0, a.tinyMemoize)(s,e);}));},8006:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const i=n(r(4141)),a=r(6272),s=r(6761);class A extends i.default{decode(e,t,r,n){const{blockContentId:i}=this.parameters,s=r[i];if(!s)throw new a.CramMalformedError(`no block found with content ID ${i}`);const A=n.externalBlocks.getCursor(i);return this._decodeByteArray(s,A)}_decodeByteArray(e,t){const r=e.content,{stopByte:n}=this.parameters,i=t.bytePosition;let a=t.bytePosition;for(;r[a]!==n&&a<r.length;){if(a===r.length)throw new s.CramBufferOverrunError("byteArrayStop reading beyond length of data buffer?");a+=1;}return t.bytePosition=a+1,r.subarray(i,a)}}t.default=A;},8223:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const i=n(r(4997)),a=r(6272);t.default=class{constructor(e){if(this.cram=e.cram??new i.default({url:e.cramUrl,path:e.cramPath,filehandle:e.cramFilehandle,seqFetch:e.seqFetch,checkSequenceMD5:e.checkSequenceMD5,cacheSize:e.cacheSize}),!(this.cram instanceof i.default))throw new Error("invalid arguments: no cramfile");this.index=e.index;}async getRecordsForRange(e,t,r,n={}){if(n.viewAsPairs=n.viewAsPairs||!1,n.pairAcrossChr=n.pairAcrossChr||!1,n.maxInsertSize=n.maxInsertSize||2e5,"string"==typeof e)throw new a.CramUnimplementedError("string sequence names not yet supported");const i=e,s=await this.index.getEntriesForRange(i,t,r),A=await Promise.all(s.map((n=>this.getRecordsInSlice(n,(n=>n.sequenceId===e&&n.alignmentStart<=r&&void 0!==n.lengthOnRef&&n.alignmentStart+n.lengthOnRef-1>=t)))));let o=Array.prototype.concat(...A);if(n.viewAsPairs){const e={},t={};for(const r of o){const n=r.readName;if(void 0===n)throw new Error("readName undefined");const i=r.uniqueId;e[n]||(e[n]=0),e[n]+=1,t[i]=1;}const r={};Object.entries(e).forEach((([e,t])=>{1===t&&(r[e]=!0);}));const a=[];for(const e of o){const t=e.readName;if(void 0===t)throw new Error("readName undefined");if(r[t]&&e.mate&&(e.mate.sequenceId===i||n.pairAcrossChr)&&Math.abs(e.alignmentStart-e.mate.alignmentStart)<n.maxInsertSize){const t=this.index.getEntriesForRange(e.mate.sequenceId,e.mate.alignmentStart,e.mate.alignmentStart+1);a.push(t);}}const s=await Promise.all(a);let A=[];for(const e of s)A.push(...e);A=A.sort(((e,t)=>e.toString().localeCompare(t.toString()))).filter(((e,t,r)=>!t||e.toString()!==r[t-1].toString()));const d=[];for(const e of A){let n=this.cram.featureCache.get(e.toString());n||(n=this.getRecordsInSlice(e,(()=>!0)),this.cram.featureCache.set(e.toString(),n));const i=n.then((e=>{const n=[];for(const i of e){if(void 0===i.readName)throw new Error("readName undefined");r[i.readName]&&!t[i.uniqueId]&&n.push(i);}return n}));d.push(i);}const l=await Promise.all(d);if(l.length){const e=l.reduce(((e,t)=>e.concat(t)));o=o.concat(e);}}return o}getRecordsInSlice({containerStart:e,sliceStart:t,sliceBytes:r},n){return this.cram.getContainerAtPosition(e).getSlice(t,r).getRecords(n)}hasDataForReferenceSequence(e){return this.index.hasDataForReferenceSequence(e)}};},8301:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i);}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),i=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r);},a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.LocalFile=t.RemoteFile=t.BlobFile=void 0,t.fromUrl=o,t.open=function(e,t,r,n={}){if(void 0!==r)return r;if(void 0!==e)return o(e,n);if(void 0!==t)return new s.default(t,n);throw new Error("no url, path, or filehandle provided, cannot open")};const s=a(r(2616)),A=a(r(8485));function o(e,t={}){return new A.default(e,t)}i(r(7593),t);var c=r(1064);Object.defineProperty(t,"BlobFile",{enumerable:!0,get:function(){return a(c).default}});var d=r(8485);Object.defineProperty(t,"RemoteFile",{enumerable:!0,get:function(){return a(d).default}});var l=r(2616);Object.defineProperty(t,"LocalFile",{enumerable:!0,get:function(){return a(l).default}});},8411:(e,t,r)=>{var n,i=r(9805),a=r(3665),s=r(3269),A=r(4823),o=r(4674),c=-2,d=258,l=262,f=103,u=113,g=666;function h(e,t){return e.msg=o[t],t}function C(e){return (e<<1)-(e>4?9:0)}function I(e){for(var t=e.length;--t>=0;)e[t]=0;}function _(e){var t=e.state,r=t.pending;r>e.avail_out&&(r=e.avail_out),0!==r&&(i.arraySet(e.output,t.pending_buf,t.pending_out,r,e.next_out),e.next_out+=r,t.pending_out+=r,e.total_out+=r,e.avail_out-=r,t.pending-=r,0===t.pending&&(t.pending_out=0));}function m(e,t){a._tr_flush_block(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,_(e.strm);}function B(e,t){e.pending_buf[e.pending++]=t;}function p(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t;}function w(e,t,r,n){var a=e.avail_in;return a>n&&(a=n),0===a?0:(e.avail_in-=a,i.arraySet(t,e.input,e.next_in,a,r),1===e.state.wrap?e.adler=s(e.adler,t,a,r):2===e.state.wrap&&(e.adler=A(e.adler,t,a,r)),e.next_in+=a,e.total_in+=a,a)}function E(e,t){var r,n,i=e.max_chain_length,a=e.strstart,s=e.prev_length,A=e.nice_match,o=e.strstart>e.w_size-l?e.strstart-(e.w_size-l):0,c=e.window,f=e.w_mask,u=e.prev,g=e.strstart+d,h=c[a+s-1],C=c[a+s];e.prev_length>=e.good_match&&(i>>=2),A>e.lookahead&&(A=e.lookahead);do{if(c[(r=t)+s]===C&&c[r+s-1]===h&&c[r]===c[a]&&c[++r]===c[a+1]){a+=2,r++;do{}while(c[++a]===c[++r]&&c[++a]===c[++r]&&c[++a]===c[++r]&&c[++a]===c[++r]&&c[++a]===c[++r]&&c[++a]===c[++r]&&c[++a]===c[++r]&&c[++a]===c[++r]&&a<g);if(n=d-(g-a),a=g-d,n>s){if(e.match_start=t,s=n,n>=A)break;h=c[a+s-1],C=c[a+s];}}}while((t=u[t&f])>o&&0!==--i);return s<=e.lookahead?s:e.lookahead}function Q(e){var t,r,n,a,s,A=e.w_size;do{if(a=e.window_size-e.lookahead-e.strstart,e.strstart>=A+(A-l)){i.arraySet(e.window,e.window,A,A,0),e.match_start-=A,e.strstart-=A,e.block_start-=A,t=r=e.hash_size;do{n=e.head[--t],e.head[t]=n>=A?n-A:0;}while(--r);t=r=A;do{n=e.prev[--t],e.prev[t]=n>=A?n-A:0;}while(--r);a+=A;}if(0===e.strm.avail_in)break;if(r=w(e.strm,e.window,e.strstart+e.lookahead,a),e.lookahead+=r,e.lookahead+e.insert>=3)for(s=e.strstart-e.insert,e.ins_h=e.window[s],e.ins_h=(e.ins_h<<e.hash_shift^e.window[s+1])&e.hash_mask;e.insert&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[s+3-1])&e.hash_mask,e.prev[s&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=s,s++,e.insert--,!(e.lookahead+e.insert<3)););}while(e.lookahead<l&&0!==e.strm.avail_in)}function y(e,t){for(var r,n;;){if(e.lookahead<l){if(Q(e),e.lookahead<l&&0===t)return 1;if(0===e.lookahead)break}if(r=0,e.lookahead>=3&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+3-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!==r&&e.strstart-r<=e.w_size-l&&(e.match_length=E(e,r)),e.match_length>=3)if(n=a._tr_tally(e,e.strstart-e.match_start,e.match_length-3),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=3){e.match_length--;do{e.strstart++,e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+3-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart;}while(0!==--e.match_length);e.strstart++;}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+1])&e.hash_mask;else n=a._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(n&&(m(e,!1),0===e.strm.avail_out))return 1}return e.insert=e.strstart<2?e.strstart:2,4===t?(m(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(m(e,!1),0===e.strm.avail_out)?1:2}function b(e,t){for(var r,n,i;;){if(e.lookahead<l){if(Q(e),e.lookahead<l&&0===t)return 1;if(0===e.lookahead)break}if(r=0,e.lookahead>=3&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+3-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=2,0!==r&&e.prev_length<e.max_lazy_match&&e.strstart-r<=e.w_size-l&&(e.match_length=E(e,r),e.match_length<=5&&(1===e.strategy||3===e.match_length&&e.strstart-e.match_start>4096)&&(e.match_length=2)),e.prev_length>=3&&e.match_length<=e.prev_length){i=e.strstart+e.lookahead-3,n=a._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-3),e.lookahead-=e.prev_length-1,e.prev_length-=2;do{++e.strstart<=i&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+3-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart);}while(0!==--e.prev_length);if(e.match_available=0,e.match_length=2,e.strstart++,n&&(m(e,!1),0===e.strm.avail_out))return 1}else if(e.match_available){if((n=a._tr_tally(e,0,e.window[e.strstart-1]))&&m(e,!1),e.strstart++,e.lookahead--,0===e.strm.avail_out)return 1}else e.match_available=1,e.strstart++,e.lookahead--;}return e.match_available&&(n=a._tr_tally(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<2?e.strstart:2,4===t?(m(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(m(e,!1),0===e.strm.avail_out)?1:2}function D(e,t,r,n,i){this.good_length=e,this.max_lazy=t,this.nice_length=r,this.max_chain=n,this.func=i;}function S(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=8,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new i.Buf16(1146),this.dyn_dtree=new i.Buf16(122),this.bl_tree=new i.Buf16(78),I(this.dyn_ltree),I(this.dyn_dtree),I(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new i.Buf16(16),this.heap=new i.Buf16(573),I(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new i.Buf16(573),I(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0;}function k(e){var t;return e&&e.state?(e.total_in=e.total_out=0,e.data_type=2,(t=e.state).pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?42:u,e.adler=2===t.wrap?0:1,t.last_flush=0,a._tr_init(t),0):h(e,c)}function v(e){var t,r=k(e);return 0===r&&((t=e.state).window_size=2*t.w_size,I(t.head),t.max_lazy_match=n[t.level].max_lazy,t.good_match=n[t.level].good_length,t.nice_match=n[t.level].nice_length,t.max_chain_length=n[t.level].max_chain,t.strstart=0,t.block_start=0,t.lookahead=0,t.insert=0,t.match_length=t.prev_length=2,t.match_available=0,t.ins_h=0),r}function R(e,t,r,n,a,s){if(!e)return c;var A=1;if(-1===t&&(t=6),n<0?(A=0,n=-n):n>15&&(A=2,n-=16),a<1||a>9||8!==r||n<8||n>15||t<0||t>9||s<0||s>4)return h(e,c);8===n&&(n=9);var o=new S;return e.state=o,o.strm=e,o.wrap=A,o.gzhead=null,o.w_bits=n,o.w_size=1<<o.w_bits,o.w_mask=o.w_size-1,o.hash_bits=a+7,o.hash_size=1<<o.hash_bits,o.hash_mask=o.hash_size-1,o.hash_shift=~~((o.hash_bits+3-1)/3),o.window=new i.Buf8(2*o.w_size),o.head=new i.Buf16(o.hash_size),o.prev=new i.Buf16(o.w_size),o.lit_bufsize=1<<a+6,o.pending_buf_size=4*o.lit_bufsize,o.pending_buf=new i.Buf8(o.pending_buf_size),o.d_buf=1*o.lit_bufsize,o.l_buf=3*o.lit_bufsize,o.level=t,o.strategy=s,o.method=r,v(e)}n=[new D(0,0,0,0,(function(e,t){var r=65535;for(r>e.pending_buf_size-5&&(r=e.pending_buf_size-5);;){if(e.lookahead<=1){if(Q(e),0===e.lookahead&&0===t)return 1;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;var n=e.block_start+r;if((0===e.strstart||e.strstart>=n)&&(e.lookahead=e.strstart-n,e.strstart=n,m(e,!1),0===e.strm.avail_out))return 1;if(e.strstart-e.block_start>=e.w_size-l&&(m(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===t?(m(e,!0),0===e.strm.avail_out?3:4):(e.strstart>e.block_start&&(m(e,!1),e.strm.avail_out),1)})),new D(4,4,8,4,y),new D(4,5,16,8,y),new D(4,6,32,32,y),new D(4,4,16,16,b),new D(8,16,32,32,b),new D(8,16,128,128,b),new D(8,32,128,256,b),new D(32,128,258,1024,b),new D(32,258,258,4096,b)],t.deflateInit=function(e,t){return R(e,t,8,15,8,0)},t.deflateInit2=R,t.deflateReset=v,t.deflateResetKeep=k,t.deflateSetHeader=function(e,t){return e&&e.state?2!==e.state.wrap?c:(e.state.gzhead=t,0):c},t.deflate=function(e,t){var r,i,s,o;if(!e||!e.state||t>5||t<0)return e?h(e,c):c;if(i=e.state,!e.output||!e.input&&0!==e.avail_in||i.status===g&&4!==t)return h(e,0===e.avail_out?-5:c);if(i.strm=e,r=i.last_flush,i.last_flush=t,42===i.status)if(2===i.wrap)e.adler=0,B(i,31),B(i,139),B(i,8),i.gzhead?(B(i,(i.gzhead.text?1:0)+(i.gzhead.hcrc?2:0)+(i.gzhead.extra?4:0)+(i.gzhead.name?8:0)+(i.gzhead.comment?16:0)),B(i,255&i.gzhead.time),B(i,i.gzhead.time>>8&255),B(i,i.gzhead.time>>16&255),B(i,i.gzhead.time>>24&255),B(i,9===i.level?2:i.strategy>=2||i.level<2?4:0),B(i,255&i.gzhead.os),i.gzhead.extra&&i.gzhead.extra.length&&(B(i,255&i.gzhead.extra.length),B(i,i.gzhead.extra.length>>8&255)),i.gzhead.hcrc&&(e.adler=A(e.adler,i.pending_buf,i.pending,0)),i.gzindex=0,i.status=69):(B(i,0),B(i,0),B(i,0),B(i,0),B(i,0),B(i,9===i.level?2:i.strategy>=2||i.level<2?4:0),B(i,3),i.status=u);else {var l=8+(i.w_bits-8<<4)<<8;l|=(i.strategy>=2||i.level<2?0:i.level<6?1:6===i.level?2:3)<<6,0!==i.strstart&&(l|=32),l+=31-l%31,i.status=u,p(i,l),0!==i.strstart&&(p(i,e.adler>>>16),p(i,65535&e.adler)),e.adler=1;}if(69===i.status)if(i.gzhead.extra){for(s=i.pending;i.gzindex<(65535&i.gzhead.extra.length)&&(i.pending!==i.pending_buf_size||(i.gzhead.hcrc&&i.pending>s&&(e.adler=A(e.adler,i.pending_buf,i.pending-s,s)),_(e),s=i.pending,i.pending!==i.pending_buf_size));)B(i,255&i.gzhead.extra[i.gzindex]),i.gzindex++;i.gzhead.hcrc&&i.pending>s&&(e.adler=A(e.adler,i.pending_buf,i.pending-s,s)),i.gzindex===i.gzhead.extra.length&&(i.gzindex=0,i.status=73);}else i.status=73;if(73===i.status)if(i.gzhead.name){s=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>s&&(e.adler=A(e.adler,i.pending_buf,i.pending-s,s)),_(e),s=i.pending,i.pending===i.pending_buf_size)){o=1;break}o=i.gzindex<i.gzhead.name.length?255&i.gzhead.name.charCodeAt(i.gzindex++):0,B(i,o);}while(0!==o);i.gzhead.hcrc&&i.pending>s&&(e.adler=A(e.adler,i.pending_buf,i.pending-s,s)),0===o&&(i.gzindex=0,i.status=91);}else i.status=91;if(91===i.status)if(i.gzhead.comment){s=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>s&&(e.adler=A(e.adler,i.pending_buf,i.pending-s,s)),_(e),s=i.pending,i.pending===i.pending_buf_size)){o=1;break}o=i.gzindex<i.gzhead.comment.length?255&i.gzhead.comment.charCodeAt(i.gzindex++):0,B(i,o);}while(0!==o);i.gzhead.hcrc&&i.pending>s&&(e.adler=A(e.adler,i.pending_buf,i.pending-s,s)),0===o&&(i.status=f);}else i.status=f;if(i.status===f&&(i.gzhead.hcrc?(i.pending+2>i.pending_buf_size&&_(e),i.pending+2<=i.pending_buf_size&&(B(i,255&e.adler),B(i,e.adler>>8&255),e.adler=0,i.status=u)):i.status=u),0!==i.pending){if(_(e),0===e.avail_out)return i.last_flush=-1,0}else if(0===e.avail_in&&C(t)<=C(r)&&4!==t)return h(e,-5);if(i.status===g&&0!==e.avail_in)return h(e,-5);if(0!==e.avail_in||0!==i.lookahead||0!==t&&i.status!==g){var w=2===i.strategy?function(e,t){for(var r;;){if(0===e.lookahead&&(Q(e),0===e.lookahead)){if(0===t)return 1;break}if(e.match_length=0,r=a._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,r&&(m(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===t?(m(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(m(e,!1),0===e.strm.avail_out)?1:2}(i,t):3===i.strategy?function(e,t){for(var r,n,i,s,A=e.window;;){if(e.lookahead<=d){if(Q(e),e.lookahead<=d&&0===t)return 1;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=3&&e.strstart>0&&(n=A[i=e.strstart-1])===A[++i]&&n===A[++i]&&n===A[++i]){s=e.strstart+d;do{}while(n===A[++i]&&n===A[++i]&&n===A[++i]&&n===A[++i]&&n===A[++i]&&n===A[++i]&&n===A[++i]&&n===A[++i]&&i<s);e.match_length=d-(s-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead);}if(e.match_length>=3?(r=a._tr_tally(e,1,e.match_length-3),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(r=a._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),r&&(m(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===t?(m(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(m(e,!1),0===e.strm.avail_out)?1:2}(i,t):n[i.level].func(i,t);if(3!==w&&4!==w||(i.status=g),1===w||3===w)return 0===e.avail_out&&(i.last_flush=-1),0;if(2===w&&(1===t?a._tr_align(i):5!==t&&(a._tr_stored_block(i,0,0,!1),3===t&&(I(i.head),0===i.lookahead&&(i.strstart=0,i.block_start=0,i.insert=0))),_(e),0===e.avail_out))return i.last_flush=-1,0}return 4!==t?0:i.wrap<=0?1:(2===i.wrap?(B(i,255&e.adler),B(i,e.adler>>8&255),B(i,e.adler>>16&255),B(i,e.adler>>24&255),B(i,255&e.total_in),B(i,e.total_in>>8&255),B(i,e.total_in>>16&255),B(i,e.total_in>>24&255)):(p(i,e.adler>>>16),p(i,65535&e.adler)),_(e),i.wrap>0&&(i.wrap=-i.wrap),0!==i.pending?0:1)},t.deflateEnd=function(e){var t;return e&&e.state?42!==(t=e.state.status)&&69!==t&&73!==t&&91!==t&&t!==f&&t!==u&&t!==g?h(e,c):(e.state=null,t===u?h(e,-3):0):c},t.deflateSetDictionary=function(e,t){var r,n,a,A,o,d,l,f,u=t.length;if(!e||!e.state)return c;if(2===(A=(r=e.state).wrap)||1===A&&42!==r.status||r.lookahead)return c;for(1===A&&(e.adler=s(e.adler,t,u,0)),r.wrap=0,u>=r.w_size&&(0===A&&(I(r.head),r.strstart=0,r.block_start=0,r.insert=0),f=new i.Buf8(r.w_size),i.arraySet(f,t,u-r.w_size,r.w_size,0),t=f,u=r.w_size),o=e.avail_in,d=e.next_in,l=e.input,e.avail_in=u,e.next_in=0,e.input=t,Q(r);r.lookahead>=3;){n=r.strstart,a=r.lookahead-2;do{r.ins_h=(r.ins_h<<r.hash_shift^r.window[n+3-1])&r.hash_mask,r.prev[n&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=n,n++;}while(--a);r.strstart=n,r.lookahead=2,Q(r);}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=2,r.match_available=0,e.next_in=d,e.input=l,e.avail_in=o,r.wrap=A,0},t.deflateInfo="pako deflate (from Nodeca project)";},8485:(e,t)=>{function r(e){return ("object"==typeof e&&null!==e&&"message"in e?e.message:`${e}`).replace(/\.$/,"")}Object.defineProperty(t,"__esModule",{value:!0}),t.default=class{constructor(e,t={}){this.baseOverrides={},this.url=e;const r=t.fetch||globalThis.fetch.bind(globalThis);t.overrides&&(this.baseOverrides=t.overrides),this.fetchImplementation=r;}async fetch(e,t){let n;try{n=await this.fetchImplementation(e,t);}catch(i){if(!`${i}`.includes("Failed to fetch"))throw new Error(`${r(i)} fetching ${e}`,{cause:i});console.warn(`generic-filehandle: refetching ${e} to attempt to work around chrome CORS header caching bug`);try{n=await this.fetchImplementation(e,{...t,cache:"reload"});}catch(t){throw new Error(`${r(t)} fetching ${e}`,{cause:t})}}return n}async read(e,t,r={}){const{headers:n={},signal:i,overrides:a={}}=r;e<1/0?n.range=`bytes=${t}-${t+e}`:e===1/0&&0!==t&&(n.range=`bytes=${t}-`);const s=await this.fetch(this.url,{...this.baseOverrides,...a,headers:{...n,...a.headers,...this.baseOverrides.headers},method:"GET",redirect:"follow",mode:"cors",signal:i});if(!s.ok)throw new Error(`HTTP ${s.status} fetching ${this.url}`);if(200===s.status&&0===t||206===s.status){const t=await s.arrayBuffer(),r=s.headers.get("content-range"),n=/\/(\d+)$/.exec(r||"");return n?.[1]&&(this._stat={size:parseInt(n[1],10)}),new Uint8Array(t.slice(0,e))}throw 200===s.status?new Error(`${this.url} fetch returned status 200, expected 206`):new Error(`HTTP ${s.status} fetching ${this.url}`)}async readFile(e={}){let t,r;"string"==typeof e?(t=e,r={}):(t=e.encoding,r=e,delete r.encoding);const{headers:n={},signal:i,overrides:a={}}=r,s=await this.fetch(this.url,{headers:n,method:"GET",redirect:"follow",mode:"cors",signal:i,...this.baseOverrides,...a});if(200!==s.status)throw new Error(`HTTP ${s.status} fetching ${this.url}`);if("utf8"===t)return s.text();if(t)throw new Error(`unsupported encoding: ${t}`);return new Uint8Array(await s.arrayBuffer())}async stat(){if(!this._stat&&(await this.read(10,0),!this._stat))throw new Error(`unable to determine size of file at ${this.url}`);return this._stat}async close(){}};},8594:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.decode=function(e){const t=new i.default(e),r=t.ReadByte(),n=(t.ReadUint32(),t.ReadUint32());return 0==r?function(e,t){const r=new Array(256),n=new Array(256);d(e,r,n);const i=A(n),s=new Array(4);for(var l=0;l<4;l++)s[l]=e.ReadUint32();const f=new Uint8Array(t);for(l=0;l<t;l++){const t=l%4,A=i[a(s[t])];f[l]=A,s[t]=o(s[t],n[A],r[A]),s[t]=c(e,s[t]);}return f}(t,n):function(e,t){const r=new Array(256),n=new Array(256);!function(e,t,r){for(let e=0;e<256;e++){t[e]=new Array(256),r[e]=new Array(256);for(let r=0;r<256;r++)t[e][r]=0;}let n=e.ReadByte(),i=n,a=0;do{d(e,t[n],r[n]),a>0?(a--,n++):(n=e.ReadByte(),n==i+1&&(a=e.ReadByte())),i=n;}while(0!=n)}(e,r,n);const i=new Array(256);for(var l=0;l<256;l++)i[l]=A(n[l]);const f=new Array(4),u=new Array(4);for(var g=0;g<4;g++)f[g]=e.ReadUint32(),u[g]=0;const h=new Uint8Array(t),C=Math.floor(t/4);for(l=0;l<C;l++)for(g=0;g<4;g++){var I=a(f[g]),_=i[u[g]][I];h[l+g*C]=_,f[g]=o(f[g],n[u[g]][_],r[u[g]][_]),f[g]=c(e,f[g]),u[g]=_;}for(l*=4;l<t;)I=a(f[3]),_=s(n[u[3]],I),h[l++]=_,f[3]=o(f[3],n[u[3]][_],r[u[3]][_]),f[3]=c(e,f[3]),u[3]=_;return h}(t,n)};const i=n(r(3088));function a(e){return 4095&e}function s(e,t){let r=0;for(;t>=e[r+1];)r++;return r}function A(e){const t=new Array(4096);let r=0;for(let n=0;n<4096;n++){for(;n>=e[r+1];)r++;t[n]=r;}return t}function o(e,t,r){return r*(e>>12)+(4095&e)-t}function c(e,t){for(;t<1<<23;)t=(t<<8)+e.ReadByte();return t}function d(e,t,r){for(var n=0;n<256;n++)t[n]=0;let i=e.ReadByte(),a=i,s=0;do{const r=e.ReadITF8();t[i]=r,s>0?(s--,i++):(i=e.ReadByte(),i==a+1&&(s=e.ReadByte())),a=i;}while(0!=i);for(r[0]=0,n=0;n<=255;n++)r[n+1]=r[n]+t[n];}},8700:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});const n=r(6272),i=r(1609),a={BF:"int",CF:"int",RI:"int",RL:"int",AP:"int",RG:"int",MF:"int",NS:"int",NP:"int",TS:"int",NF:"int",TC:"byte",TN:"int",FN:"int",FC:"byte",FP:"int",BS:"byte",IN:"byteArray",SC:"byteArray",DL:"int",BA:"byte",BB:"byteArray",RS:"int",PD:"int",HC:"int",MQ:"int",RN:"byteArray",QS:"byte",QQ:"byteArray",TL:"int"};t.default=class{constructor(e){this.dataSeriesCodecCache={},this.tagCodecCache={},this.tagEncoding={},this.readNamesIncluded=e.preservation.RN,this.APdelta=e.preservation.AP,this.referenceRequired=!!e.preservation.RR,this.tagIdsDictionary=e.preservation.TD,this.substitutionMatrix=function(e){const t=new Array(5);for(let e=0;e<5;e+=1)t[e]=new Array(4);return t[0][e[0]>>6&3]="C",t[0][e[0]>>4&3]="G",t[0][e[0]>>2&3]="T",t[0][3&e[0]]="N",t[1][e[1]>>6&3]="A",t[1][e[1]>>4&3]="G",t[1][e[1]>>2&3]="T",t[1][3&e[1]]="N",t[2][e[2]>>6&3]="A",t[2][e[2]>>4&3]="C",t[2][e[2]>>2&3]="T",t[2][3&e[2]]="N",t[3][e[3]>>6&3]="A",t[3][e[3]>>4&3]="C",t[3][e[3]>>2&3]="G",t[3][3&e[3]]="N",t[4][e[4]>>6&3]="A",t[4][e[4]>>4&3]="C",t[4][e[4]>>2&3]="G",t[4][3&e[4]]="T",t}(e.preservation.SM),this.dataSeriesEncoding=e.dataSeriesEncoding,this.tagEncoding=e.tagEncoding;}getCodecForTag(e){const t=this.tagCodecCache[e];if(t)return t;{const t=this.tagEncoding[e];if(!t)throw new Error("Error, no tag encoding");const r=(0, i.instantiateCodec)(t,"byteArray");return this.tagCodecCache[e]=r,r}}getTagNames(e){return this.tagIdsDictionary[e]}getCodecForDataSeries(e){let t=this.dataSeriesCodecCache[e];if(void 0===t){const r=this.dataSeriesEncoding[e];if(r){const s=a[e];if(!s)throw new n.CramMalformedError(`data series name ${e} not defined in file compression header`);t=(0, i.instantiateCodec)(r,s),this.dataSeriesCodecCache[e]=t;}}return t}toJSON(){const e={};return Object.keys(this).forEach((t=>{t.endsWith("Cache")||(e[t]=this[t]);})),e}};},8751:function(e,t,r){var n,i=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i);}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),s=this&&this.__importStar||(n=function(e){return n=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},n(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=n(e),s=0;s<r.length;s++)"default"!==r[s]&&i(t,e,r[s]);return a(t,e),t}),A=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=A(r(86)),c=A(r(7392)),d=r(1307),l=r(6272),f=s(r(4562)),u=r(6727),g=A(r(2670)),h=r(5011),C=r(870),I=r(2169),_=A(r(2845)),m=r(7580),B=r(2549);class p{constructor(e){if(this.file=(0, u.open)(e.url,e.path,e.filehandle),this.validateChecksums=!0,this.fetchReferenceSequenceCallback=e.seqFetch,this.options={checkSequenceMD5:e.checkSequenceMD5,cacheSize:e.cacheSize??2e4},this.featureCache=new c.default({maxSize:this.options.cacheSize}),function(){const e=new Uint32Array([287454020]),t=new Uint8Array(e.buffer);return 68===t[0]?0:17===t[0]?1:2}()>0)throw new Error("Detected big-endian machine, may be unable to run")}read(e,t){return this.file.read(e,t)}async getDefinition(){const{maxLength:e,parser:t}=(0, m.cramFileDefinition)(),r=t(await this.file.read(e,0)).value;if(2!==r.majorVersion&&3!==r.majorVersion)throw new l.CramUnimplementedError(`CRAM version ${r.majorVersion} not supported`);return r}async getSamHeader(){const e=await this.getContainerById(0);if(!e)throw new l.CramMalformedError("file contains no containers");const t=(await e.getFirstBlock()).content,r=new DataView(t.buffer).getInt32(0,!0),n=new TextDecoder("utf8").decode(t.subarray(4,4+r));return this.header=n,(0, h.parseHeaderText)(n)}async getHeaderText(){return await this.getSamHeader(),this.header}async getContainerById(e){const{majorVersion:t}=await this.getDefinition();let r,n=(0, m.getSectionParsers)(t).cramFileDefinition.maxLength;for(let t=0;t<=e;t++){r=this.getContainerAtPosition(n);const e=await r.getHeader();if(0===t){n=e._endPosition;for(let t=0;t<e.numBlocks;t++)n=(await this.readBlock(n))._endPosition;}else n+=e._size+e.length;}return r}async checkCrc32(e,t,r,n){const i=await this.file.read(t,e),a=(0, o.default)(i)>>>0;if(a!==r)throw new l.CramMalformedError(`crc mismatch in ${n}: recorded CRC32 = ${r}, but calculated CRC32 = ${a}`)}async containerCount(){const{majorVersion:e}=await this.getDefinition();let t=0,r=(0, m.getSectionParsers)(e).cramFileDefinition.maxLength;try{for(;;){const e=await this.getContainerAtPosition(r).getHeader();if(0===t){r=e._endPosition;for(let t=0;t<e.numBlocks;t++)r=(await this.readBlock(r))._endPosition;}else r+=e._size+e.length;t+=1;}}catch(e){t--;}return t}getContainerAtPosition(e){return new _.default(this,e)}async readBlockHeader(e){const{majorVersion:t}=await this.getDefinition(),r=(0, m.getSectionParsers)(t),{cramBlockHeader:n}=r,i=await this.file.read(n.maxLength,e);return (0, B.parseItem)(i,n.parser,0,e)}async _parseSection(e,t,r=e.maxLength,n){const i=n??await this.file.read(r,t),a=(0, B.parseItem)(i,e.parser,0,t);if(a._size!==r)throw new l.CramMalformedError(`section read error: requested size ${r} does not equal parsed size ${a._size}`);return a}async _uncompressPre(e,t,r){if("gzip"===e)return (0, I.unzip)(t);if("bzip2"===e)return (0, C.decode)(t);if("lzma"===e){const e=new Response(new d.XzReadableStream((n=t,new ReadableStream({start(e){e.enqueue(n),e.close();}}))));return new Uint8Array(await e.arrayBuffer())}if("rans"===e){const e=new Uint8Array(r);return (0, g.default)(t,e),e}if("rans4x16"===e)return f.r4x16_uncompress(t);if("arith"===e)return f.arith_uncompress(t);if("fqzcomp"===e)return f.fqzcomp_uncompress(t);if("tok3"===e)return f.tok3_uncompress(t);throw new l.CramUnimplementedError(`${e} decompression not yet implemented`);var n;}async _uncompress(e,t,r){const n=await this._uncompressPre(e,t,r);if(n.length!==r){const e=new Uint8Array(r);return e.set(n,0),e}return n}async readBlock(e){const{majorVersion:t}=await this.getDefinition(),r=(0, m.getSectionParsers)(t),n=await this.readBlockHeader(e),i=n._endPosition,a=await this.file.read(n.compressedSize,i),s="raw"!==n.compressionMethod?await this._uncompress(n.compressionMethod,a,n.uncompressedSize):a,A={...n,_endPosition:i,contentPosition:i,content:s};if(t>=3){const t=await this._parseSection(r.cramBlockCrc32,i+n.compressedSize);A.crc32=t.crc32,this.validateChecksums&&await this.checkCrc32(e,n._size+n.compressedSize,t.crc32,"block data"),A._endPosition=t._endPosition,A._size=A.compressedSize+r.cramBlockCrc32.maxLength;}else A._endPosition=i+A.compressedSize,A._size=A.compressedSize;return A}}t.default=p,"getDefinition getSectionParsers getSamHeader".split(" ").forEach((e=>{(0, B.tinyMemoize)(p,e);}));},8761:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});const r=new Uint32Array([0,79764919,159529838,222504665,319059676,398814059,445009330,507990021,638119352,583659535,797628118,726387553,890018660,835552979,1015980042,944750013,1276238704,1221641927,1167319070,1095957929,1595256236,1540665371,1452775106,1381403509,1780037320,1859660671,1671105958,1733955601,2031960084,2111593891,1889500026,1952343757,2552477408,2632100695,2443283854,2506133561,2334638140,2414271883,2191915858,2254759653,3190512472,3135915759,3081330742,3009969537,2905550212,2850959411,2762807018,2691435357,3560074640,3505614887,3719321342,3648080713,3342211916,3287746299,3467911202,3396681109,4063920168,4143685023,4223187782,4286162673,3779000052,3858754371,3904687514,3967668269,881225847,809987520,1023691545,969234094,662832811,591600412,771767749,717299826,311336399,374308984,453813921,533576470,25881363,88864420,134795389,214552010,2023205639,2086057648,1897238633,1976864222,1804852699,1867694188,1645340341,1724971778,1587496639,1516133128,1461550545,1406951526,1302016099,1230646740,1142491917,1087903418,2896545431,2825181984,2770861561,2716262478,3215044683,3143675388,3055782693,3001194130,2326604591,2389456536,2200899649,2280525302,2578013683,2640855108,2418763421,2498394922,3769900519,3832873040,3912640137,3992402750,4088425275,4151408268,4197601365,4277358050,3334271071,3263032808,3476998961,3422541446,3585640067,3514407732,3694837229,3640369242,1762451694,1842216281,1619975040,1682949687,2047383090,2127137669,1938468188,2001449195,1325665622,1271206113,1183200824,1111960463,1543535498,1489069629,1434599652,1363369299,622672798,568075817,748617968,677256519,907627842,853037301,1067152940,995781531,51762726,131386257,177728840,240578815,269590778,349224269,429104020,491947555,4046411278,4126034873,4172115296,4234965207,3794477266,3874110821,3953728444,4016571915,3609705398,3555108353,3735388376,3664026991,3290680682,3236090077,3449943556,3378572211,3174993278,3120533705,3032266256,2961025959,2923101090,2868635157,2813903052,2742672763,2604032198,2683796849,2461293480,2524268063,2284983834,2364738477,2175806836,2238787779,1569362073,1498123566,1409854455,1355396672,1317987909,1246755826,1192025387,1137557660,2072149281,2135122070,1912620623,1992383480,1753615357,1816598090,1627664531,1707420964,295390185,358241886,404320391,483945776,43990325,106832002,186451547,266083308,932423249,861060070,1041341759,986742920,613929101,542559546,756411363,701822548,3316196985,3244833742,3425377559,3370778784,3601682597,3530312978,3744426955,3689838204,3819031489,3881883254,3928223919,4007849240,4037393693,4100235434,4180117107,4259748804,2310601993,2373574846,2151335527,2231098320,2596047829,2659030626,2470359227,2550115596,2947551409,2876312838,2788305887,2733848168,3165939309,3094707162,3040238851,2985771188]);t.default=class{constructor(){this.crc=4294967295;}getCRC(){return ~this.crc>>>0}updateCRC(e){this.crc=this.crc<<8^r[255&(this.crc>>>24^e)];}updateCRCRun(e,t){for(;t-- >0;)this.crc=this.crc<<8^r[255&(this.crc>>>24^e)];}};},8930:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const i=n(r(4141)),a=r(6272),s=r(2549),A=r(6761);class o extends i.default{constructor(e,t){if(super(e,t),"int"===this.dataType)this._decodeData=this._decodeInt;else {if("byte"!==this.dataType)throw new a.CramUnimplementedError(`${this.dataType} decoding not yet implemented by EXTERNAL codec`);this._decodeData=this._decodeByte;}}decode(e,t,r,n){const{blockContentId:i}=this.parameters,a=r[i];return a?this._decodeData(a,n.externalBlocks.getCursor(i)):void 0}_decodeInt(e,t){const[r,n]=(0, s.parseItf8)(e.content,t.bytePosition);return t.bytePosition=t.bytePosition+n,r}_decodeByte(e,t){if(t.bytePosition>=e.content.length)throw new A.CramBufferOverrunError("attempted to read beyond end of block. this file seems truncated.");return e.content[t.bytePosition++]}}t.default=o;},9301:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});const n=r(6272),i=r(7151);class a{constructor(){this.F=void 0,this.C=void 0;}}function s(e,t,r,n){return r*(e>>n)+(e&(1<<n)-1)-t}t.default={FC:a,AriDecoder:class{constructor(){this.fc=new Array(256);for(let e=0;e<this.fc.length;e+=1)this.fc[e]=new a;this.R=null;}},DecodingSymbol:class{constructor(){this.start=void 0,this.freq=void 0;}},symbolInit:function(e,t,r){if(!(t<=65536))throw new n.CramMalformedError("assertion failed: start <= 1<<16");if(!(r<=65536-t))throw new n.CramMalformedError("assertion failed: freq <= 1<<16");e.start=t,e.freq=r;},advanceStep:s,advanceSymbolStep:function(e,t,r){return s(e,t.start,t.freq,r)},get:function(e,t){return e&(1<<t)-1},advanceSymbol:function(e,t,r,n){return function(e,t,r,n,a){if((e=n*(e>>a)+(e&(1<<a)-1)-r)<i.RANS_BYTE_L)do{e=e<<8|255&t.get();}while(e<i.RANS_BYTE_L);return e}(e,t,r.start,r.freq,n)},renormalize:function(e,t){if(e<i.RANS_BYTE_L)do{e=e<<8|255&t.get();}while(e<i.RANS_BYTE_L);return e}};},9313:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.decode=function(e){return d(new i.default(e),0)};const i=n(r(3088));function a(e,t){return e&(1<<t)-1}function s(e,t){let r=0;for(;t>=e[r+1];)r++;return r}function A(e,t){const r=1<<t,n=new Array(r);let i=0;for(let t=0;t<r;t++){for(;t>=e[i+1];)i++;n[t]=i;}return n}function o(e,t,r,n){return r*(e>>n)+(e&(1<<n)-1)-t}function c(e,t){return t<32768&&(t=(t<<16)+e.ReadUint16()),t}function d(e,t){const r=e.ReadByte(),n=1&r,g=8&r,h=32&r,C=64&r,I=128&r,_=4&r?32:4;if(16&r||(t=e.ReadUint7()),g)return function(e,t){const r=e.ReadByte(),n=new Array(r),i=new Array(r);for(var a=0;a<r;a++)n[a]=e.ReadUint7();const s=new Array(r);for(a=0;a<r;a++)i[a]=Math.floor(t/r)+(t%r>a),s[a]=d(e,i[a]);const A=new Uint8Array(t);for(a=0;a<r;a++)for(let e=0;e<i[a];e++)A[e*r+a]=s[a][e];return A}(e,t);if(I)var m=t,[B,p,t]=function(e){const t=e.ReadByte(),r=new Array(t);for(let n=0;n<t;n++)r[n]=e.ReadByte();return [r,t,e.ReadUint7()]}(e);if(C)var w=t,[E,Q,t]=function(e,t){const r=e.ReadUint7(),n=e.ReadUint7();if(1&r)var a=e.ReadData((r-1)/2);else {const n=e.ReadUint7();a=e.ReadData(n),a=f(new i.default(a),r/2,t);}a=new i.default(a);const s=new Array(256);let A=a.ReadByte();0==A&&(A=256);for(let e=0;e<A;e++)s[a.ReadByte()]=1;return [s,a,n]}(e,_);if(h)var y=e.ReadData(t);else y=0==n?f(e,t,_):function(e,t,r){const n=(g=e.ReadByte())>>4;var d=e;if(1&g){const t=e.ReadUint7(),r=e.ReadUint7();var g=new i.default(e.ReadData(r));d=new i.default(f(g,t,4));}const h=new Array(256),C=new Array(256);!function(e,t,r,n){for(var i=0;i<256;i++){t[i]=new Array(256),r[i]=new Array(256);for(var a=0;a<256;a++)t[i][a]=0;}const s=l(e);for(i=0;i<256;i++){if(!s[i])continue;let A=0;for(a=0;a<256;a++)s[a]&&(A>0?A--:(t[i][a]=e.ReadUint7(),0==t[i][a]&&(A=e.ReadByte())));for(u(t[i],n),r[i][0]=0,a=0;a<256;a++)r[i][a+1]=r[i][a]+t[i][a];}}(d,h,C,n);const I=new Array(256);for(var _=0;_<256;_++)I[_]=A(C[_],n);const m=new Array(r),B=new Array(r);for(var p=0;p<r;p++)m[p]=e.ReadUint32(),B[p]=0;const w=new Uint8Array(t),E=Math.floor(t/r);for(_=0;_<E;_++)for(p=0;p<r;p++){var Q=a(m[p],n),y=I[B[p]][Q];w[_+p*E]=y,m[p]=o(m[p],C[B[p]][y],h[B[p]][y],n),m[p]=c(e,m[p]),B[p]=y;}for(_*=r;_<t;)Q=a(m[r-1],n),y=s(C[B[r-1]],Q),w[_++]=y,m[r-1]=o(m[r-1],C[B[r-1]][y],h[B[r-1]][y],n),m[r-1]=c(e,m[r-1]),B[r-1]=y;return w}(e,t,_);return C&&(y=function(e,t,r,n){new i.default(e);const a=new Uint8Array(n);let s=0;for(let i=0;s<n;i++){const n=e[i];if(t[n]){const e=r.ReadUint7();for(let t=0;t<=e;t++)a[s++]=n;}else a[s++]=n;}return a}(y,E,Q,w)),I&&(y=function(e,t,r,n){const i=new Uint8Array(n);let a=0;if(r<=1)for(var s=0;s<n;s++)i[s]=t[0];else if(r<=2)for(s=0;s<n;s++){if(s%8==0)var A=e[a++];i[s]=t[1&A],A>>=1;}else if(r<=4)for(s=0;s<n;s++)s%4==0&&(A=e[a++]),i[s]=t[3&A],A>>=2;else if(r<=16)for(s=0;s<n;s++)s%2==0&&(A=e[a++]),i[s]=t[15&A],A>>=4;return i}(y,B,p,m)),y}function l(e){const t=new Array(256);for(let e=0;e<256;e++)t[e]=0;let r=0,n=e.ReadByte(),i=n;do{t[n]=1,r>0?(r--,n++):(n=e.ReadByte(),n==i+1&&(r=e.ReadByte())),i=n;}while(0!=n);return t}function f(e,t,r){const n=new Array(256),i=new Array(256);!function(e,t,r){for(var n=0;n<256;n++)t[n]=0;const i=l(e);for(n=0;n<256;n++)i[n]>0&&(t[n]=e.ReadUint7());for(u(t,12),r[0]=0,n=0;n<=255;n++)r[n+1]=r[n]+t[n];}(e,n,i);const s=A(i,12),d=new Array(r);for(var f=0;f<r;f++)d[f]=e.ReadUint32();const g=new Uint8Array(t);for(f=0;f<t;f++){const t=f&r-1,A=s[a(d[t],12)];g[f]=A,d[t]=o(d[t],i[A],n[A],12),d[t]=c(e,d[t]);}return g}function u(e,t){let r=0;for(var n=0;n<256;n++)r+=e[n];if(0==r||r==1<<t)return;let i=0;for(;r<1<<t;)r*=2,i++;for(n=0;n<256;n++)e[n]<<=i;}},9505:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const i=r(870),a=n(r(4652)),s=n(r(2324)),A=n(r(3088));t.default=class{decode(e){return this.stream=new A.default(e),this.decodeStream(this.stream)}decodeStream(e,t=0){const r=this.stream.ReadByte();16&r||(t=this.stream.ReadUint7());let n=t;const i=1&r;if(8&r)return this.decodeStripe(this.stream,t);var a;if(128&r&&([a,n]=this.decodePackMeta(this.stream)),32&r)var s=this.decodeCat(this.stream,n);else s=4&r?this.decodeExt(this.stream,n):64&r?i?this.decodeRLE1(this.stream,n):this.decodeRLE0(this.stream,n):i?this.decode1(this.stream,n):this.decode0(this.stream,n);return 128&r&&(s=this.decodePack(s,a,t)),s}decode0(e,t){const r=new Uint8Array(t);let n=e.ReadByte();0==n&&(n=256);const i=new s.default(n),A=new a.default(e);A.RangeStartDecode(e);for(let n=0;n<t;n++)r[n]=i.ModelDecode(e,A);return r}decode1(e,t){const r=new Uint8Array(t);let n=e.ReadByte();0==n&&(n=256);const i=new Array(n);for(var A=0;A<n;A++)i[A]=new s.default(n);const o=new a.default(e);o.RangeStartDecode(e);let c=0;for(A=0;A<t;A++)r[A]=i[c].ModelDecode(e,o),c=r[A];return r}decodeExt(e,t){return (0, i.decode)(e.buf.slice(e.pos))}decodeRLE0(e,t){const r=new Uint8Array(t);let n=e.ReadByte();0==n&&(n=256);const i=new s.default(n),A=new Array(258);for(var o=0;o<=257;o++)A[o]=new s.default(4);const c=new a.default(e);for(c.RangeStartDecode(e),o=0;o<t;){r[o]=i.ModelDecode(e,c);let t=A[r[o]].ModelDecode(e,c),n=t,a=256;for(;3==t;)t=A[a].ModelDecode(e,c),a=257,n+=t;for(let e=1;e<=n;e++)r[o+e]=r[o];o+=n+1;}return r}decodeRLE1(e,t){const r=new Uint8Array(t);let n=e.ReadByte();0==n&&(n=256);const i=new Array(n);for(var A=0;A<n;A++)i[A]=new s.default(n);const o=new Array(258);for(A=0;A<=257;A++)o[A]=new s.default(4);const c=new a.default(e);c.RangeStartDecode(e);let d=0;for(A=0;A<t;){r[A]=i[d].ModelDecode(e,c),d=r[A];let t=o[r[A]].ModelDecode(e,c),n=t,a=256;for(;3==t;)t=o[a].ModelDecode(e,c),a=257,n+=t;for(let e=1;e<=n;e++)r[A+e]=r[A];A+=n+1;}return r}decodePackMeta(e){this.nsym=e.ReadByte();const t=new Array(this.nsym);for(let r=0;r<this.nsym;r++)t[r]=e.ReadByte();return [t,e.ReadUint7()]}decodePack(e,t,r){const n=new Uint8Array(r);if(this.nsym<=1)for(var i=0;i<r;i++)n[i]=t[0];else if(this.nsym<=2){i=0;for(var a=0;i<r;i++){if(i%8==0)var s=e[a++];n[i]=t[1&s],s>>=1;}}else if(this.nsym<=4)for(i=0,a=0;i<r;i++)i%4==0&&(s=e[a++]),n[i]=t[3&s],s>>=2;else {if(!(this.nsym<=16))return e;for(i=0,a=0;i<r;i++)i%2==0&&(s=e[a++]),n[i]=t[15&s],s>>=4;}return n}packMeta(e){const t=new A.default("",0,1024),r=new Array(256);for(var n=0;n<e.length;n++)r[e[n]]=1;var i=0;for(n=0;n<256;n++)r[n]&&(r[n]=++i);for(t.WriteByte(i),n=0;n<256;n++)r[n]&&(t.WriteByte(n),r[n]--);return [t,r,i]}decodeStripe(e,t){const r=e.ReadByte(),n=new Array(r),i=new Array(r);for(var a=0;a<r;a++)n[a]=e.ReadUint7();const s=new Array(r);for(a=0;a<r;a++)i[a]=Math.floor(t/r)+(t%r>a),s[a]=this.decodeStream(e,i[a]);const A=new Uint8Array(t);for(a=0;a<r;a++)for(let e=0;e<i[a];e++)A[e*r+a]=s[a][e];return A}decodeCat(e,t){const r=new Uint8Array(t);for(let n=0;n<t;n++)r[n]=e.ReadByte();return r}};},9681:e=>{e.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};},9685:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,r,o,c,d,l,f,u){let g=t("BF");const h=t("CF");if(!(0, a.isMappedSliceHeader)(o.parsedContent))throw new Error("slice header not mapped");const C=f>1&&-2===o.parsedContent.refSeqId?t("RI"):o.parsedContent.refSeqId,I=t("RL");let _=t("AP");r.APdelta&&(_+=l.lastAlignmentStart),l.lastAlignmentStart=_;const m=t("RG");let B,p,w,E;if(r.readNamesIncluded&&(B=s(t("RN"))),i.CramFlagsDecoder.isDetached(h)){const e=t("MF");let n;r.readNamesIncluded||(n=s(t("RN")),B=n);const a=t("NS"),A=t("NP");(e||a>-1)&&(p={mateFlags:e,mateSequenceId:a,mateAlignmentStart:A,mateReadName:n}),w=t("TS"),i.MateFlagsDecoder.isUnmapped(e)&&(g=i.BamFlagsDecoder.setMateUnmapped(g)),i.MateFlagsDecoder.isOnNegativeStrand(e)&&(g=i.BamFlagsDecoder.setMateReverseComplemented(g));}else i.CramFlagsDecoder.isWithMateDownstream(h)&&(E=t("NF")+u+1);const Q=t("TL");if(Q<0)throw new n.CramMalformedError("invalid TL index");const y={},b=r.getTagNames(Q),D=b.length;for(let t=0;t<D;t++){const n=b[t],i=n.slice(0,2),a=n.slice(2,3),s=r.getCodecForTag(n).decode(e,c,d,l);y[i]=void 0===s?void 0:"number"==typeof s?s:A(a,s);}let S,k,v,R,F;if(i.BamFlagsDecoder.isSegmentUnmapped(g))if(i.CramFlagsDecoder.isDecodeSequenceAsStar(h))F=null,R=null;else {const e=new Array(I);for(let r=0;r<e.length;r++)e[r]=t("BA");if(F=String.fromCharCode(...e),i.CramFlagsDecoder.isPreservingQualityScores(h)){R=new Array(I);for(let r=0;r<e.length;r++)R[r]=t("QS");}}else {const e=t("FN");if(e&&(S=function(e,t,r,i,a){let s=0,A=e-1;const o=new Array(t);function c([e,t]){const n=r(t);if("character"===e)return String.fromCharCode(n);if("string"===e){let e="";for(let t=0;t<n.byteLength;t++)e+=String.fromCharCode(n[t]);return e}return "numArray"===e?Array.from(n):n}for(let e=0;e<t;e++){const t=String.fromCharCode(r("FC")),i=r("FP"),d={B:["character","BA"],S:["string",a>1?"SC":"IN"],X:["number","BS"],D:["number","DL"],I:["string","IN"],i:["character","BA"],b:["string","BB"],q:["numArray","QQ"],Q:["number","QS"],H:["number","HC"],P:["number","PD"],N:["number","RS"]}[t];if(!d)throw new n.CramMalformedError(`invalid read feature code "${t}"`);let l=c(d);const f={B:["number","QS"]}[t];f&&(l=[l,c(f)]),s+=i;const u=s;A+=i;const g=A;"D"===t||"N"===t?A+=l:"I"===t||"S"===t?A-=l.length:"i"===t&&(A-=1),o[e]={code:t,pos:u,refPos:g,data:l};}return o}(_,e,t,0,f)),k=I,S)for(const{code:e,data:t}of S)"D"===e||"N"===e?k+=t:"I"===e||"S"===e?k-=t.length:"i"===e&&(k-=1);if(Number.isNaN(k)&&(console.warn(`${B||`${C}:${_}`} record has invalid read features`),k=I),v=t("MQ"),i.CramFlagsDecoder.isPreservingQualityScores(h)){R=new Array(I);for(let e=0;e<R.length;e++)R[e]=t("QS");}}return {readLength:I,sequenceId:C,cramFlags:h,flags:g,alignmentStart:_,readGroupId:m,readName:B,mateToUse:p,templateSize:w,mateRecordNumber:E,readFeatures:S,lengthOnRef:k,mappingQuality:v,qualityScores:R,readBases:F,tags:y}};const n=r(6272),i=r(7480),a=r(7580);function s(e){let t="";for(let r=0;r<e.length&&0!==e[r];r++)t+=String.fromCharCode(e[r]);return t}function A(e,t){if("Z"===e)return s(t);if("A"===e)return String.fromCharCode(t[0]);if("I"===e)return new Uint32Array(t.buffer)[0];if("i"===e)return new Int32Array(t.buffer)[0];if("s"===e)return new Int16Array(t.buffer)[0];if("S"===e)return new Uint16Array(t.buffer)[0];if("c"===e)return new Int8Array(t.buffer)[0];if("C"===e)return t[0];if("f"===e)return new Float32Array(t.buffer)[0];if("H"===e)return Number.parseInt(s(t).replace(/^0x/,""),16);if("B"===e)return function(e){const t=String.fromCharCode(e[0]),r=new DataView(e.buffer).getUint32(1,!0),n=new Array(r);if(e=e.slice(5),"c"===t){const t=new Int8Array(e.buffer);for(let e=0;e<r;e++)n[e]=t[e];}else if("C"===t){const t=new Uint8Array(e.buffer);for(let e=0;e<r;e++)n[e]=t[e];}else if("s"===t){const t=new Int16Array(e.buffer);for(let e=0;e<r;e++)n[e]=t[e];}else if("S"===t){const t=new Uint16Array(e.buffer);for(let e=0;e<r;e++)n[e]=t[e];}else if("i"===t){const t=new Int32Array(e.buffer);for(let e=0;e<r;e++)n[e]=t[e];}else if("I"===t){const t=new Uint32Array(e.buffer);for(let e=0;e<r;e++)n[e]=t[e];}else {if("f"!==t)throw new Error(`unknown type: ${t}`);{const t=new Float32Array(e.buffer);for(let e=0;e<r;e++)n[e]=t[e];}}return n}(t);throw new n.CramMalformedError(`Unrecognized tag type ${e}`)}},9805:(e,t)=>{var r="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;function n(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.assign=function(e){for(var t=Array.prototype.slice.call(arguments,1);t.length;){var r=t.shift();if(r){if("object"!=typeof r)throw new TypeError(r+"must be non-object");for(var i in r)n(r,i)&&(e[i]=r[i]);}}return e},t.shrinkBuf=function(e,t){return e.length===t?e:e.subarray?e.subarray(0,t):(e.length=t,e)};var i={arraySet:function(e,t,r,n,i){if(t.subarray&&e.subarray)e.set(t.subarray(r,r+n),i);else for(var a=0;a<n;a++)e[i+a]=t[r+a];},flattenChunks:function(e){var t,r,n,i,a,s;for(n=0,t=0,r=e.length;t<r;t++)n+=e[t].length;for(s=new Uint8Array(n),i=0,t=0,r=e.length;t<r;t++)a=e[t],s.set(a,i),i+=a.length;return s}},a={arraySet:function(e,t,r,n,i){for(var a=0;a<n;a++)e[i+a]=t[r+a];},flattenChunks:function(e){return [].concat.apply([],e)}};t.setTyped=function(e){e?(t.Buf8=Uint8Array,t.Buf16=Uint16Array,t.Buf32=Int32Array,t.assign(t,i)):(t.Buf8=Array,t.Buf16=Array,t.Buf32=Array,t.assign(t,a));},t.setTyped(r);},9846:()=>{}},t={},r=function r(n){var i=t[n];if(void 0!==i)return i.exports;var a=t[n]={exports:{}};return e[n].call(a.exports,a,a.exports,r),a.exports}(5159);return r})();
|
|
52556
|
+
let gmodCRAM;
|
|
52557
|
+
(()=>{var A={539(A){var t={utf8:{stringToBytes:function(A){return t.bin.stringToBytes(unescape(encodeURIComponent(A)))},bytesToString:function(A){return decodeURIComponent(escape(t.bin.bytesToString(A)))}},bin:{stringToBytes:function(A){for(var t=[],r=0;r<A.length;r++)t.push(255&A.charCodeAt(r));return t},bytesToString:function(A){for(var t=[],r=0;r<A.length;r++)t.push(String.fromCharCode(A[r]));return t.join("")}}};A.exports=t;},635(A){var t,r;t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",r={rotl:function(A,t){return A<<t|A>>>32-t},rotr:function(A,t){return A<<32-t|A>>>t},endian:function(A){if(A.constructor==Number)return 16711935&r.rotl(A,8)|4278255360&r.rotl(A,24);for(var t=0;t<A.length;t++)A[t]=r.endian(A[t]);return A},randomBytes:function(A){for(var t=[];A>0;A--)t.push(Math.floor(256*Math.random()));return t},bytesToWords:function(A){for(var t=[],r=0,e=0;r<A.length;r++,e+=8)t[e>>>5]|=A[r]<<24-e%32;return t},wordsToBytes:function(A){for(var t=[],r=0;r<32*A.length;r+=8)t.push(A[r>>>5]>>>24-r%32&255);return t},bytesToHex:function(A){for(var t=[],r=0;r<A.length;r++)t.push((A[r]>>>4).toString(16)),t.push((15&A[r]).toString(16));return t.join("")},hexToBytes:function(A){for(var t=[],r=0;r<A.length;r+=2)t.push(parseInt(A.substr(r,2),16));return t},bytesToBase64:function(A){for(var r=[],e=0;e<A.length;e+=3)for(var v=A[e]<<16|A[e+1]<<8|A[e+2],n=0;n<4;n++)8*e+6*n<=8*A.length?r.push(t.charAt(v>>>6*(3-n)&63)):r.push("=");return r.join("")},base64ToBytes:function(A){A=A.replace(/[^A-Z0-9+\/]/gi,"");for(var r=[],e=0,v=0;e<A.length;v=++e%4)0!=v&&r.push((t.indexOf(A.charAt(e-1))&Math.pow(2,-2*v+8)-1)<<2*v|t.indexOf(A.charAt(e))>>>6-2*v);return r}},A.exports=r;},445(A){function t(A){return !!A.constructor&&"function"==typeof A.constructor.isBuffer&&A.constructor.isBuffer(A)}A.exports=function(A){return null!=A&&(t(A)||function(A){return "function"==typeof A.readFloatLE&&"function"==typeof A.slice&&t(A.slice(0,0))}(A)||!!A._isBuffer)};},892(A,t,r){var e,v,n,j,f;e=r(635),v=r(539).utf8,n=r(445),j=r(539).bin,(f=function(A,t){A.constructor==String?A=t&&"binary"===t.encoding?j.stringToBytes(A):v.stringToBytes(A):n(A)?A=Array.prototype.slice.call(A,0):Array.isArray(A)||A.constructor===Uint8Array||(A=A.toString());for(var r=e.bytesToWords(A),s=8*A.length,b=1732584193,i=-271733879,o=-1732584194,a=271733878,g=0;g<r.length;g++)r[g]=16711935&(r[g]<<8|r[g]>>>24)|4278255360&(r[g]<<24|r[g]>>>8);r[s>>>5]|=128<<s%32,r[14+(s+64>>>9<<4)]=s;var I=f._ff,c=f._gg,C=f._hh,E=f._ii;for(g=0;g<r.length;g+=16){var l=b,h=i,d=o,k=a;b=I(b,i,o,a,r[g+0],7,-680876936),a=I(a,b,i,o,r[g+1],12,-389564586),o=I(o,a,b,i,r[g+2],17,606105819),i=I(i,o,a,b,r[g+3],22,-1044525330),b=I(b,i,o,a,r[g+4],7,-176418897),a=I(a,b,i,o,r[g+5],12,1200080426),o=I(o,a,b,i,r[g+6],17,-1473231341),i=I(i,o,a,b,r[g+7],22,-45705983),b=I(b,i,o,a,r[g+8],7,1770035416),a=I(a,b,i,o,r[g+9],12,-1958414417),o=I(o,a,b,i,r[g+10],17,-42063),i=I(i,o,a,b,r[g+11],22,-1990404162),b=I(b,i,o,a,r[g+12],7,1804603682),a=I(a,b,i,o,r[g+13],12,-40341101),o=I(o,a,b,i,r[g+14],17,-1502002290),b=c(b,i=I(i,o,a,b,r[g+15],22,1236535329),o,a,r[g+1],5,-165796510),a=c(a,b,i,o,r[g+6],9,-1069501632),o=c(o,a,b,i,r[g+11],14,643717713),i=c(i,o,a,b,r[g+0],20,-373897302),b=c(b,i,o,a,r[g+5],5,-701558691),a=c(a,b,i,o,r[g+10],9,38016083),o=c(o,a,b,i,r[g+15],14,-660478335),i=c(i,o,a,b,r[g+4],20,-405537848),b=c(b,i,o,a,r[g+9],5,568446438),a=c(a,b,i,o,r[g+14],9,-1019803690),o=c(o,a,b,i,r[g+3],14,-187363961),i=c(i,o,a,b,r[g+8],20,1163531501),b=c(b,i,o,a,r[g+13],5,-1444681467),a=c(a,b,i,o,r[g+2],9,-51403784),o=c(o,a,b,i,r[g+7],14,1735328473),b=C(b,i=c(i,o,a,b,r[g+12],20,-1926607734),o,a,r[g+5],4,-378558),a=C(a,b,i,o,r[g+8],11,-2022574463),o=C(o,a,b,i,r[g+11],16,1839030562),i=C(i,o,a,b,r[g+14],23,-35309556),b=C(b,i,o,a,r[g+1],4,-1530992060),a=C(a,b,i,o,r[g+4],11,1272893353),o=C(o,a,b,i,r[g+7],16,-155497632),i=C(i,o,a,b,r[g+10],23,-1094730640),b=C(b,i,o,a,r[g+13],4,681279174),a=C(a,b,i,o,r[g+0],11,-358537222),o=C(o,a,b,i,r[g+3],16,-722521979),i=C(i,o,a,b,r[g+6],23,76029189),b=C(b,i,o,a,r[g+9],4,-640364487),a=C(a,b,i,o,r[g+12],11,-421815835),o=C(o,a,b,i,r[g+15],16,530742520),b=E(b,i=C(i,o,a,b,r[g+2],23,-995338651),o,a,r[g+0],6,-198630844),a=E(a,b,i,o,r[g+7],10,1126891415),o=E(o,a,b,i,r[g+14],15,-1416354905),i=E(i,o,a,b,r[g+5],21,-57434055),b=E(b,i,o,a,r[g+12],6,1700485571),a=E(a,b,i,o,r[g+3],10,-1894986606),o=E(o,a,b,i,r[g+10],15,-1051523),i=E(i,o,a,b,r[g+1],21,-2054922799),b=E(b,i,o,a,r[g+8],6,1873313359),a=E(a,b,i,o,r[g+15],10,-30611744),o=E(o,a,b,i,r[g+6],15,-1560198380),i=E(i,o,a,b,r[g+13],21,1309151649),b=E(b,i,o,a,r[g+4],6,-145523070),a=E(a,b,i,o,r[g+11],10,-1120210379),o=E(o,a,b,i,r[g+2],15,718787259),i=E(i,o,a,b,r[g+9],21,-343485551),b=b+l>>>0,i=i+h>>>0,o=o+d>>>0,a=a+k>>>0;}return e.endian([b,i,o,a])})._ff=function(A,t,r,e,v,n,j){var f=A+(t&r|~t&e)+(v>>>0)+j;return (f<<n|f>>>32-n)+t},f._gg=function(A,t,r,e,v,n,j){var f=A+(t&e|r&~e)+(v>>>0)+j;return (f<<n|f>>>32-n)+t},f._hh=function(A,t,r,e,v,n,j){var f=A+(t^r^e)+(v>>>0)+j;return (f<<n|f>>>32-n)+t},f._ii=function(A,t,r,e,v,n,j){var f=A+(r^(t|~e))+(v>>>0)+j;return (f<<n|f>>>32-n)+t},f._blocksize=16,f._digestsize=16,A.exports=function(A,t){if(null==A)throw new Error("Illegal argument "+A);var r=e.wordsToBytes(f(A,t));return t&&t.asBytes?r:t&&t.asString?j.bytesToString(r):e.bytesToHex(r)};}},t={};function r(e){var v=t[e];if(void 0!==v)return v.exports;var n=t[e]={exports:{}};return A[e](n,n.exports,r),n.exports}r.d=(A,t)=>{for(var e in t)r.o(t,e)&&!r.o(A,e)&&Object.defineProperty(A,e,{enumerable:!0,get:t[e]});},r.o=(A,t)=>Object.prototype.hasOwnProperty.call(A,t),r.r=A=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(A,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(A,"__esModule",{value:!0});};var e={};(()=>{r.r(e),r.d(e,{CraiIndex:()=>vt,CramFile:()=>rt,CramRecord:()=>R,IndexedCramFile:()=>jt});const A=1,t=2,v=4,n=8,j=1,f=2,s=4,b=8,i=16,o=32,a=64,g=128,I=256,c=512,C=1024,E=2048;var l=r(892);let h;function d(){return h||(h=new TextDecoder),h}function k(A){let t=0;for(;t<A.length&&0!==A[t];)t++;return d().decode(A.subarray(0,t))}function B(A){return d().decode(A)}const q=4294967296;function u(A,t){const r=t.bytePosition,e=A[r];return e<128?(t.bytePosition=r+1,e):e<192?(t.bytePosition=r+2,(63&e)<<8|A[r+1]):e<224?(t.bytePosition=r+3,(31&e)<<16|A[r+1]<<8|A[r+2]):e<240?(t.bytePosition=r+4,(15&e)<<24|A[r+1]<<16|A[r+2]<<8|A[r+3]):(t.bytePosition=r+5,(15&e)<<28|A[r+1]<<20|A[r+2]<<12|A[r+3]<<4|15&A[r+4])}function Q(A,t){const r={bytePosition:t};return [u(A,r),r.bytePosition-t]}function x(A,t){let r=t;const e=A[r];let v;return e<128?(v=e,r+=1):e<192?(v=16383&(e<<8|A[r+1]),r+=2):e<224?(v=(63&e)<<16|A[r+1]<<8|A[r+2],r+=3):e<240?(v=(31&e)<<24|A[r+1]<<16|A[r+2]<<8|A[r+3],r+=4):e<248?(v=(15&A[r])*q+(A[r+1]<<24|A[r+2]<<16|A[r+3]<<8|A[r+4]),r+=5):e<252?(v=((7&A[r])<<8|A[r+1])*q+(A[r+2]<<24|A[r+3]<<16|A[r+4]<<8|A[r+5]),r+=6):e<254?(v=((3&A[r])<<16|A[r+1]<<8|A[r+2])*q+(A[r+3]<<24|A[r+4]<<16|A[r+5]<<8|A[r+6]),r+=7):e<255?(v=(A[r+1]<<24|A[r+2]<<16|A[r+3]<<8|A[r+4])*q+(A[r+5]<<24|A[r+6]<<16|A[r+7]<<8|A[r+8]),r+=8):(v=72057594037927940*A[r+1]+(A[r+2]<<24|A[r+3]<<16|A[r+4]<<8|A[r+5])*q+(A[r+6]<<24|A[r+7]<<16|A[r+8]<<8|A[r+9]),r+=9),[v,r-t]}function m(A,t,r=0,e=0){const{offset:v,value:n}=t(A,r);return {...n,_endPosition:v+e,_size:v-r}}const N=["F F ","F R ","R F ","R R ","F2F1","F2R1","R2F1","R2R1","F1F2","F1R2","R1F2","R1R2","F2F1","F2R1","R2F1","R2R1","F F ","R F ","F R ","R R ","F1F2","R1F2","F1R2","R1R2","F2F1","R2F1","F2R1","R2R1","F1F2","R1F2","F1R2","R1R2"],w={decodeTags:!0},p={a:0,A:0,c:1,C:1,g:2,G:2,t:3,T:3,n:4,N:4};function y(A,t,r,e){const v=e.refPos-t.start,n=t.seq.charAt(v);n&&(e.ref=n);let j=p[n];void 0===j&&(j=4);const f=r.substitutionMatrix[j][e.data];f&&(e.sub=f);}function D(A){const t={};for(const[r,e]of A)t[`is${e}`]=A=>!!(A&r),t[`set${e}`]=A=>A|r;return t}const F=D([[1,"Paired"],[2,"ProperlyPaired"],[4,"SegmentUnmapped"],[8,"MateUnmapped"],[16,"ReverseComplemented"],[32,"MateReverseComplemented"],[64,"Read1"],[128,"Read2"],[256,"Secondary"],[512,"FailedQc"],[1024,"Duplicate"],[2048,"Supplementary"]]),S=D([[1,"PreservingQualityScores"],[2,"Detached"],[4,"WithMateDownstream"],[8,"DecodeSequenceAsStar"]]),G=D([[1,"OnNegativeStrand"],[2,"Unmapped"]]);class R{tags;flags;cramFlags;readBases;_refRegion;readFeatures;alignmentStart;lengthOnRef;readLength;templateLength;templateSize;_readName;_readNameRaw;_syntheticReadName;mateRecordNumber;mate;uniqueId;sequenceId;readGroupId;mappingQuality;qualityScores;get readName(){if(void 0===this._readName){if(!this._readNameRaw)return this._syntheticReadName;this._readName=k(this._readNameRaw),this._readNameRaw=void 0;}return this._readName}constructor({flags:A,cramFlags:t,readLength:r,mappingQuality:e,lengthOnRef:v,qualityScores:n,mateRecordNumber:j,readBases:f,readFeatures:s,mate:b,readGroupId:i,readNameRaw:o,sequenceId:a,uniqueId:g,templateSize:I,alignmentStart:c,tags:C}){this.flags=A,this.cramFlags=t,this.readLength=r,this.mappingQuality=e,this.lengthOnRef=v,this.qualityScores=n,this.readGroupId=i,this.sequenceId=a,this.uniqueId=g,this.alignmentStart=c,this.tags=C,o&&(this._readNameRaw=o),f&&(this.readBases=f),this.templateSize=I,s&&(this.readFeatures=s),b&&(this.mate=b),j&&(this.mateRecordNumber=j);}qualityScoreAt(A){return this.qualityScores?.[A]}isPaired(){return !!(this.flags&j)}isProperlyPaired(){return !!(this.flags&f)}isSegmentUnmapped(){return !!(this.flags&s)}isMateUnmapped(){return !!(this.flags&b)}isReverseComplemented(){return !!(this.flags&i)}isMateReverseComplemented(){return !!(this.flags&o)}isRead1(){return !!(this.flags&a)}isRead2(){return !!(this.flags&g)}isSecondary(){return !!(this.flags&I)}isFailedQc(){return !!(this.flags&c)}isDuplicate(){return !!(this.flags&C)}isSupplementary(){return !!(this.flags&E)}isDetached(){return !!(this.cramFlags&t)}hasMateDownStream(){return !!(this.cramFlags&v)}isPreservingQualityScores(){return !!(this.cramFlags&A)}isUnknownBases(){return !!(this.cramFlags&n)}getReadBases(){if(!this.readBases&&this._refRegion){const A=function(A,t){if(!A.lengthOnRef&&!A.readLength)return null;if(A.isUnknownBases())return null;const r=A.alignmentStart-t.start;if(!A.readFeatures)return t.seq.slice(r,r+(A.lengthOnRef||0)).toUpperCase();let e="",v=r,n=0;for(;e.length<A.readLength;)if(n<A.readFeatures.length){const r=A.readFeatures[n];if("Q"===r.code||"q"===r.code)n+=1;else if(r.pos===e.length+1)switch(n+=1,r.code){case"b":e+=r.data,v+=r.data.length;break;case"B":e+=r.data[0],v+=1;break;case"X":e+=r.sub,v+=1;break;case"I":case"i":case"S":e+=r.data;break;case"D":case"N":v+=r.data;}else {const A=t.seq.slice(v,v+r.pos-e.length-1);e+=A,v+=A.length;}}else {const r=t.seq.slice(v,v+A.readLength-e.length);e+=r,v+=r.length;}return e.toUpperCase()}(this,this._refRegion);A&&(this.readBases=A);}return this.readBases}getPairOrientation(){const A=this.flags;if(1!=(13&A)||this.sequenceId!==this.mate?.sequenceId)return;const t=this.templateLength||this.templateSize||0;return N[A>>4&15|(t>0?16:0)]}addReferenceSequence(A,t){if(this.readFeatures)for(const r of this.readFeatures)"X"===r.code&&y(0,A,t,r);!this.readBases&&A.start<=this.alignmentStart&&A.end>=this.alignmentStart+(this.lengthOnRef||this.readLength)-1&&(this._refRegion=A);}toJSON(){const A={alignmentStart:this.alignmentStart,cramFlags:this.cramFlags,flags:this.flags,readGroupId:this.readGroupId,readLength:this.readLength,sequenceId:this.sequenceId,tags:this.tags,uniqueId:this.uniqueId,readName:this.readName,readBases:this.getReadBases(),qualityScores:this.qualityScores?Array.from(this.qualityScores):this.qualityScores};return void 0!==this.lengthOnRef&&(A.lengthOnRef=this.lengthOnRef),void 0!==this.mappingQuality&&(A.mappingQuality=this.mappingQuality),void 0!==this.templateSize&&(A.templateSize=this.templateSize),void 0!==this.templateLength&&(A.templateLength=this.templateLength),void 0!==this.readFeatures&&(A.readFeatures=this.readFeatures),void 0!==this.mate&&(A.mate=this.mate),void 0!==this.mateRecordNumber&&(A.mateRecordNumber=this.mateRecordNumber),A}}var K,M,O,H,L,J,_,P,$,Y,T,U,z,V,X,W=function(A,t,r,e,v){if("m"===e)throw new TypeError("Private method is not writable");if("a"===e&&!v)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?A!==t||!v:!t.has(A))throw new TypeError("Cannot write private member to an object whose class did not declare it");return "a"===e?v.call(A,r):v?v.value=r:t.set(A,r),r},Z=function(A,t,r,e){if("a"===r&&!e)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?A!==t||!e:!t.has(A))throw new TypeError("Cannot read private member from an object whose class did not declare it");return "m"===r?e:"a"===r?e.call(A):e?e.value:t.get(A)};class AA extends Map{constructor(A={}){if(super(),K.add(this),M.set(this,0),O.set(this,new Map),H.set(this,new Map),L.set(this,void 0),J.set(this,void 0),_.set(this,void 0),!(A.maxSize&&A.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");if("number"==typeof A.maxAge&&0===A.maxAge)throw new TypeError("`maxAge` must be a number greater than 0");W(this,L,A.maxSize,"f"),W(this,J,A.maxAge||Number.POSITIVE_INFINITY,"f"),W(this,_,A.onEviction,"f");}get __oldCache(){return Z(this,H,"f")}get(A){if(Z(this,O,"f").has(A)){const t=Z(this,O,"f").get(A);return Z(this,K,"m",T).call(this,A,t)}if(Z(this,H,"f").has(A)){const t=Z(this,H,"f").get(A);if(!Z(this,K,"m",$).call(this,A,t))return Z(this,K,"m",V).call(this,A,t),t.value}}set(A,t,{maxAge:r=Z(this,J,"f")}={}){const e="number"==typeof r&&r!==Number.POSITIVE_INFINITY?Date.now()+r:void 0;return Z(this,O,"f").has(A)?Z(this,O,"f").set(A,{value:t,expiry:e}):Z(this,K,"m",z).call(this,A,{value:t,expiry:e}),this}has(A){return Z(this,O,"f").has(A)?!Z(this,K,"m",$).call(this,A,Z(this,O,"f").get(A)):!!Z(this,H,"f").has(A)&&!Z(this,K,"m",$).call(this,A,Z(this,H,"f").get(A))}peek(A){return Z(this,O,"f").has(A)?Z(this,K,"m",U).call(this,A,Z(this,O,"f")):Z(this,H,"f").has(A)?Z(this,K,"m",U).call(this,A,Z(this,H,"f")):void 0}expiresIn(A){const t=Z(this,O,"f").get(A)??Z(this,H,"f").get(A);if(t)return t.expiry?t.expiry-Date.now():Number.POSITIVE_INFINITY}delete(A){var t;const r=Z(this,O,"f").delete(A);return r&&W(this,M,(t=Z(this,M,"f"),--t),"f"),Z(this,H,"f").delete(A)||r}clear(){Z(this,O,"f").clear(),Z(this,H,"f").clear(),W(this,M,0,"f");}resize(A){if(!(A&&A>0))throw new TypeError("`maxSize` must be a number greater than 0");const t=[...Z(this,K,"m",X).call(this)],r=t.length-A;r<0?(W(this,O,new Map(t),"f"),W(this,H,new Map,"f"),W(this,M,t.length,"f")):(r>0&&Z(this,K,"m",P).call(this,t.slice(0,r)),W(this,H,new Map(t.slice(r)),"f"),W(this,O,new Map,"f"),W(this,M,0,"f")),W(this,L,A,"f");}evict(A=1){const t=A;if(!t||t<=0)return;const r=[...Z(this,K,"m",X).call(this)],e=Math.trunc(Math.min(t,Math.max(r.length-1,0)));e<=0||(Z(this,K,"m",P).call(this,r.slice(0,e)),W(this,H,new Map(r.slice(e)),"f"),W(this,O,new Map,"f"),W(this,M,0,"f"));}*keys(){for(const[A]of this)yield A;}*values(){for(const[,A]of this)yield A;}*[(M=new WeakMap,O=new WeakMap,H=new WeakMap,L=new WeakMap,J=new WeakMap,_=new WeakMap,K=new WeakSet,P=function(A){if("function"==typeof Z(this,_,"f"))for(const[t,r]of A)Z(this,_,"f").call(this,t,r.value);},$=function(A,t){return "number"==typeof t.expiry&&t.expiry<=Date.now()&&("function"==typeof Z(this,_,"f")&&Z(this,_,"f").call(this,A,t.value),this.delete(A))},Y=function(A,t){if(!Z(this,K,"m",$).call(this,A,t))return t.value},T=function(A,t){return t.expiry?Z(this,K,"m",Y).call(this,A,t):t.value},U=function(A,t){const r=t.get(A);return Z(this,K,"m",T).call(this,A,r)},z=function(A,t){var r;Z(this,O,"f").set(A,t),W(this,M,(r=Z(this,M,"f"),++r),"f"),Z(this,M,"f")>=Z(this,L,"f")&&(W(this,M,0,"f"),Z(this,K,"m",P).call(this,Z(this,H,"f")),W(this,H,Z(this,O,"f"),"f"),W(this,O,new Map,"f"));},V=function(A,t){Z(this,H,"f").delete(A),Z(this,K,"m",z).call(this,A,t);},X=function*(){for(const A of Z(this,H,"f")){const[t,r]=A;Z(this,O,"f").has(t)||Z(this,K,"m",$).call(this,t,r)||(yield A);}for(const A of Z(this,O,"f")){const[t,r]=A;Z(this,K,"m",$).call(this,t,r)||(yield A);}},Symbol.iterator)](){for(const A of Z(this,O,"f")){const[t,r]=A;Z(this,K,"m",$).call(this,t,r)||(yield [t,r.value]);}for(const A of Z(this,H,"f")){const[t,r]=A;Z(this,O,"f").has(t)||Z(this,K,"m",$).call(this,t,r)||(yield [t,r.value]);}}*entriesDescending(){let A=[...Z(this,O,"f")];for(let t=A.length-1;t>=0;--t){const r=A[t],[e,v]=r;Z(this,K,"m",$).call(this,e,v)||(yield [e,v.value]);}A=[...Z(this,H,"f")];for(let t=A.length-1;t>=0;--t){const r=A[t],[e,v]=r;Z(this,O,"f").has(e)||Z(this,K,"m",$).call(this,e,v)||(yield [e,v.value]);}}*entriesAscending(){for(const[A,t]of Z(this,K,"m",X).call(this))yield [A,t.value];}get size(){if(!Z(this,M,"f"))return Z(this,H,"f").size;let A=0;for(const t of Z(this,H,"f").keys())Z(this,O,"f").has(t)||A++;return Math.min(Z(this,M,"f")+A,Z(this,L,"f"))}get maxSize(){return Z(this,L,"f")}get maxAge(){return Z(this,J,"f")}entries(){return this.entriesAscending()}forEach(A,t=this){for(const[r,e]of this.entriesAscending())A.call(t,e,r,this);}get[Symbol.toStringTag](){return "QuickLRU"}toString(){return `QuickLRU(${this.size}/${this.maxSize})`}[Symbol.for("nodejs.util.inspect.custom")](){return this.toString()}}let tA=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117];"undefined"!=typeof Int32Array&&(tA=new Int32Array(tA));const rA=(A,t)=>{let r=0===t?0:-1^t;for(let t=0;t<A.length;t++)r=tA[255&(r^A[t])]^r>>>8;return -1^r};class eA extends Error{}class vA extends Error{}class nA extends eA{}class jA extends eA{}class fA extends eA{code="CRAM_BUFFER_OVERRUN"}const sA=async function(A={}){var t=A,r=!!globalThis.WorkerGlobalScope;if(globalThis.window||r)try{new URL(".","");}catch{}var e,v,n,j,f=console.log.bind(console),s=console.error.bind(console),b=!1,i=!1;function o(){var A=S.buffer;E=new Int8Array(A),I=new Int16Array(A),t.HEAPU8=k=new Uint8Array(A),t.HEAP32=c=new Int32Array(A),d=new Uint32Array(A),l=new Float32Array(A),h=new Float64Array(A),C=new BigInt64Array(A),new BigUint64Array(A);}function a(A){throw t.onAbort?.(A),s(A=`Aborted(${A})`),b=!0,A=new WebAssembly.RuntimeError(A+". Build with -sASSERTIONS for more info."),n?.(A),A}class g{name="ExitStatus";constructor(A){this.message=`Program terminated with exit(${A})`,this.status=A;}}var I,c,C,E,l,h,d,k,B=A=>{for(;A.length>0;)A.shift()(t);},q=[],u=[],Q=()=>{var A=t.preRun.shift();u.push(A);},x=!0,m=0,N={},w=A=>{if(!(A instanceof g||"unwind"==A))throw A},p=A=>{throw e=A,x||m>0||(t.onExit?.(A),b=!0),new g(A)},y=[null,[],[]],D=new TextDecoder;if(t.noExitRuntime&&(x=t.noExitRuntime),t.print&&(f=t.print),t.printErr&&(s=t.printErr),t.preInit)for("function"==typeof t.preInit&&(t.preInit=[t.preInit]);t.preInit.length>0;)t.preInit.shift()();t.getValue=function(A,t="i8"){switch(t.endsWith("*")&&(t="*"),t){case"i1":case"i8":return E[A];case"i16":return I[A>>1];case"i32":return c[A>>2];case"i64":return C[A>>3];case"float":return l[A>>2];case"double":return h[A>>3];case"*":return d[A>>2];default:a(`invalid type for getValue: ${t}`);}};var F,S,G,R={e:()=>a(""),d:()=>{x=!1,m=0;},a:(A,t)=>{if(N[A]&&(clearTimeout(N[A].id),delete N[A]),!t)return 0;var r=setTimeout(()=>{delete N[A],(A=>{if(!b)try{A();}catch(A){w(A);}finally{if(!(x||m>0))try{e=A=e,p(A);}catch(A){w(A);}}})(()=>F(A,performance.now()));},t);return N[A]={id:r,u:t},0},b:A=>{var t=k.length;if((A>>>=0)>2147483648)return !1;for(var r=1;r<=4;r*=2){var e=t*(1+.2/r);e=Math.min(e,A+100663296);A:{e=(Math.min(2147483648,65536*Math.ceil(Math.max(A,e)/65536))-S.buffer.byteLength+65535)/65536|0;try{S.grow(e),o();var v=1;break A}catch(A){}v=void 0;}if(v)return !0}return !1},g:A=>{e=A,p(A);},f:(A,t,r,e)=>{for(var v=0,n=0;n<r;n++){var j=d[t>>2],b=d[t+4>>2];t+=8;for(var i=0;i<b;i++){var o=A,a=k[j+i],g=y[o];if(0===a||10===a){o=1===o?f:s;for(var I=(a=0)+void 0;g[a]&&!(a>=I);)++a;o(a=D.decode(g.buffer?g.subarray(0,a):new Uint8Array(g.slice(0,a)))),g.length=0;}else g.push(a);}v+=b;}return d[e>>2]=v,0},c:p};return G=await async function(){function A(A){return A=G=A.exports,t._malloc=A.j,t._free=A.k,t._arith_uncompress=A.l,t._fqz_decompress=A.m,t._rans_uncompress=A.n,t._rans_uncompress_4x16=A.o,t._tok3_decode_names=A.p,t._bz2_uncompress=A.q,t._zlib_uncompress=A.r,t._batch_itf8_decode=A.s,F=A.t,S=A.h,o(),G}var r={a:R};return t.instantiateWasm?new Promise(e=>{t.instantiateWasm(r,(t,r)=>{e(A(t));});}):(j??=function(A){for(var t,r=0,e=124004,v=new Uint8Array(e);r<e;++r)t=A.charCodeAt(r),v[r]=~t>>8&t;return v}('\0asm\0\0\0d`\0````\0`\0\0`\0``\0``|``~~`|\0`~~+aa\0\nab\0ac\0ad\0ae\0af\0ag\0;:\b\0\0\v\t\b\f\0\r\0\0\tp\bA\v5\rh\0i\0@j\0\bk\0l\0?m\0>n\0=o\0:p\x009q\x008r\x007s\x005t\0.\t\0A\v4$&<;6/0123\f\nÕÓ:\f\b@ \0E\r\0 \0A\bk" \0Ak(\0"Axq"\0j!@ Aq\r\0 AqE\r (\0"k"AÄþ\0(\0I\r \0 j!\0@@@AÈþ\0(\0 G@ (\f! AÿM@ (\b"G\rA´þ\0A´þ\0(\0A~ Avwq6\0\f\v (! G@ (\b" 6\f 6\b\f\v (" Aj ("E\r Aj\v!@ ! "Aj! ("\r\0 Aj! ("\r\0\v A\x006\0\f\v ("AqAG\rA¼þ\0 \x006\0 A~q6 \0Ar6 \x006\0\v 6\f 6\b\f\vA\0!\v E\r\0@ ("At"(ä F@ Aäj 6\0 \rA¸þ\0A¸þ\0(\0A~ wq6\0\f\v@ (F@ 6\f\v 6\v E\r\v 6 ("@ 6 6\v ("E\r\0 6 6\v O\r\0 ("AqE\r\0@@@@ AqE@AÌþ\0(\0 F@AÌþ\0 6\0AÀþ\0AÀþ\0(\0 \0j"\x006\0 \0Ar6 AÈþ\0(\0G\rA¼þ\0A\x006\0AÈþ\0A\x006\0\vAÈþ\0(\0" F@AÈþ\0 6\0A¼þ\0A¼þ\0(\0 \0j"\x006\0 \0Ar6 \0 j \x006\0\v Axq \0j!\0 (\f! AÿM@ (\b" F@A´þ\0A´þ\0(\0A~ Avwq6\0\f\v 6\f 6\b\f\v (!\b G@ (\b" 6\f 6\b\f\v (" Aj ("E\r Aj\v!@ ! "Aj! ("\r\0 Aj! ("\r\0\v A\x006\0\f\v A~q6 \0Ar6 \0 j \x006\0\f\vA\0!\v \bE\r\0@ ("At"(ä F@ Aäj 6\0 \rA¸þ\0A¸þ\0(\0A~ wq6\0\f\v@ \b(F@ \b 6\f\v \b 6\v E\r\v \b6 ("@ 6 6\v ("E\r\0 6 6\v \0Ar6 \0 j \x006\0 G\r\0A¼þ\0 \x006\0\v \0AÿM@ \0AøqAÜþ\0j!A´þ\0(\0"A \0Avt"\0qE@A´þ\0 \0 r6\0 \f\v (\b\v!\0 6\b \0 6\f 6\f \x006\b\vA! \0AÿÿÿM@ \0A& \0A\bvg"kvAq AtrA>s!\v 6 B\x007 AtAäj!@A¸þ\0(\0"A t"qE@A¸þ\0 r6\0 6\0A!A\b\f\v \0A AvkA\0 AGt! (\0!@ "(Axq \0F\r Av! At! Aqj"("\r\0\v 6A! !A\b\v!\0 "\f\v (\b" 6\f 6\bA!\0A\b!A\0\v! j 6\0 6\f \0 j 6\0AÔþ\0AÔþ\0(\0Ak"\0A \06\0\v\vÁ(\v#\0Ak"\n$\0@@@@@@@@@@ \0AôM@A´þ\0(\0"A \0A\vjAøq \0A\vI"Av"\0v"Aq@@ AsAq \0j"At"AÜþ\0j"\0 (ä~"(\b"F@A´þ\0 A~ wq6\0\f\v \x006\f \0 6\b\v A\bj!\0 Ar6 j" (Ar6\f\v\v A¼þ\0(\0"\bM\r @@A \0t"A\0 kr \0tqh"At"AÜþ\0j" (ä~"\0(\b"F@A´þ\0 A~ wq"6\0\f\v 6\f 6\b\v \0 Ar6 \0 j" k"Ar6 \0 j 6\0 \b@ \bAxqAÜþ\0j!AÈþ\0(\0! A \bAvt"qE@A´þ\0 r6\0 \f\v (\b\v! 6\b 6\f 6\f 6\b\v \0A\bj!\0AÈþ\0 6\0A¼þ\0 6\0\f\v\vA¸þ\0(\0"\vE\r \vhAt(ä"(Axq k! !@@ ("\0E@ ("\0E\r\v \0(Axq k" I"! \0 ! \0!\f\v\v (!\t (\f"\0G@ (\b" \x006\f \0 6\b\f\n\v (" Aj ("E\r Aj\v!@ ! "\0Aj! \0("\r\0 \0Aj! \0("\r\0\v A\x006\0\f\t\vA! \0A¿K\r\0 \0A\vj"Axq!A¸þ\0(\0"E\r\0A!\bA\0 k! \0AôÿÿM@ A& A\bvg"\0kvAq \0AtkA>j!\b\v@@@ \bAt(ä"E@A\0!\0\f\vA\0!\0 A \bAvkA\0 \bAGt!@@ (Axq k" O\r\0 ! "\r\0A\0! !\0\f\v \0 (" AvAqj("F \0 !\0 At! \r\0\v\v \0 rE@A\0!A \bt"\0A\0 \0kr q"\0E\r \0hAt(ä!\0\v \0E\r\v@ \0(Axq k" I! ! \0 ! \0(" \0(\v"\0\r\0\v\v E\r\0 A¼þ\0(\0 kO\r\0 (!\b (\f"\0G@ (\b" \x006\f \0 6\b\f\b\v (" Aj ("E\r Aj\v!@ ! "\0Aj! \0("\r\0 \0Aj! \0("\r\0\v A\x006\0\f\v A¼þ\0(\0"M@AÈþ\0(\0!\0@ k"AO@ \0 j" Ar6 \0 j 6\0 \0 Ar6\f\v \0 Ar6 \0 j" (Ar6A\0!A\0!\vA¼þ\0 6\0AÈþ\0 6\0 \0A\bj!\0\f\t\v AÀþ\0(\0"I@AÀþ\0 k"6\0AÌþ\0AÌþ\0(\0"\0 j"6\0 Ar6 \0 Ar6 \0A\bj!\0\f\t\vA\0!\0 A/j"A(\0@A(\0\f\vAB7\0AB 7\0A \nA\fjApqAتժs6\0A A\x006\0AðA\x006\0A \v"j"A\0 k"q" M\r\bAì(\0"@Aä(\0"\b j"\t \bM\r\t \tI\r\t\v@Að-\0\0AqE@@@@@AÌþ\0(\0"@Aô!\0@ \0(\0"\b M@ \b \0(jI\r\v \0(\b"\0\r\0\v\vA\0"AF\r !A(\0"\0Ak" q@ k jA\0 \0kqj!\v M\rAì(\0"\0@Aä(\0" j" M\r \0 I\r\v "\0 G\r\f\v k q"" \0(\0 \0(jF\r !\0\v \0AF\r A0j M@ \0!\f\vA(\0" kjA\0 kq"AF\r j! \0!\f\v AG\r\vAðAð(\0Ar6\0\v !A\0!\0 AF\r \0AF\r \0 M\r \0 k" A(jM\r\vAäAä(\0 j"\x006\0Aè(\0 \0I@Aè \x006\0\v@AÌþ\0(\0"@Aô!\0@ \0(\0" \0("jF\r \0(\b"\0\r\0\v\f\vAÄþ\0(\0"\0A\0 \0 ME@AÄþ\0 6\0\vA\0!\0Aø 6\0Aô 6\0AÔþ\0A6\0AØþ\0A(\x006\0AA\x006\0@ \0At" AÜþ\0j"6ä~ 6è~ \0Aj"\0A G\r\0\vAÀþ\0 A(k"\0Ax kAq"k"6\0AÌþ\0 j"6\0 Ar6 \0 jA(6AÐþ\0A(\x006\0\f\v M\r K\r \0(\fA\bq\r \0 j6AÌþ\0 Ax kAq"\0j"6\0AÀþ\0AÀþ\0(\0 j" \0k"\x006\0 \0Ar6 jA(6AÐþ\0A(\x006\0\f\vA\0!\0\f\vA\0!\0\f\vAÄþ\0(\0 K@AÄþ\0 6\0\v j!Aô!\0@@ \0(\0"G@ \0(\b"\0\r\f\v\v \0-\0\fA\bqE\r\vAô!\0@@ \0(\0" M@ \0(j"I\r\v \0(\b!\0\f\v\vAÀþ\0 A(k"\0Ax kAq"k"6\0AÌþ\0 j"6\0 Ar6 \0 jA(6AÐþ\0A(\x006\0 A\' kAqjA/k"\0 \0 AjI"A6 Aü)\x007 Aô)\x007\bAü A\bj6\0Aø 6\0Aô 6\0AA\x006\0 Aj!\0@ \0A6 \0A\bj \0Aj!\0 I\r\0\v F\r\0 (A~q6 k"Ar6 6\0 AÿM@ AøqAÜþ\0j!\0A´þ\0(\0"A Avt"qE@A´þ\0 r6\0 \0\f\v \0(\b\v! \0 6\b 6\fA\f!A\b\f\vA!\0 AÿÿÿM@ A& A\bvg"\0kvAq \0AtrA>s!\0\v \x006 B\x007 \0AtAäj!@@A¸þ\0(\0"A \0t"qE@A¸þ\0 r6\0 6\0\f\v A \0AvkA\0 \0AGt!\0 (\0!@ "(Axq F\r \0Av! \0At!\0 Aqj"("\r\0\v 6\v 6A\b! "!\0A\f\f\v (\b"\0 6\f 6\b \x006\bA\0!\0A!A\f\v j 6\0 j \x006\0\vAÀþ\0(\0"\0 M\r\0AÀþ\0 \0 k"6\0AÌþ\0AÌþ\0(\0"\0 j"6\0 Ar6 \0 Ar6 \0A\bj!\0\f\vA°þ\0A06\0A\0!\0\f\v \0 6\0 \0 \0( j6 Ax kAqj"\b Ar6 Ax kAqj" \bj"k!@AÌþ\0(\0 F@AÌþ\0 6\0AÀþ\0AÀþ\0(\0 j"\x006\0 \0Ar6\f\vAÈþ\0(\0 F@AÈþ\0 6\0A¼þ\0A¼þ\0(\0 j"\x006\0 \0Ar6 \0 j \x006\0\f\v ("\0AqAF@ \0Axq!\t (\f!@ \0AÿM@ (\b" F@A´þ\0A´þ\0(\0A~ \0Avwq6\0\f\v 6\f 6\b\f\v (!@ G@ (\b"\0 6\f \x006\b\f\v@ ("\0 Aj ("\0E\r Aj\v!@ ! \0"Aj! \0("\0\r\0 Aj! ("\0\r\0\v A\x006\0\f\vA\0!\v E\r\0@ ("\0At"(ä F@ Aäj 6\0 \rA¸þ\0A¸þ\0(\0A~ \0wq6\0\f\v@ (F@ 6\f\v 6\v E\r\v 6 ("\0@ \x006 \0 6\v ("\0E\r\0 \x006 \0 6\v \tj! \tj"(!\0\v \0A~q6 Ar6 j 6\0 AÿM@ AøqAÜþ\0j!\0A´þ\0(\0"A Avt"qE@A´þ\0 r6\0 \0\f\v \0(\b\v! \0 6\b 6\f \x006\f 6\b\f\vA! AÿÿÿM@ A& A\bvg"\0kvAq \0AtrA>s!\v 6 B\x007 AtAäj!\0@@A¸þ\0(\0"A t"qE@A¸þ\0 r6\0 \0 6\0\f\v A AvkA\0 AGt! \0(\0!@ "\0(Axq F\r Av! At! \0 Aqj"("\r\0\v 6\v \x006 6\f 6\b\f\v \0(\b" 6\f \0 6\b A\x006 \x006\f 6\b\v \bA\bj!\0\f\v@ \bE\r\0@ ("At"(ä F@ Aäj \x006\0 \0\rA¸þ\0 A~ wq"6\0\f\v@ \b(F@ \b \x006\f\v \b \x006\v \0E\r\v \0 \b6 ("@ \0 6 \x006\v ("E\r\0 \0 6 \x006\v@ AM@ j"\0Ar6 \0 j"\0 \0(Ar6\f\v Ar6 j" Ar6 j 6\0 AÿM@ AøqAÜþ\0j!\0A´þ\0(\0"A Avt"qE@A´þ\0 r6\0 \0\f\v \0(\b\v! \0 6\b 6\f \x006\f 6\b\f\vA!\0 AÿÿÿM@ A& A\bvg"\0kvAq \0AtrA>s!\0\v \x006 B\x007 \0AtAäj!@@ A \0t"qE@A¸þ\0 r6\0 6\0 6\f\v A \0AvkA\0 \0AGt!\0 (\0!@ "(Axq F\r \0Av! \0At!\0 Aqj"("\r\0\v 6 6\v 6\f 6\b\f\v (\b"\0 6\f 6\b A\x006 6\f \x006\b\v A\bj!\0\f\v@ \tE\r\0@ ("At"(ä F@ Aäj \x006\0 \0\rA¸þ\0 \vA~ wq6\0\f\v@ \t(F@ \t \x006\f\v \t \x006\v \0E\r\v \0 \t6 ("@ \0 6 \x006\v ("E\r\0 \0 6 \x006\v@ AM@ j"\0Ar6 \0 j"\0 \0(Ar6\f\v Ar6 j" Ar6 j 6\0 \b@ \bAxqAÜþ\0j!\0AÈþ\0(\0!A \bAvt" qE@A´þ\0 r6\0 \0\f\v \0(\b\v! \0 6\b 6\f \x006\f 6\b\vAÈþ\0 6\0A¼þ\0 6\0\v A\bj!\0\v \nAj$\0 \0\vá@ \0@@A¨(\0"Aÿ\0K\r\0 -\0°AG\r\0 At(°!\vA\0 (\0 \0F\r\0A \0 (F\r\0A \0 (\bF\r\0A \0 (\fF\r\0A \0 (F\r\0A \0 (F\r\0A \0 (F\r\0A \0 (F\r\0A\b \0 ( F\r\0 ($ \0G\rA\t\vAt j"\0(PE@AëA-\v \0A\x006P\v\vAAÎ\0\v\f\b E@A\0\v \0As!\0 AO@@ AqE@ !\f\v -\0\0 \0sAÿqAt( < \0A\bvs!\0 Aj"AqE@ Ak!\f\v -\0 \0sAÿqAt( < \0A\bvs!\0 Aj"AqE@ Ak!\f\v -\0 \0sAÿqAt( < \0A\bvs!\0 Aj"AqE@ Ak!\f\v -\0 \0sAÿqAt( < \0A\bvs!\0 Aj! Ak!\v An"\bAll!\n@ \bAk"\tE@\f\v !@ ( s"AvAüq( \\ AvAüq( T AvAüq( L AÿqAt( Dsss! (\f s"AvAüq( \\ AvAüq( T AvAüq( L AÿqAt( Dsss! (\b s"AvAüq( \\ AvAüq( T AvAüq( L AÿqAt( Dsss! ( s"AvAüq( \\ AvAüq( T AvAüq( L AÿqAt( Dsss! (\0 \0s"\0AvAüq( \\ \0AvAüq( T \0AvAüq( L \0AÿqAt( Dsss!\0 Aj! \tAk"\t\r\0\v \bAljAk!\v \nj! Aj! ( (\f (\b ( (\0 \0s"\0A\bv \0AÿqAt( <s"\0A\bv \0AÿqAt( <s"\0A\bv \0AÿqAt( <s"\0AÿqAt( < ss \0A\bvs"\0A\bv \0AÿqAt( <s"\0A\bv \0AÿqAt( <s"\0A\bv \0AÿqAt( <s"\0AÿqAt( < ss \0A\bvs"\0A\bv \0AÿqAt( <s"\0A\bv \0AÿqAt( <s"\0A\bv \0AÿqAt( <s"\0AÿqAt( < ss \0A\bvs"\0A\bv \0AÿqAt( <s"\0A\bv \0AÿqAt( <s"\0A\bv \0AÿqAt( <s"\0AÿqAt( < ss \0A\bvs"\0A\bv \0AÿqAt( <s"\0A\bv \0AÿqAt( <s"\0A\bv \0AÿqAt( <s"\0A\bv \0AÿqAt( <s!\0\v AK@@ -\0\0 \0sAÿqAt( < \0A\bvs"\0A\bv -\0 \0sAÿqAt( <s"\0A\bv -\0 \0sAÿqAt( <s"\0A\bv -\0 \0sAÿqAt( <s"\0A\bv -\0 \0sAÿqAt( <s"\0A\bv -\0 \0sAÿqAt( <s"\0A\bv -\0 \0sAÿqAt( <s"\0A\bv -\0 \0sAÿqAt( <s!\0 A\bj! A\bk"AK\r\0\v\v@ E\r\0 -\0\0 \0sAÿqAt( < \0A\bvs!\0 AF\r\0 -\0 \0sAÿqAt( < \0A\bvs!\0 AF\r\0 -\0 \0sAÿqAt( < \0A\bvs!\0 AF\r\0 -\0 \0sAÿqAt( < \0A\bvs!\0 AF\r\0 -\0 \0sAÿqAt( < \0A\bvs!\0 AF\r\0 -\0 \0sAÿqAt( < \0A\bvs!\0 AF\r\0 -\0 \0sAÿqAt( < \0A\bvs!\0\v \0As\vÝ#\0Ak"$\0A¤(\0Aß·ÞG@$A¤Aß·Þ6\0\v@@A¨(\0"Aÿ\0K\r\0 -\0°AG\r\0 At(°!\v "E@Aø\0,"E\r@A¨(\0"Aÿ\0K\r\0 -\0°AG\r\0 At 6°\v\v A(j! AÐ\0j!@ (P@A!A\f\v \0 (\0M\rA\0\v!@ (T\r\0 ! \0 (,K\r\0 AÔ\0j!A!\f\v (XE@ (0 \0O@ AØ\0j!A!\f\vA AF!\v (\\E@ (4 \0O@ AÜ\0j!A!\f\vA AF!\v (`E@ (8 \0O@ Aà\0j!A!\f\vA AF!\v (dE@ (< \0O@ Aä\0j!A!\f\vA AF!\v (hE@ (@ \0O@ Aè\0j!A!\f\vA AF!\v (lE@ (D \0O@ Aì\0j!A!\f\vA AF!\v (pE@ (H \0O@ Að\0j!A\b!\f\vA\b AF!\v@@ (tE@ \0 (LK\r Aô\0j!A\t!\f\v AG\rAA#A\0!\f\vA\t AF!\v Atj"(\0"@ \v \0,"6\0 E@A\0!\f\v At"j \x006\0 jA6\0\f\v A6\0 Atj(\0!\v Aj$\0 \vj#\0Ak"$\0@ L\r\0 AÀq\r\0 k"A AI"- E@@ \0 A\r Ak"AÿK\r\0\v\v \0 \r\v Aj$\0\v\0 \0-\0\0A qE@ \0!\v\vW~@Aý\0(\0" \0B|Bøÿÿÿ|"BÿÿÿÿX@ §"\0?\0AtM\r \0\r\vA°þ\0A06\0A\vAý\0 \x006\0 \v\b\v \0E@ \b\v A@O@A°þ\0A06\0A\0\vA A\vjAxq A\vI! \0A\bk"("\tAxq!\b@ \tAqE@ AI\r Aj \bM@ ! \b kA(\0AtM\r\vA\0\f\v \bj!@ \bM@ \b k"AI\r \tAqrAr6 j" Ar6 (Ar6 +\f\vAÌþ\0(\0 F@AÀþ\0(\0 \bj"\b M\r \tAqrAr6 j" \b k"Ar6AÀþ\0 6\0AÌþ\0 6\0\f\vAÈþ\0(\0 F@A¼þ\0(\0 \bj" I\r@ k"AO@ \tAqrAr6 j"\b Ar6 j" 6\0 (A~q6\f\v \tAq rAr6 j" (Ar6A\0!\bA\0!\vAÈþ\0 \b6\0A¼þ\0 6\0\f\v ("Aq\r Axq \bj"\v I\r \v k!\f (\f!@ AÿM@ (\b" F@A´þ\0A´þ\0(\0A~ Avwq6\0\f\v 6\f 6\b\f\v (!\n@ G@ (\b" 6\f 6\b\f\v@ (" Aj ("E\r Aj\v!\b@ \b! "Aj!\b ("\r\0 Aj!\b ("\r\0\v A\x006\0\f\vA\0!\v \nE\r\0@ ("At"(ä F@ Aäj 6\0 \rA¸þ\0A¸þ\0(\0A~ wq6\0\f\v@ \n(F@ \n 6\f\v \n 6\v E\r\v \n6 ("@ 6 6\v ("E\r\0 6 6\v \fAM@ \tAq \vrAr6 \vj" (Ar6\f\v \tAqrAr6 j" \fAr6 \vj" (Ar6 \f+\v !\v \v"@ A\bj\v \b"E@A\0\v \0A|Ax \0Ak(\0"Aq Axqj" K# \0 \v\0 \0 Aý\0!"\0F@\v \0 n\vÕ#\0Ak"$\0 6\f#\0AÐk"$\0 6Ì A j"A\0A(ü\v\0 (Ì6ÈA\0 \0 AÈj AÐ\0j A\0HAAý\0Aý\0(\0"A_q6\0@@AÈý\0(\0E@AÈý\0AÐ\x006\0A´ý\0A\x006\0A¨ý\0B\x007\0AÄý\0(\0!AÄý\0 6\0\f\vA¨ý\0(\0\r\vAAý\0\r\vAý\0 \0 AÈj AÐ\0j A j \v!\0 Aý\0A\0A\0A¼ý\0(\0\0AÈý\0A\x006\0AÄý\0 6\0A´ý\0A\x006\0A¬ý\0(\0A¨ý\0B\x007\0A\0 \0\vAý\0Aý\0(\0 A qr6\0A\0\v AÐj$\0 Aj$\0\vØ#\0AЩk"\b$\0@ AI\r\0 AþÿÿÿK\r\0@ E@ \b"! E\r\v \0 j"A\bk!\f \bAjA\0A\bü\v\0 \0Aj! \0-\0\0!@@ A\fH\r\0@ \bAj AtjA6\0@@ E@ Aj" -\0\0"F\r Aj!A\0!\f\v AþL@ Aj! Ak!\f\v\f\v -\0! Aj! !\v E\r Aj \fI\r\0\v\v@ E\r\0@ \bAj AtjA6\0 \fO\r@ E@ Aj!A\0! Aj" -\0\0"\nG@ ! \n!\f\v \fO@\f\v -\0! Aj!\f\v AþJ\r Aj! Ak!\v E\r \fI\r\0\v\v \0k!\t\v \0 \tj!A\0!\t@ \bAj \tAtj"(\0@@ \f kAN@ ,\0\0"Aÿ\0q! A\0N@ Aj!\f\v ,\0"Aÿ\0q Atr! A\0N@ Aj!\f\v ,\0"Aÿ\0q Atr! A\0N@ Aj!\f\v ,\0"Aÿ\0q Atr! A\0N@ Aj!\f\v ,\0"Aÿ\0q Atr! A\0N@ Aj!\f\v -\0Aÿ\0q Atr! Aj!\f\v \fO@A\0! A\x006\0A\0\f\vA\0! ",\0\0"\nA\0N@ \n6\0 \n!A\f\v@ ,\0\0"\nAÿ\0q Atr! Aj! \nA\0N\r \fI\r\0\v\v 6\0 k\v \vj!\v j!\v \tAj"\tAG\r\0\v@ \0 F\r\0 \vA rA G@A\0!A\0! \vA I@@ Aj! \vAI \vAt!\v\r\0\v\v@ \bAj Atj" (\0 t6\0 ( t6 (\b t6\b (\f t6\f ( t6 ( t6 ( t6 ( t6 A\bj"AG\r\0\v\v \0kA\0!\nA\0!@ \bAj \nAtj(\0"\0@ \0A kK\r \0@ \bA\bj j \n \0ü\v\0\v \0Aq!\tA\0!A\0!@ \0AO@ \0A|q!\f@ jAt" \bAÐ(j"j ;\0 \bAé\0j" j \0;\0 Ar" jAt"\rj ;\0 \r j \0;\0 Ar" jAt"\rj ;\0 \bAé\0j \rj \0;\0 Ar" jAt"\rj ;\0 \bAé\0j \rj \0;\0 Aj" \fG\r\0\v \tE\r\v@ jAt"\f \bAÐ(jj ;\0 \bAé\0j \fj \0;\0 Aj! Aj" \tG\r\0\v\v \0 j!\v \nAj"\nAG\r\0\v A G\r\0Aj"\0 J\r\0 \b (\0\0"6\0 AI\r\0 \b (\0"\t6 \tAI\r\0 \b (\0\b"\n6\b \nAI\r\0 \b (\0\f"\v6\f \vAI\r\0 Aj!A\0!@ \0 AkN\r\0 Aøÿÿÿq"E\r\0 Ak!@@ j"\0 Aÿq" \bA\bj"j-\0\0:\0\0 \0 \tAÿq"j-\0\0:\0 AA\0 At" \bAé\0j"j/\0 A\fvl \bAÐ(j" j/\0j"AI"\rj"AA\0 At"j/\0 \tA\fvl j/\0j"AI"j"\tAA\0 \nAÿq"At"\fj/\0 \nA\fvl \f j/\0j"\nAI"j"\f-\0! \f-\0\0! \t-\0! \t-\0\0! -\0!\t -\0\0! \vAÿq"At"j/\0! j/\0! -\0! -\0\0! \0 j-\0\0:\0 \0 j-\0\0:\0 \0 Atr A\btr \r"Aÿq"\rj-\0\0:\0 \0 Atr \tA\btr "\tAÿq"j-\0\0:\0 \fAA\0 \vA\fvlj"AI"j"AA\0 \rAt"j/\0 A\fvl \bAÐ(j j/\0j"AI"\rj"AA\0 At"\vj/\0 \tA\fvl \v j/\0j"\tAI"j"\vAA\0 \nAtr A\btr \n "\nA\fv \nAÿq"At"\nj/\0l \n j/\0j"\nAI"j"\f-\0! \f-\0\0 \v-\0! \v-\0\0! -\0! -\0\0! Atr A\btr "Aÿq"\vAt"j/\0 j/\0 -\0! -\0\0 \0 j-\0\0:\0 \0 \v j-\0\0:\0 Atr A\btr \r! A\fvlj"\0Atr A\btr \0 \0AI"\0!\v \tAtr A\btr \t !\t \nAtr A\btr \n !\n A\bj! \fAA\0 \0j" O\r\0 I\r\v\v \b \v6\f \b \n6\b \b \t6 \b 6\0\v M@ !\f\v@ \b AqAtr"\0 \0(\0"A\fv Aÿq"At" \bAé\0jj/\0l \bAÐ(j j/\0j"6\0 j \bA\bj j-\0\0:\0\0@ AÿÿK\r\0 Aj O\r\0 \0 -\0\0 Atr -\0A\btr6\0 Aj!\v Aj" G\r\0\v !\f\v \vA\0!\v \bAЩj$\0 \vë\t#\0A\bk"\n$\0@@@ E\r\0A!@ \nj \0 j-\0\0"\b:\0\0 Aj! \b \tj!\t@ \bG\r\0A!\v Aj" O\r \0 j-\0\0"l \tj!\t E\r\0 \tH\r\0@ AÿJ\r \nj \b:\0\0 Aj! Ak"\r\0\v\v A\bN\r Aj! \tL\r \b! K\r\0\v\vA!\vA\0!A\0!@A\0! \f"\0L\r@@ \0Aj!\f \0 \nj-\0\0"\bj! \bAÿG\r\0 \f"\0J\r\v\v \bAÿF\r@ E\r\0 L\r\0@ Atj 6\0 Aj! Ak"E\r J\r\0\v\v Aj! J\r\0\v !\v\f\vA!\v\v \nA\bj$\0 \v\vÚ#\0A@j"B\x007 B\x007( B\x0070 B\x0078@@@@ @ Aq!@ AO@ A|q!\b@ A j"\v \nAtj"\f/\0Atj"\t \t/\0Aj;\0 \f/At \vj"\t \t/\0Aj;\0 \f/At \vj"\t \t/\0Aj;\0 \f/At \vj"\t \t/\0Aj;\0 \nAj"\n \bG\r\0\v E\r\v@ A j \nAtj/\0Atj"\t \t/\0Aj;\0 \nAj!\n Aj" G\r\0\v\v (\0!\n />"\r@A!\v\f\v /<E\rA!\vA\0!\r\f\v (\0!\n\vA\0!\r /:@A\r!\v\f\v /8@A\f!\v\f\v /6@A\v!\v\f\v /4@A\n!\v\f\v /2@A\t!\v\f\v /0@A\b!\v\f\v /.@A!\v\f\v /,@A!\v\f\v /*@A!\v\f\v /(@A!\v\f\v /&@A!\v\f\v /$@A!\v\f\v /""@A!\fA!\vA!\nA\0\f\v (\0"\0Aj6\0 \0AÀ6\0 (\0"\0Aj6\0 \0AÀ6\0A!\f\f\v \n \v \n \vI!A!\n@@ A j \nAtj/\0\r \nAj"\n \vG\r\0\v \v!\n\v \n \nK!\f /"!A\v!A!\t AÿÿqAK\rA AtkAþÿq /$"k"\bA\0H\r \bAt /&"k"\bA\0H\r \bAt /("k"\bA\0H\r \bAt /*"k"\bA\0H\r \bAt /,"k"\bA\0H\r \bAt /."k"\bA\0H\r \bAt /0"k"\bA\0H\r \bAt /2"k"\bA\0H\r \bAt /4"k"\bA\0H\r \bAt /6"k"\bA\0H\r \bAt /8"k"\bA\0H\r \bAt /:"k"\bA\0H\r \bAt /<"k"\bA\0H\r \bAt"\b \rI\r \b \rGA\0 \0E r\rA\0!\t A\0; ; j"; j";\b j";\n j";\f j"; j"; j"; j"; j"; j"; j"; j"; j;@ E\r\0 AG@ Aq A~q!\b@ \tAtj/\0"@ Atj" /\0"Aj;\0 Atj \t;\0\v \tAr"Atj/\0"@ Atj" /\0"Aj;\0 Atj ;\0\v \tAj"\t \bG\r\0\vE\r\v \tAtj/\0"E\r\0 Atj/\0Atj \t;\0\vA!A\0!A\0!A\0!A\0!@@@ \0Ak\0\vA!\t \fA\tK\rA!Aàä\0!A ä\0!A!\f\vA!\t \fA\tK\rAàå\0!A å\0!A!A\0!\vA \ft"Ak! (\0!A\0! \f!A\0!A\0!\rA!\b@A t!@@A\0 Atj/\0"AjK\r\0 I@A\0!Aà\0\f\v kAt"\0j/\0! \0 j-\0\0\v!A \n k"t!\t \r vAtj!\0 !@ \0 \tj"Atj" ; :\0 :\0\0 \r\0\vA \nAkt!\t@ \t"\0Av!\t \0 \rq\r\0\v A j \nAtj" /\0Ak";\0 \0Ak \rq \0jA\0 \0!\r Aj! AÿÿqE@ \n \vF\r Atj/\0Atj/\0!\n\v \n \fM\r\0 \r q"\0 \bF\r\0\vA \n \f "k"t! \n \vI@ \v k!\b \n!\t@@ A j \tAtj/\0k"A\0L\r At! Aj" j"\t \vI\r\0\v \b!\vA t!\vA!\t j"AÔKq\r AÐKq\r (\0" \0Atj"\t \f:\0 \t :\0\0 \t Atj" kAv; \0!\b\f\v\v \r@ \rAtj"\0A\0; \0 :\0 \0AÀ\0:\0\0\v (\0 Atj6\0\v \f6\0A\0!\t\v \t\v\t\0 l\b\vÊ \0(\b"@ \v \0(\f"@ (@A\0!@ (\b Atj(\0 Aj" (I\r\0\v\v (\b \v \0(A\0J@ \0Aj!A\0!@ Alj(\0 Aj" \0(AtH\r\0\v\vA\0! \0(A\0J@@ \0(\0 A\flj(\b Aj" \0(H\r\0\v\v \0\t\vì@@@@ Aä\0O@ AÎ\0O@ AÀ=O@ AÂ×/O@ AëÜI\r \0 AëÜn"Aì£|l j"AÂ×/n"A0j:\0 \0Aj\f\v AâO@ \0 Aân"A0r:\0\0 \0!\f\v \0 AÀ=n"A0j:\0\0 \0Aj\f\v A O@ \0 A n"A0r:\0\0 \0!\f\v \0 AÎ\0n"A0r:\0\0 \0Aj\f\v AèO@ \0! AÿÿqAèn\f\b\v \0 AÿÿqAä\0n"A0r:\0\0 \0Aj\f\b\v A\nO@ \0 AÿqA\nn"A0r:\0\0 \0!\f\t\v \0 E\r\t \0 A0r:\0\0 \0Aj \0k\v AÂ×/n"! \0Aj\v! \0 A0r:\0\0 A¾¨Pl j"Aân"A0j:\0\0\v AÓ{l j"AÀ=n"A0j:\0 Aj\v" AÀûBl j"A n"A0j:\0\0\v Aàòyl j"AÎ\0n"A0j:\0 Aj\v! Að±l j"Aèn\v! A0j:\0\0 Axl j"Aä\0n"A0j:\0 Aj\v" Al j"A\nn"A0j:\0\0\v Aöl jA0j:\0 Aj\v \0k\vÛ@@@@@@@@@@ Ak\t\b\0\t\v \0 AÂ×/n"A0j:\0\0 \0Aj!\0 A¾¨Pl j!\v \0 Aân"A0j:\0\0 \0Aj!\0 AÓ{l j!\v \0 AÀ=n"A0j:\0\0 \0Aj!\0 AÀûBl j!\v \0 A n"A0j:\0\0 \0Aj!\0 Aàòyl j!\v \0 AÎ\0n"A0j:\0\0 \0Aj!\0 Að±l j!\v \0 Aèn"A0j:\0\0 \0Aj!\0 Axl j!\v \0 Aä\0n"A0j:\0\0 \0Aj!\0 Al j!\v \0 A\nn"A0j:\0\0 \0Aj!\0 Avl j!\v \0 A0j:\0\0\v \v#\t~#\0A k"\r$\0@ E\r\0 \0 j!@@@@@@@@@ \0-\0\0"A\bq@ \0Aj!\v@ AN@ \0,\0"Aÿ\0q!\f A\0N@ \0Aj!\f\v \0,\0"Aÿ\0q \fAtr!\f A\0N@ \0Aj!\f\v \0,\0"Aÿ\0q \fAtr!\f A\0N@ \0Aj!\f\v \0,\0"Aÿ\0q \fAtr!\f A\0N@ \0Aj!\f\v \0,\0"Aÿ\0q \fAtr!\f A\0N@ \0Aj!\f\v \0-\0Aÿ\0q \fAtr!\f \0Aj!\f\v AF\r\t \v,\0\0"A\0N\r \v!@ ,\0\0"Aÿ\0q \fAtr!\f Aj! A\0N\r I\r\0\v\v \vk!\f\b\v \0Aj!\b AqE@@ AN@ \0,\0"Aÿ\0q! A\0N@ \0Aj!\f\v \0,\0"Aÿ\0q Atr! A\0N@ \0Aj!\f\v \0,\0"Aÿ\0q Atr! A\0N@ \0Aj!\f\v \0,\0"Aÿ\0q Atr! A\0N@ \0Aj!\f\v \0,\0"Aÿ\0q Atr! A\0N@ \0Aj!\f\v \0-\0Aÿ\0q Atr! \0Aj!\f\vA\0 AF\r \b,\0\0"\0A\0N\r \b!@ ,\0\0"\0Aÿ\0q Atr! Aj! \0A\0N\r I\r\0\v\v \bk\f\v E\r Ak!\n (\0!\f\vA! !\f\f\v \0!A\v"\0 \bj!\b \0Asj!\n E@ 6\0 \b"\fE\r\t \f! (\0\f\v (\0 I\r\v 6\0 \v! AÀ\0q!A\0!\0@@@@@ À"A\0H\r\0 \r\0 \f\v \b"\0E@A\0!A\0!\0\f\b\vA\0! A\0H"\r A\0 ! \0A\0 \v! \rB\x007\b \rB\x007\0 \f\v \rB\x007\b \rB\x007\0 \nE\r@A\0 \b-\0\0"A "\vAI\r\0A\b \vAF\r\0A \vAI\r\0A!A! \vAK\rA\v!A! \nAF\r@@ \rj \bj-\0\0:\0\0 Aj! Aj" \vO\r\0 \nI\r\v\v \vIA\0!\r AÿqE\r\v \b Aÿq"j" \rAj*!\v \r("I\r \0 \0 ! \vj!\b \n \vjk!\n ! \0\v!\v Aq! E@A\0!A\0! !A\0!\f\v@@@ @@ \bkAN@ \b,\0\0"Aÿ\0q! A\0N@ \bAj!\f\v \b,\0"Aÿ\0q Atr! A\0N@ \bAj!\f\v \b,\0"Aÿ\0q Atr! A\0N@ \bAj!\f\v \b,\0"Aÿ\0q Atr! A\0N@ \bAj!\f\v \b,\0"Aÿ\0q Atr! A\0N@ \bAj!\f\v \b-\0Aÿ\0q Atr! \bAj!\f\vA\0!A\0 \b O\r \b,\0\0"A\0N\r \b!@ ,\0\0"Aÿ\0q Atr! Aj! A\0N\r I\r\0\v\v \bk\f\v !A\v" \bj"kAN@ ,\0\0"Aÿ\0q! A\0N@ Aj!\f\v ,\0"Aÿ\0q Atr! A\0N@ Aj!\f\v ,\0"Aÿ\0q Atr! A\0N@ Aj!\f\v ,\0"Aÿ\0q Atr! A\0N@ Aj!\f\v ,\0"Aÿ\0q Atr! A\0N@ Aj!\f\v -\0Aÿ\0q Atr! Aj!\f\vA\0! O\r ,\0\0"A\0N\r !@ ,\0\0"\tAÿ\0q Atr! Aj! \tA\0N\r I\r\0\v\v k\f\v !A\v K\r j!\v \b j! Aq@A\0! Av" k" K"!\f\v \b@@ kAN@ ,\0\0"Aÿ\0q! A\0N@ Aj!\f\v ,\0"Aÿ\0q Atr! A\0N@ Aj!\f\v ,\0"Aÿ\0q Atr! A\0N@ Aj!\f\v ,\0"Aÿ\0q Atr! A\0N@ Aj!\f\v ,\0"Aÿ\0q Atr! A\0N@ Aj!\f\v -\0Aÿ\0q Atr! Aj!\f\vA\0!A\0 O\r ,\0\0"A\0N\r !@ ,\0\0"\tAÿ\0q Atr! Aj! \tA\0N\r I\r\0\v\v k\f\v !A\v j"j! \n k!A\0! Av"! & \v"! \r\vA\0!\f\v \n j"I\r \n k!\n \bj!\b\v@ \nE@A\0!\f\v A q@ \nK\r (\0K\r E\r \b ü\n\0\0\f\v \b \n AA Aq"\bAA \b \0"E\r\v @ E\r \r 5\x007 -\0\0"\bA \b"M\r ! Aj" j! Asj!" \rAj!A\0!\b#\0A\bk"\n$\0 \nA\0A\bü\v\0@ "E\r\0 !! AO@@@ !B}"#B"P@\f\v B|Bþÿÿÿÿÿÿÿÿ\0!@ \n §j"-\0\0AtjA6\0 \n -\0AtjA6\0 \n -\0AtjA6\0 \n -\0AtjA6\0 \n -\0AtjA6\0 \n -\0AtjA6\0 \n -\0AtjA6\0 \n -\0AtjA6\0 B\b|! B|" R\r\0\v #BB\0R\r\v \n §j"-\0\0AtjA6\0 \n -\0AtjA6\0 \n -\0AtjA6\0 \n -\0AtjA6\0 B|!\v AqE\r\v !B!@ \n §j-\0\0AtjA6\0 B|! B|" R\r\0\v\v \v!@@ P\r\0 (\0j! §j! E@A\0!\t@ O\r@@@ \n -\0\0"Atj(\0E\r\0 \t,\0\0"Aÿ\0q! A\0N@ \tAj!\t \r\f\v \t,\0"Aÿ\0q Atr! A\0N@ \tAj!\t \r\f\v \t,\0"Aÿ\0q Atr! A\0N@ \tAj!\t \r\f\v \t,\0"Aÿ\0q Atr! A\0N@ \tAj!\t \r\f\v \t,\0"Aÿ\0q Atr! A\0N@ \tAj!\t \r\f\v \t-\0 \tAj!\tAÿ\0q Atr"\r\v :\0\0 !\f\v j" O\r Aj"E\r\0 ü\v\0\v Aj! Aj" I\r\0\v\f\v "§j!@ O\r@@ \n -\0\0"Atj(\0E\r\0@ kAN@ ,\0\0"Aÿ\0q!\t A\0N@ Aj!\f\v ,\0"Aÿ\0q \tAtr!\t A\0N@ Aj!\f\v ,\0"Aÿ\0q \tAtr!\t A\0N@ Aj!\f\v ,\0"Aÿ\0q \tAtr!\t A\0N@ Aj!\f\v ,\0"Aÿ\0q \tAtr!\t A\0N@ Aj!\f\v -\0Aÿ\0q \tAtr!\t Aj!\f\v O\rA\0!\t ",\0\0"A\0N@ !\tA\f\v@ ,\0\0"Aÿ\0q \tAtr!\t Aj! A\0N\r I\r\0\v\v k\v j! \tE\r\0 \tj" O\r \tAj"E@ !\f\v ü\v\0 !\f\v :\0\0\v Aj! Aj" I\r\0\v\v \vk¬7\0 \v!\b\v \nA\bj$\0 \bE\r \r(! A\0!\v A\0H@ \v " AF" \r(E\r §!\v \0@ \0\v 6\0\f\vA\0!A\0!\0\v \f \0\f\v Aj" O\r \0 j-\0\0"E\r@ E@ \fAþÿÿÿK\r \f\b"E\r \f6\0 !\f\v \f (\0G\r\v Aj!\b \f \f n" lk!@ \nAt"\t \rA\bj"\vj \nKj6\0A\0! \rAj" \tj \n \v \tAk"j(\0 j(\0jA\0\v6\0 \0 \bj! \rAj \tj!\t@ \bkAN@ ,\0\0"Aÿ\0q! A\0N@ Aj!\f\v ,\0"Aÿ\0q Atr! A\0N@ Aj!\f\v ,\0"Aÿ\0q Atr! A\0N@ Aj!\f\v ,\0"Aÿ\0q Atr! A\0N@ Aj!\f\v ,\0"Aÿ\0q Atr! A\0N@ Aj!\f\v -\0Aÿ\0q Atr! Aj!\f\v \bM@ \tA\x006\0A\0\f\v ",\0\0"\vA\0N@ \t \v6\0 \v!A\f\v@ ,\0\0"\vAÿ\0q Atr! Aj! \vA\0N\r I\r\0\v\v \t 6\0 k\v \bj"\b K\r Ak O\r |! \nAj"\n G\r\0\v \b|" V\r \f\b"E\r §!A\0!@ \r At"\v \rA\bjj(\0"6 \bI\r \0 \bj \bk \rAj" \vj(\0j \rAjE\r \r( G\r \rAj \vj(\0 \bj!\b Aj" G\r\0\v \f \' \f6\0\v !\f\v A\0!\f\v A\0!\v \rA j$\0 \vY \0 \0(H"Ak r6H \0(\0"A\bq@ \0 A r6\0A\v \0B\x007 \0 \0(,"6 \0 6 \0 \0(0j6A\0\vä>~#\0A°k"$\0@ E\r\0 \0 j!\n@ @@ \0-\0\0"\bA\bq@ \0Aj!@ AN@ \0,\0"Aÿ\0q! A\0N@ \0Aj!\f\v \0,\0"Aÿ\0q Atr! A\0N@ \0Aj!\f\v \0,\0"Aÿ\0q Atr! A\0N@ \0Aj!\f\v \0,\0"Aÿ\0q Atr! A\0N@ \0Aj!\f\v \0,\0"Aÿ\0q Atr! A\0N@ \0Aj!\f\v \0-\0Aÿ\0q Atr! \0Aj!\f\v AF\r ,\0\0"A\0N\r !@ ,\0\0"Aÿ\0q Atr! Aj! A\0N\r \nI\r\0\v\v k!\f\v \0Aj!@ \bAq"E@ AN@ \0,\0"Aÿ\0q! \0Aj k A\0N\r \0,\0"Aÿ\0q Atr! \0Aj k A\0N\r \0,\0"Aÿ\0q Atr! \0Aj k A\0N\r \0,\0"Aÿ\0q Atr! \0Aj k A\0N\r \0,\0"Aÿ\0q Atr! \0Aj k A\0N\r \0-\0Aÿ\0q Atr! \0Aj k\f\v AG@ ,\0\0"\0A\0H@ !@@ ,\0\0"\0Aÿ\0q Atr! Aj! \0A\0N\r\0 \nI\r\v\v k\f\vA! \0!\v j!\0 Asj! E\r\f\v (\0!A\0\v! AþÿÿÿK\r A E\r j!\0 Asj! \r\v 6\0 \b"E\r ! (\0\f\vA! !\f\v (\0 I\r 6\0 ! \v"6 A\0!@@ \bÀ"A\0N@ B\x007 B\x007 A\x006\f \f\v \b"E\r B\x007 B\x007 A\x006\f Aj!A\0!@ E\r\0@ A\0 \0-\0\0"A "AI\r\0A\b AF\r\0A AI\r\0 AO\rA\v6\fA! AF\r@@ j \0 j-\0\0:\0\0 Aj! Aj" O\r\0 K\r\v\v A\0 O!\f\vA! A6\f\v Aÿq"E\r \0 j"\0 \n A \bj*! ( \b" ( K\r 6 \0 j!\0 jk! !! \v!@ @ \bA q@ K\r (\0K\r E\r \0 ü\n\0\0\f\v \bAq@ A j \0 )E\r\f\v \bAq! \bAÀ\0q@ AF@ !\b ! ! \0"-\0\0!\0A\0A \v"E\r\0 \0A \0"\0Aüq!\t \0Aq!\vA\0 \0kAq!\f \0AkAI!\r \0AýkAI!@ A\blj"\nA\bj!A\0!A\0!@ \rE@@ Atj"A;\0 ; Ar"Atj"A;\0 ; Ar"Atj"A;\0 ; Ar"Atj"A;\0 ; Aj" \tG\r\0\v ! \vE\r\vA\0!@ "Atj"A;\0 ; Aj! Aj" \vG\r\0\v\v@ AþK\r\0A\0! \0! \f@@ Atj"A\0;\0 ; Aj! Aj" \fG\r\0\v\v \r\0@ Atj"A\0;\0 ; Aj"Atj"A\0;\0 ; Aj"Atj"A\0;\0 ; Aj"Atj"A\0;\0 ; Aj! AÿG\r\0\v\v \n \x006\0 \nAïÿ6 \nAïÿ6\b \nA\0;\b Aj"AG\r\0\vA\0!A°À\v"E@ \tA\0\f\v@ A\blj"\0A; \0A;\b \0A6\n \0BÀ7 \0A\bj!A!@ Atj"A\0;\0 ; Ar"Atj"\nA\0;\0 \n ; AG@ Ar"Atj"\nA\0;\0 \n ; Ar"Atj"\nA\0;\0 \n ; Aj!\f\v\v \0Bðý?7\0 \0Aïÿ6\b \0A\0;\b Aj"AG\r\0\vA\0!\t \bj"!\0 \bAO@ (\0"\0 \0AxsAþxqA\bv \0A\bxs!\t Aj!\0\v @ \bj!\b Ak! Aj!A\0!A!A\0!@ !\n@@ AÿqA\blj"\f(\0"AkM@A\0!\f\v \t n"n"AïÿM\r\0A\0!\f\vA\0! \fA\bj"\r!@ "Aj! "\v /\0"j" M\r\0\v \rkA\bJ@A\0!\f\v \t \vlk!\t@ l"AÿÿÿK\r\0 \0 O@A!\f\v@@ A\bt! \0Aj! \0-\0\0 \tA\btr!\t AO\r ! "\0 \bG\r\0\v \b!\0A!\f\v !\0 !\v Aj";\0 \f Aj"6\0@ AðÿI\r\0A\0! \fA\x006\0 \f/\b"E\r\0@ \r AþÿqAvk";\0 Aÿÿqj! \r/! \rAj!\r \r\0\v \f 6\0 /\0!\v /! Ak"/\0 AÿÿqO\r\0 (\x006\0 ;\0 Ak ;\0\v \nj :\0\0A\0! Aÿq"!@ !\v@@ A\blj"(\0"AkM@A\0!\f\v \t n"n"AïÿM\r\0A\0!\f\vA\0! A\bj"\r!@ "Aj! "\f /\0"j" M\r\0\v \rkA\bJ@A\0!\f\v \t \flk!\t@ l"AÿÿÿK\r\0 \0 O@A!\f\v@@ A\bt! \0Aj! \0-\0\0 \tA\btr!\t AO\r ! "\0 \bG\r\0\v \b!\0A!\f\v !\0 !\v Aj";\0 Aj"6\0@ AðÿI\r\0A\0! A\x006\0 /\b"E\r\0@ \r AþÿqAvk";\0 Aÿÿqj! \r/! \rAj!\r \r\0\v 6\0 /\0!\v /! Ak"/\0 AÿÿqO\r\0 (\x006\0 ;\0 Ak ;\0\v \v Aÿÿq"j! AF@A AHj F! I\r\v\v \nAj!@ E\r\0 O\r\0 \vjAk" \nk" I"Aj"@ \n j ü\v\0\v \njAj!\v I\r\0\v A\0 A\0N!\v \t \t \v"E\r\f\v ! !\b !A\0!A\0!#\0A\bk"$\0 \0"-\0\0"\0A \0"\0Aq!\n A\bj!@ \0AkAO@ \0Aüq!\v@ Atj"A;\0 ; Ar"Atj"\fA;\0 \f ; Ar"Atj"\fA;\0 \f ; Ar"Atj"\fA;\0 \f ; Aj" \vG\r\0\v \nE\r\v@ "Atj"A;\0 ; Aj! Aj" \nG\r\0\v\v@ AþK\r\0A\0!A\0 \0"kAq"@@ Atj"\nA\0;\0 \n ; Aj! Aj" G\r\0\v\v \0AýkAI\r\0@ Atj"A\0;\0 ; Aj"Atj"A\0;\0 ; Aj"Atj"A\0;\0 ; Aj"Atj"A\0;\0 ; Aj! AÿG\r\0\v\v \x006\0 Aïÿ6 Aïÿ6\bA\0!\0 A\0;\bA°À\v"@@ \0A\blj"A; A;\b A6\n BÀ7 A\bj!A!@ Atj"\nA\0;\0 \n ; Ar"\nAtj"\vA\0;\0 \v \n; AG@ Ar"\nAtj"\vA\0;\0 \v \n; Ar"\nAtj"\vA\0;\0 \v \n; Aj!\f\v\v Bðý?7\0 Aïÿ6\b A\0;\b \0Aj"\0AG\r\0\v j"!\0 AO@ (\0"\0 \0AxsAþxqA\bv \0A\bxs!\r Aj!\0\v j! Ak! \bAj!A\0!A!@ !\n@@ (\0"\fAkM@A\0!\t\f\v \r \fn"n"\tAïÿM\r\0A\0!\f\vA\0! !@ "Aj! "\v /\0"j" \tM\r\0\v kA\bJ@A\0!\f\v \r \vlk!\r@ l"AÿÿÿK\r\0 \0 O@A!\f\v@@ A\bt! \0Aj! \0-\0\0 \rA\btr!\r AO\r ! "\0 G\r\0\v !\0A!\f\v !\0 !\v Aj"\v;\0 \fAj"6\0@ AðÿI\r\0A\0!\t A\x006\0 ! /\b"E\r\0@ AþÿqAvk";\0 \t Aÿÿqj!\t /! Aj! \r\0\v \t6\0 /\0!\v\v /! Ak"/\0 \vAÿÿqO\r\0 (\x006\0 \v;\0 Ak ;\0\v \b \nj :\0\0A\0! Aÿq" !@ !\v@@ A\blj"(\0"AkM@A\0!\t\f\v \r n"n"\tAïÿM\r\0A\0!\f\vA\0! A\bj"!@ "Aj! "\f /\0"j" \tM\r\0\v kA\bJ@A\0!\f\v \r \flk!\r@ l"AÿÿÿK\r\0 \0 O@A!\f\v@@ A\bt! \0Aj! \0-\0\0 \rA\btr!\r AO\r ! "\0 G\r\0\v !\0A!\f\v !\0 !\v Aj"\t;\0 Aj"6\0@ AðÿI\r\0A\0! A\x006\0 /\b"E\r\0@ AþÿqAvk";\0 Aÿÿqj! /! Aj! \r\0\v 6\0 /\0!\t\v /! Ak"/\0 \tAÿÿqO\r\0 (\x006\0 \t;\0 Ak ;\0\v \v Aÿÿq"j! AF@A AHj F! I\r\v\v \nAj!@ E\r\0 O\r\0 \vjAk" \nk" I"Aj"@ \n j ü\v\0\v \njAj!\v I\r\0\v \bA\0 A\0N \b\v!\0 \t\v A\bj$\0 \0"E\r\f\v AF@ \0!\b ! ! !\nA\0A \v"E\r\0 \0-\0\0"\0A \0"Aüq! Aq!\tA\0 kAq!\r AkAI! AýkAI!A\0!@ A\blj"\vA\bj!A\0!A\0!\0@ E@@ \0Atj"A;\0 \0; \0Ar"Atj"A;\0 ; \0Ar"Atj"A;\0 ; \0Ar"Atj"A;\0 ; \0Aj"\0 G\r\0\v \0! \tE\r\vA\0!\0@ "Atj"A;\0 ; Aj! \0Aj"\0 \tG\r\0\v\v@ AþK\r\0A\0! !\0 \r@@ \0Atj"A\0;\0 \0; \0Aj!\0 Aj" \rG\r\0\v\v \r\0@ \0Atj"A\0;\0 \0; \0Aj"Atj"A\0;\0 ; \0Aj"Atj"A\0;\0 ; \0Aj"Atj"A\0;\0 ; \0Aj!\0 AÿG\r\0\v\v \v 6\0 \vAïÿ6 \vAïÿ6\b \vA\0;\b Aj"AG\r\0\vA\0! \b j"! AO@ \b(\0"\0 \0AxsAþxqA\bv \0A\bxs!\f \bAj!\v \n@A!A\0!A\0!@A\0!\0@@ AÿqA\blj"\t(\0"AkM@A\0!\f\v \f n"n"AïÿM\r\0A\0!\f\v \tA\bj"\r!@ "Aj! \0"\v /\0"j"\0 M\r\0\v \rkA\bJ@A\0!\f\v \f \vlk!\f@ l"AÿÿÿK\r\0 O@A!\f\v \b j!@@ A\bt!\0 Aj! -\0\0 \fA\btr!\f AO\r \0! " G\r\0\v !A!\f\v ! \0!\v Aj";\0 \t Aj"\x006\0@ \0AðÿI\r\0A\0! \tA\x006\0 \t/\b"\0E\r\0@ \r \0 \0AþÿqAvk"\0;\0 \0Aÿÿqj! \r/!\0 \rAj!\r \0\r\0\v \t 6\0 /\0!\v /! Ak"\0/\0 AÿÿqO\r\0 \0(\x006\0 \0 ;\0 Ak ;\0\v j :\0\0 Aj" \nG\r\0\v A\0 A\0N!\v \t \v"E\r\f\v ! !\b !\nA\0!A\0!#\0A\bk"\f$\0 \0"-\0\0"\0A \0"Aq! \fA\bj!@ AkAO@ Aüq!\v@ Atj"\0A;\0 \0 ; Ar"\0Atj"\tA;\0 \t \0; Ar"\0Atj"\tA;\0 \t \0; Ar"\0Atj"\tA;\0 \t \0; Aj" \vG\r\0\v E\r\v@ "\0Atj"A;\0 \0; \0Aj! Aj" G\r\0\v\v@ \0AþK\r\0A\0!\0A\0 "kAq"@@ Atj"A\0;\0 ; Aj! \0Aj"\0 G\r\0\v\v AýkAI\r\0@ Atj"\0A\0;\0 \0 ; Aj"\0Atj"A\0;\0 \0; Aj"\0Atj"A\0;\0 \0; Aj"\0Atj"A\0;\0 \0; Aj! \0AÿG\r\0\v\v \f 6\0 \fAïÿ6 \fAïÿ6\bA\0!\t \fA\0;\b j"! AO@ (\0"\0 \0AxsAþxqA\bv \0A\bxs!\t Aj!\v \n@A!@@@ \f(\0"AkM@A\0!\r\f\v \t n"n"\rAïÿM\r\0A\0!\0\f\vA\0!\0 !@ "Aj! \0"\v /\0"j"\0 \rM\r\0\v kA\bJ@A\0!\0\f\v \t \vlk!\t@ l"AÿÿÿK\r\0 O@A!\f\v j!\v@@ A\bt!\0 Aj! -\0\0 \tA\btr!\t AO\r \0! " \vG\r\0\v \v!A!\f\v ! \0!\v Aj"\v;\0 \f Aj"\x006\0@ \0AðÿI\r\0A\0!\r \fA\x006\0 !\0 \f/\b"E\r\0@ \0 AþÿqAvk";\0 \r Aÿÿqj!\r \0/! \0Aj!\0 \r\0\v \f \r6\0 /\0!\v\v /!\0 Ak"/\0 \vAÿÿqO\r\0 (\x006\0 \v;\0 Ak \0;\0\v \b j \0:\0\0 Aj" \nG\r\0\v \bA\0 A\0N!\b\v \fA\bj$\0 \b"E\r\f\v A\x006 \v A\0H@ 5 "" " ! (\f"\0AF"! \0 Aj(E\r !§\f\v ( \v!\0 @ \v \x006\0\f\v !\v A\0!\f\vA\0! Aj" O\r\0 \0 j-\0\0"E\r\0@ E@ AþÿÿÿK\r \b"E\r 6\0 !\f\v (\0G\r\v Aj! n"\f lk!\t@@ At" A \bj"j \f \t Kj6\0 A j" j Ak"\bj(\0 \bj(\0jA\0\v6\0 \0 j!\b A j j!\v@ kAN@ \b,\0\0"Aÿ\0q! A\0N@ \bAj!\f\v \b,\0"Aÿ\0q Atr! A\0N@ \bAj!\f\v \b,\0"Aÿ\0q Atr! A\0N@ \bAj!\f\v \b,\0"Aÿ\0q Atr! A\0N@ \bAj!\f\v \b,\0"Aÿ\0q Atr! A\0N@ \bAj!\f\v \b-\0Aÿ\0q Atr! \bAj!\f\v M@A\0! \vA\x006\0A\0\f\vA\0! \b",\0\0"A\0N@ \v 6\0 !A\f\v@ ,\0\0"Aÿ\0q Atr! Aj! A\0N\r \nI\r\0\v\v \v 6\0 \bk\v j" K\r Ak O\r ! |!! Aj" G\r\0\v ! |"! V\r\0 \b"E\r\0 !§!A\0!@@ At"\b A \bjj(\0"6¬ I\r \0 j k A j" \bj(\0j A¬jE\r (¬ G\r A j \bj(\0 j! Aj" G\r\0\v \' 6\0 !\f\v A\0!\f\v A\0!\v A°j$\0 \v}@@ \0"AqE\r\0 -\0\0E@A\0\v@ Aj"AqE\r -\0\0\r\0\v\f\v@ "Aj!A\b (\0"k rAxqAxF\r\0\v@ "Aj! -\0\0\r\0\v\v \0k\v/\0@ Aÿ\0M\r\0 AqA¿F\r\0A°þ\0A6\0A\v \0 :\0\0A\v´\0@@@@@@@@@@@ A\tk\0\b\t\n\b\t\n\t\n\n\b\t\v (\0"Aj6\0 \0 (\x006\0\v (\0"Aj6\0 \0 2\x007\0\v (\0"Aj6\0 \0 3\x007\0\v (\0"Aj6\0 \0 0\0\x007\0\v (\0"Aj6\0 \0 1\0\x007\0\v (\0AjAxq"A\bj6\0 \0 +\x009\0\v\0\v\v (\0"Aj6\0 \0 4\x007\0\v (\0"Aj6\0 \0 5\x007\0\v (\0AjAxq"A\bj6\0 \0 )\x007\0\vo \0(\0",\0\0A0k"A\tK@A\0\v@A! A̳æ\0M@A A\nl"j AÿÿÿÿsK!\v \0 Aj"6\0 ,\0 ! !A0k"A\nI\r\0\v \v~#\0A@j"$\0 6< A)j! A\'j! A(j!@@@@@A\0!@ !\v \fAÿÿÿÿsJ\r \fj!\f@@@@ "-\0\0"\n@@@@ \nAÿq"E@ !\f\v A%G\r !\n@ \n-\0A%G@ \n!\f\v Aj! \n-\0 \nAj"!\nA%F\r\0\v\v \vk" \fAÿÿÿÿs"J\r\t \0@ \0 \v \r\v \r 6< Aj!A!@ ,\0A0k"A\tK\r\0 -\0A$G\r\0 Aj!A! !\v 6<A\0!\t@ ,\0\0"\nA k"AK@ !\f\v !A t"AÑqE\r\0@ Aj"6< \tr!\t ,\0"\nA k"A O\r !A t"AÑq\r\0\v\v@ \nA*F@@ ,\0A0k"A\tK\r\0 -\0A$G\r\0 \0E@ AtjA\n6\0A\0\f\v Atj(\0\v!\r Aj!A\f\v \r Aj! \0E@ 6<A\0!A\0!\r\f\v (\0"Aj6\0 (\0!\rA\0\v! 6< \rA\0N\rA\0 \rk!\r \tAÀ\0r!\t\f\v A<j"\rA\0H\r\n (<!\vA\0!A!\bA\0 -\0\0A.G\r\0 -\0A*F@@ ,\0A0k"A\tK\r\0 -\0A$G\r\0 Aj! \0E@ AtjA\n6\0A\0\f\v Atj(\0\v\f\v \r Aj!A\0 \0E\r\0 (\0"Aj6\0 (\0\v!\b 6< \bA\0N\f\v Aj6< A<j!\b (<!A\v!@ !A! ",\0\0"Aû\0kAFI\r\v Aj! A:l jAïø\0j-\0\0"AkAÿqA\bI\r\0\v 6<@ AG@ E\r\f A\0N@ \0E@ Atj 6\0\f\f\v Atj)\x0070\f\v \0E\r\b A0j \f\v A\0N\r\vA\0! \0E\r\b\v \0-\0\0A q\r\v \tAÿÿ{q"\n \t \tAÀ\0q!\tA\0!Aý\n! !@@@@@@@@@@@@@@@ -\0\0"À"ASq AqAF "AØ\0k!\t\n\0\v@ AÁ\0k\v\0\v AÓ\0F\r\v\f\v )0!Aý\n\f\vA\0!@@@@@@@ \b\0\v (0 \f6\0\f\v (0 \f6\0\f\v (0 \f¬7\0\f\v (0 \f;\0\f\v (0 \f:\0\0\f\v (0 \f6\0\f\v (0 \f¬7\0\f\vA\b \b \bA\bM!\b \tA\br!\tAø\0!\v ! )0""B\0R@ A q!\v@ Ak" §Aq-\0} \vr:\0\0 B"B\0R\r\0\v\v !\v P\r \tA\bqE\r AvAý\nj!A!\f\v ! )0""B\0R@@ Ak" §AqA0r:\0\0 B"B\0R\r\0\v\v !\v \tA\bqE\r \b k" \bH!\b\f\v )0"B\0S@ B\0 }"70A!Aý\n\f\v \tAq@A!Aþ\n\f\vAÿ\nAý\n \tAq"\v! ! "BZ@@ Ak" " B\n"Bö~|§A0r:\0\0 BÿÿÿÿV\r\0\v\v §! B\nZ@@ Ak" "\v A\nn"AöljA0r:\0\0 \vAã\0K\r\0\v\v @ Ak" A0r:\0\0\v !\v\v \bA\0Hq\r \tAÿÿ{q \t !\t@ B\0R\r\0 \b\r\0 !\vA\0!\b\f\v \b P \vkj" \bH!\b\f\r\v -\x000!\f\v\vAÿÿÿÿ \b \bAÿÿÿÿO"\t"A\0G!@@@ (0"Aü "\v"AqE\r\0 E\r\0@ -\0\0E\r Ak"A\0G! Aj"AqE\r \r\0\v\v E\r@ -\0\0E\r\0 AI\r\0@A\b (\0"k rAxqAxG\r Aj! Ak"AK\r\0\v\v E\r\v@ -\0\0E\r Aj! Ak"\r\0\v\vA\0\v" \vk \t " \vj! \bA\0N@ \n!\t !\b\f\f\v \n!\t !\b -\0\0\r\f\v\v )0"B\0R\rA\0!\f\t\v \b@ (0\f\vA\0! \0A \rA\0 \t\f\f\v A\x006\f >\b A\bj"60A!\b \v!\nA\0!@@ \n(\0"\vE\r\0 Aj \v"\vA\0H\r \v \b kK\r\0 \nAj!\n \vj" \bI\r\v\vA=! A\0H\r\f \0A \r \t\f E@A\0!\f\vA\0! (0!\n@ \n(\0"\vE\r Aj"\b \v"\v j" K\r \0 \b \v\r \nAj!\n K\r\0\v\v \0A \r \tAÀ\0s\f \r \rH!\f\b\v \bA\0Hq\r\tA=! +0\0\v -\0!\n Aj!\f\0\v\0\v \0\r\t E\rA!@ Atj(\0"\0@ Atj \0 A!\f Aj"A\nG\r\f\v\v\v A\nO@A!\f\f\n\v@ Atj(\0\rA!\f Aj"A\nG\r\0\v\f\t\vA!\f\v :\0\'A!\b !\v \n!\t\v \b \vk"\n \b \nJ"\b AÿÿÿÿsJ\rA=! \r \b j" \rH" K\r \0A \t\f \0 \r \0A0 \tAs\f \0A0 \b \nA\0\f \0 \v \n\r \0A \tAÀ\0s\f (<!\f\v\v\vA\0!\f\f\vA=!\vA°þ\0 6\0\vA!\f\v A@k$\0 \f\vÁ@ (" \r (\v ("k I@ \0 ($\0\v@@ (PA\0H\r\0 E\r\0 !@ \0 j"Ak-\0\0A\nG@ Ak"\r\f\v\v \0 ($\0" I\r k! (!\f\v \0!A\0!\v # ( j6 j!\v \v\t\b \0Aÿÿq! \0Av!A!\0 AF@ -\0\0j"\0Añÿk \0 \0AðÿK"\0 j"At"A<j AðÿK \0r\v @@@ AO@@ A¯+K@@AÛ! !\0@ \0-\0\0j" j \0-\0j"j \0-\0j"j \0-\0j"j \0-\0j"j \0-\0j"j \0-\0j"j \0-\0j"j \0-\0\bj"j \0-\0\tj"j \0-\0\nj"j \0-\0\vj"j \0-\0\fj"j \0-\0\rj"j \0-\0j"j \0-\0j"j! \0Aj!\0 Ak"\r\0\v Añÿp! Añÿp! A°+j! A°+k"A¯+K\r\0\v E\r AM\r\v@ -\0\0j"\0 j \0 -\0j"\0j \0 -\0j"\0j \0 -\0j"\0j \0 -\0j"\0j \0 -\0j"\0j \0 -\0j"\0j \0 -\0j"\0j \0 -\0\bj"\0j \0 -\0\tj"\0j \0 -\0\nj"\0j \0 -\0\vj"\0j \0 -\0\fj"\0j \0 -\0\rj"\0j \0 -\0j"\0j \0 -\0j"j! Aj! Ak"AK\r\0\v E\r\v Aq"\r \f\v@ E\r\0 Aq" !\0@ \0-\0\0j" j! \0Aj!\0 Aj" G\r\0\v j! A\fq \v!\0 AI\r\0 \0Ak"AqE@ -\0\0j"\0 -\0j" -\0j" -\0j" \0 jjjj! Aj! !\0\v AI\r\0@ -\0\0j" -\0j" -\0j" -\0j" -\0j"\b -\0j"\t -\0j"\n -\0j" \n \t \b jjjjjjjj! A\bj! \0A\bk"\0\r\0\v\v AñÿpAt Añÿk AðÿKr\vA\0! !\0@ \0-\0\0j" j! \0Aj!\0 Aj" G\r\0\v j! A\fq\v!\0 AI\r\0 \0Ak"AqE@ -\0\0j"\0 -\0j" -\0j" -\0j" \0 jjjj! Aj! !\0\v AI\r\0@ -\0\0j" -\0j" -\0j" -\0j" -\0j"\b -\0j"\t -\0j"\n -\0j" \n \t \b jjjjjjjj! A\bj! \0A\bk"\0\r\0\v\v Añÿp! Añÿp!\v At rA\v\v AO@ @ \0 ü\n\0\0\v\v \0 j!@ \0 sAqE@@ \0AqE@ \0!\f\v E@ \0!\f\v \0!@ -\0\0:\0\0 Aj! Aj"AqE\r I\r\0\v\v A|q!\0@ AÀ\0I\r\0 \0A@j"K\r\0@ (\x006\0 (6 (\b6\b (\f6\f (6 (6 (6 (6 ( 6 ($6$ ((6( (,6, (060 (464 (868 (<6< A@k! A@k" M\r\0\v\v \0 M\r@ (\x006\0 Aj! Aj" \0I\r\0\v\f\v AI@ \0!\f\v AI@ \0!\f\v Ak! \0!@ -\0\0:\0\0 -\0:\0 -\0:\0 -\0:\0 Aj! Aj" M\r\0\v\v I@@ -\0\0:\0\0 Aj! Aj" G\r\0\v\v\vG@@ \0-\0°AF@ \0Aj"\0AG\r\f\v\v \0A°jA:\0\0 \0AtA\x006°A¨ \x006\0\v\v#\0Ak"\0$\0 \0AÝ\0:\0@@A¨ý\0(\0" Aý\0\rA¨ý\0(\0\vA¬ý\0(\0"F\r\0Aèý\0(\0AÝ\0F\r\0A¬ý\0 Aj6\0 AÝ\0:\0\0\f\vAý\0 \0AjAA¼ý\0(\0\0AG\r\0 \0-\0\v \0Aj$\0\vð#\0Ak"\b$\0@ AI\r\0 AþÿÿÿK\r\0@@ E@ \b"! E\r\v \0 j! \bAjA\0A\bü\v\0 \0Aj! \0-\0\0!@@ \bAj AtjA6\0@@ E@ Aj"\n -\0\0"F\r Aj!A\0!\f\v AþL@ Aj! Ak!\f\v\f\v -\0! Aj! \n!\v A\0 Aj I\r\0\v@ E\r\0@ \bAj AtjA6\0 O\r@ E@ Aj!A\0! Aj" -\0\0"\nG@ ! \n!\f\v O@\f\v -\0! Aj!\f\v AþJ\r Aj! Ak!\v E\r I\r\0\v\v \0k!\t\v \0 \tj!A\0!\t@ \bAj \tAtj"(\0@@ kAN@ ,\0\0"Aÿ\0q! A\0N@ Aj!\f\v ,\0"Aÿ\0q Atr! A\0N@ Aj!\f\v ,\0"Aÿ\0q Atr! A\0N@ Aj!\f\v ,\0"Aÿ\0q Atr! A\0N@ Aj!\f\v ,\0"Aÿ\0q Atr! A\0N@ Aj!\f\v -\0Aÿ\0q Atr! Aj!\f\v O@A\0! A\x006\0A\0\f\vA\0! ",\0\0"\nA\0N@ \n6\0 \n!A\f\v@ ,\0\0"\nAÿ\0q Atr! Aj! \nA\0N\r I\r\0\v\v 6\0 k\v \fj!\f j!\v \tAj"\tAG\r\0\v@ \0 F\r\0 \fA rA G@A\0!A\0! \fA I@@ Aj! \fAI \fAt!\f\r\0\v\v@ \bAj Atj" (\0 t6\0 ( t6 (\b t6\b (\f t6\f ( t6 ( t6 ( t6 ( t6 A\bj"AG\r\0\v\vA\0!@@ \bAj \rAtj(\0"Ak"\nA kO\r\0 Aq!\t At \rj!\fA\0!@ \nAI@A\0!\f\v A|q!\nA\0!@ \bA\tj Atj" \f A\btj"6\0 Aj6\f Aj6\b Aj6 Aj! Aj" \nG\r\0\v \tE\r\v@ \bA\tj Atj \f A\btj6\0 Aj! Aj! Aj" \tG\r\0\v\v \rAj"\rAG\r\0\v A G\r\0 kAH\r\0 \b (\0\0"6\0 AI\r\0 \b (\0"6 AI\r\0 \b (\0\b"6\b AI\r\0 \b (\0\f"6\f AI\r\0 \b (\0"6 AI\r\0 \b (\0"6 AI\r\0 \b (\0"6 AI\r\0 \b (\0"6 AI\r\0 \b (\0 "6 AI\r\0 \b (\0$"6$ AI\r\0 \b (\0("6( AI\r\0 \b (\0,"6, AI\r\0 \b (\x000"60 AI\r\0 \b (\x004"64 AI\r\0 \b (\x008"68 AI\r\0 \b (\0<"6< AI\r\0 \b (\0@"6@ AI\r\0 \b (\0D"6D AI\r\0 \b (\0H"6H AI\r\0 \b (\0L"6L AI\r\0 \b (\0P"6P AI\r\0 \b (\0T"6T AI\r\0 \b (\0X"6X AI\r\0 \b (\0\\"6\\ AI\r\0 \b (\0`"6` AI\r\0 \b (\0d"6d AI\r\0 \b (\0h"6h AI\r\0 \b (\0l"6l AI\r\0 \b (\0p"6p AI\r\0 \b (\0t"6t AI\r\0 \b (\0x"6x AI\r\0 \b (\0|"6| AI\r\0 Aj! Aàÿÿÿq"E\r \0kAj A@jN\r A@j!\n@ j!\rA\0!@ \b Atj"\v \bA\tj" \v(\0"\0AÿqAtj(\0"\fAv \0A\fvl \fA\bvAÿqj"6\0 \v \v(\f"\0AÿqAt j(\0"Av \0A\fvl A\bvAÿqj"6\f \v \v(\b"\0AÿqAt j(\0"Av \0A\fvl A\bvAÿqj"6\b \v \v("\0AÿqAt j(\0"Av \0A\fvl A\bvAÿqj"\t6 \rj"\0 :\0 \0 :\0 \0 :\0 \0 \f:\0\0 \v -\0\0 Atr -\0A\btr AI"\06\0 \v AA\0 \0j"-\0A\bt -\0\0 \tAtrr \t \tAI"\06 \v AA\0 \0j"-\0A\bt -\0\0 Atrr AI"\06\b \v AA\0 \0j"-\0A\bt -\0\0 Atrr AI"6\f \v(! \v(! \v(! \b Ar"Atj"\t \t(\0"\0AÿqAt j(\0"\fAv \0A\fvl \fA\bvAÿqj"6\0 \v AÿqAt j(\0"Av A\fvl A\bvAÿqj"6 \v AÿqAt j(\0"Av A\fvl A\bvAÿqj"6 \v AÿqAt j(\0"\0Av A\fvl \0A\bvAÿqj"6 \rj" :\0 :\0 \0:\0 \f:\0\0 \t AA\0 j"-\0A\bt -\0\0 Atrr AI"\06\0 \v AA\0 \0j"-\0A\bt -\0\0 Atrr AI"\06 \v AA\0 \0j"-\0A\bt -\0\0 Atrr AI"\06 \v AA\0 \0j"-\0A\bt -\0\0 Atrr AI"\06 AA\0 \0j! AI A\bj!\r\0\v A j" O\r \nI\r\0\v\f\v \vA\0!\f\v I@@ j!\nA\0!@ \b "\0Atj"\r \bA\tj" \r(\f"AÿqAtj(\0"Av A\fvl A\bvAÿqj"6\f \r \r(\b"AÿqAt j(\0"\tAv A\fvl \tA\bvAÿqj"\f6\b \r \r("AÿqAt j(\0"Av A\fvl A\bvAÿqj"6 \r \r(\0"AÿqAt j(\0"Av A\fvl A\bvAÿqj"6\0 \0 \nj" :\0 \t:\0 :\0 :\0\0@ AÿÿK\r\0 Aj O\r\0 \r -\0\0 Atr -\0A\btr6\0 Aj!\v@ AÿÿK\r\0 Aj O\r\0 \r -\0\0 Atr -\0A\btr6 Aj!\v@ \fAÿÿK\r\0 Aj O\r\0 \r -\0\0 \fAtr -\0A\btr6\b Aj!\v@ AÿÿK\r\0 Aj O\r\0 \r -\0\0 Atr -\0A\btr6\f Aj!\v \0Aj! \0AI\r\0\v A j" I\r\0\v\v Aq"\0E@ !\f\v j!\n \0! Aq@ \n Ak"j \bA\tj \b Atj(\0AÿqAtj(\0:\0\0\v \0AF@ !\f\v@ \n Ak"\0j \bA\tj \b \0Atj(\0AÿqAtj(\0:\0\0 \n Ak"\0j \bA\tj \b \0Atj(\0AÿqAtj(\0:\0\0 AJ \0!\r\0\v !\v \bAj$\0 \v´@ I\r\0@@@@ Ak\0\0\v F\r k!\f\v@ AÀ\0I\r\0 A@j"\bE\r\0@ \0 j!\tA\0!@ \t Atj" j" (\0j-\0\0:\0\0 (j-\0\0:\0 (\bj-\0\0:\0 (\fj-\0\0:\0 Aj"AG\r\0\v (\0Aj6\0 (Aj6 (\bAj6\b (\fAj6\f A@k" \bI\r\0\v\v Ak"O\r@ (\0"Aj6\0 \0 j" j-\0\0:\0\0 ("Aj6 j-\0\0:\0 (\b"Aj6\b j-\0\0:\0 (\f"Aj6\f j-\0\0:\0 Aj" I\r\0\v\f\v@ A\bI\r\0 A\bk"\nE\r\0 Aj! Aj! Aj!\b (\0!\t@ \0 j" \tj-\0\0:\0\0 (j-\0\0:\0 \b (\0j-\0\0:\0 \b (j-\0\0:\0 (\0j-\0\0:\0 (j-\0\0:\0 (\0j-\0\0:\0 (j-\0\0:\0 (\0Aj"\t6\0 (Aj6 A\bj" \nI\r\0\v\v Ak"O\r@ (\0"Aj6\0 \0 j" j-\0\0:\0\0 ("Aj6 j-\0\0:\0 Aj" I\r\0\v\f\v@ Atj"\b \b(\0"\bAj6\0 \0 j \bj-\0\0:\0\0 Aj! Aj" G\r\0A\0! I\r\0\v\v@ M\r\0A\0! Aj G@ k"Aq A~q!@ Atj" (\0"\bAj6\0 \0 j"\t \bj-\0\0:\0\0 ("Aj6 \t j-\0\0:\0 Aj! Aj" G\r\0\vE\r\v Atj" (\0"Aj6\0 \0 j j-\0\0:\0\0\v\vÂ~#\0Ak"\b$\0@@@@@@@@@@@ \t\0\n\n\n\n\n\v §"E@ !\f\n\v \0 ü\n\0\0 !\f\t\v@ \b Atj" Aqj-\0\0:\0\0 AvAqj-\0\0:\0 AvAqj-\0\0:\0 AvAqj-\0\0:\0 AvAqj-\0\0:\0 AvAqj-\0\0:\0 AvAqj-\0\0:\0 Avj-\0\0:\0 Aj"AG\r\0\v B|B V\r B\bT@B\0!A\0\f\v@@ B\b}"B"P@B\0!\f\v@@ B}"B"P@B\0!\f\v B|Bþÿÿÿÿÿÿÿÿ\0!B\0!@ §j" \b \0 §j"-\0\0Atj)\x007\0\0 \b -\0Atj)\x007\0\b \b -\0Atj)\x007\0 \b -\0Atj)\x007\0 B |! B|! B|" R\r\0\v BB\0R\r\v §j" \b \0 §j"-\0\0Atj)\x007\0\0 \b -\0Atj)\x007\0\b B|! B|!\v B\bB\0R\r\v §j \b \0 §j-\0\0Atj)\x007\0\0 B\b|!\v §Aj\v!@ BP\r\0 Z\r\0 B|! \0 j-\0\0! }B§@ §j Aqj-\0\0:\0\0 AþqAv! !\v Q\r\0@ §j"\0 Aqj-\0\0:\0\0 \0 AvAqj-\0\0:\0 AüqAv! B|" R\r\0\v\v !\f\b\v -\0!\v -\0!\f -\0!\t -\0\0!\n@ j-\0\0!A\0!@ j-\0\0! \b \rAtj" :\0 :\0 \n:\0 \n:\0\0 :\0/ :\0. \f:\0- \v:\0, :\0+ :\0* \f:\0) \f:\0( :\0\' :\0& \f:\0% \t:\0$ :\0# :\0" \f:\0! \n:\0 :\0 :\0 \t:\0 \v:\0 :\0 :\0 \t:\0 \f:\0 :\0 :\0 \t:\0 \t:\0 :\0 :\0 \t:\0 \n:\0 :\0 :\0 \n:\0\r \v:\0\f :\0\v :\0\n \n:\0\t \f:\0\b :\0 :\0 \n:\0 \t:\0 -\0\0!\n :\x003 :\x002 \v:\x001 \n:\x000 -\0!\t :\0? :\0> \v:\0= \v:\0< :\0; :\0: \v:\x009 \f:\x008 :\x007 :\x006 \v:\x005 \t:\x004 \rAj!\r Aj"AG\r\0\v Aj"AG\r\0\v B|B V\rB\0! Büÿÿÿ"B\fX@\f\v B\f}!@ \b \0 §j"-\0\0Atj(\0! \b -\0Atj(\0!\t \b -\0Atj(\0!\n §j" \b -\0Atj(\x006\0\f \n6\0\b \t6\0 6\0\0 B|! B|" S\r\0\v\f\v -\0!\t -\0!\n -\0\r!\v -\0\f!\f -\0\v!\r -\0\n! -\0\t! -\0\b! -\0! -\0! -\0! -\0! -\0! -\0! -\0! -\0\0!@ \b Atj" j-\0\0":\0 \t:\0 :\0 \n:\0 :\0 \v:\0 :\0 \f:\0 :\0 \r:\0 :\0 :\0 :\0 :\0 :\0 :\0 :\0 :\0 :\0\r :\0\f :\0\v :\0\n :\0\t :\0\b :\0 :\0 :\0 :\0 :\0 :\0 :\0 :\0\0 Aj"AG\r\0\v B|B V\rB\0! Bþÿÿÿ"BT\r B}"B"P@B\0!\f\v B|Bþÿÿÿÿÿÿÿÿ\0!B\0!@ \b \0 §j"-\0\0Atj/\0! §j" \b -\0Atj/\0;\0 ;\0\0 \b -\0Atj/\0! \b -\0Atj/\0;\0 ;\0 B\b|! B|! B|" R\r\0\v\f\v §"\0E@ !\f\v -\0\0 \0ü\v\0 !\f\vA\0!\f\v BB\0R\r\v \b \0 §j"-\0\0Atj/\0! §j" \b -\0Atj/\0;\0 ;\0\0 B|! B|!\v S@ B
|"B"|! BP@ §j \b \0 §j-\0\0Atj/\0;\0\0 B|! B|!\v B\0R@@ §j" \b \0 §j-\0\0Atj/\0;\0\0 \b \0 B|"§j-\0\0Atj/\0;\0 B|! B|! R\r\0\v\v B|!\v R@ §j \0 §j-\0\0Aqj-\0\0:\0\0\v !\f\v S@ B
|"B"|! BP@ §j \b \0 §j-\0\0Atj(\x006\0\0 B|! B|!\v B\0R@@ §j" \b \0 §j-\0\0Atj(\x006\0\0 \b \0 B|"§j-\0\0Atj(\x006\0 B\b|! B|! R\r\0\v\v B|!\v@ Q\r\0 Z\r\0 B|! \0 §j-\0\0! }B§@ §j Aqj-\0\0:\0\0 AüqAv! !\v Q\r\0@ §j"\0 Aqj-\0\0:\0\0 \0 AvAqj-\0\0:\0 AðqAv! B|" R\r\0\v\v !\v \bAj$\0 \v¨7#\0A0k"$\0A~!@ \0E\r\0 E\r\0 A6( A6$ A\x006,Aôô\b"E@A}!\f\v 6\0 6 A\n6 A\x006ä B\x007 B\x007 B\x007\b A\x006Ô A\0:\0( B\x007Ì B\x007, \x006 6\0 6 (\x006#\0A0k"$\0A~!@ ( "E\r\0 (\0 G\r\0 Aìj!5 AÈj!, Aü<j!\' Aüj! A@k!( Aüój!- AÌÃj!. Aj!+ Aìâj!/ AàÖj!6 A¼=j!0 AÊj!7 Aüj!1 Aìj!2 Aôj!8 AÄ\bj! A<j! (!@ A\nH!\0@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A!@@ AkT\0\v -\0!\0 -\0(E\r (\0"\v(!@ \0@ E\r (\f!\f\v E\r (\f!\f\v@ E@ (À\b"\0 (Àô"\fAj"F\rA|! \0 J\rU A6\f (\0":\0\b (8" ($A l"\rO\rUA\0!A!@ jAu"\t \tAtj(\0H"\b" \t \b"kAG\r\0\v (Ð"\b Atj/\0" (Ô" Avj-\0\0 AtAqvAtA<qr"68 ("E@ ("Aj"\tA\0 \tAG6 AtAð+j(\0!\v \0Aj"6À\b Ak"\t6@ \0 \fF\r\0 Aÿq \tAFs"G@ 6\0\f\v A6\f \rO\rVA\0!A!@ jAu" Atj(\0H"" "kAG\r\0\v \b Atj/\0" Avj-\0\0 AtAqvAtA<qr"68 \tE@ ("Aj"\tA\0 \tAG6 AtAð+j(\0!\t\v \0Aj"6À\b \tAk"\t6 \f F\r\0 Aÿq \tAFs"G@ 6\0\f\v A6\f \rO\rVA\0!A!@ jAu" Atj(\0H"" "kAG\r\0\v \b Atj/\0" Avj-\0\0 AtAqvAtA<qr"68 \tE@ ("Aj"\tA\0 \tAG6 AtAð+j(\0!\t\v \0Aj6À\b \tAk"\t6 \f F\r\0 Aÿq \tAFs"G@ 6\0\f\v \rO\rVA\0!A!@ jAu"\f \fAtj(\0H"" \f "kAG\r\0\v \b Atj/\0" Avj-\0\0 AtAqvAtA<qr"68 \tE@ ("Aj"\tA\0 \tAG6 AtAð+j(\0!\t\v \0Aj6À\b \tAk"\f6 Aÿq \fAFsAj6\f \rO\rVA\0!A!@ jAu"\t \tAtj(\0H"\r" \t \r"kAG\r\0\v 6\0 \b Atj/\0 Avj-\0\0 AtAqvAtA<qr68 \fE@ ("Aj"A\0 AG6 AtAð+j(\0!\f\v \0Aj6À\b \fAk"\x006 \0AFs6\0\v \v(E\r\v \v( -\0\b"\0:\0\0 (\fAk"6\f \0 (à"AvsAt(ð# A\bts6à (\0"\v \v(Aj"\x006 \v \v(Ak"6 \v \v(Aj6 \0E@ \v \v(Aj6\v \r\0\v\f\v \0\r\0\v (\0" A\nG\r 8A\0Aà\0ü\v\0@ ( "\0AJ@ \0A\bk! (!\f\v (!\b@ \bE@A\0!3A\0! A\0!!A\0!"A\0!A\0!#A\0!)A\0!A\0!A\0!$A\0!A\0!A\0!\vA\0!A\0!\rA\0!A\0!A\0!\tA\0!\fA\0!A\0!A\0!A\0!A\0!\b\fN\v (\0"-\0\0!\t \0A\bj"6 \t (A\btr"6 \bAk"\b6 Aj6\0 (\bAj"6\b E@ (\fAj6\f\v \0A\0N \0! !\0E\r\0\v\v 6 A\0!3 vAÿqAÂ\0F@A\0!\bA\0!A\0!A\0!A\0!A\0!\fA\0!\tA\0!A\0!A\0!\rA\0!A\0!\vA\0!A\0!A\0!$A\0!A\0!A\0!)A\0!#A\0!A\0!"A\0!!A\0! \f\vA{!A\0! A\0!!A\0!"A\0!A\0!#A\0!)A\0!A\0!A\0!$A\0!A\0!A\0!\vA\0!A\0!\rA\0!A\0!A\0!\tA\0!\fA\0!A\0!A\0!A\0!A\0!\b\fM\v \0@ (\0"(E\r (\f!@ E@ (À\b" (Àô"\0Aj"F\rA|! J\rS A6\f (\0"\r:\0\b (8"\b ($A l"O\rS (Ì"\t \bAtj(\0"\fA\bv"\v68 ("\bE@ ("\bAj"A\0 AG6 \bAtAð+j(\0!\b\v Aj"6À\b \bAk"\b6@ \0 F\r\0 \r \fAÿq \bAFs"\fG@ \f6\0\f\v A6\f \vM\rT \t \vAtj(\0"\fA\bv"\v68 \bE@ ("\bAj"A\0 AG6 \bAtAð+j(\0!\b\v Aj"6À\b \bAk"\b6 \0 F\r\0 \r \fAÿq \bAFs"\fG@ \f6\0\f\v A6\f \vM\rT \t \vAtj(\0"\fA\bv"\v68 \bE@ ("\bAj"A\0 AG6 \bAtAð+j(\0!\b\v Aj6À\b \bAk"\b6 \0 F\r\0 \r \fAÿq \bAFs"\0G@ \x006\0\f\v \vM\rT \t \vAtj(\0"\vA\bv"\r68 \bE@ ("\0Aj"\bA\0 \bAG6 \0AtAð+j(\0!\b\v Aj6À\b \bAk"\x006 \vAÿq \0AFsAj6\f \rM\rT \t \rAtj(\0"A\bv68 \0E@ ("\0Aj"\tA\0 \tAG6 \0AtAð+j(\0!\0\v Aj6À\b \0Ak"\x006 Aÿq \0AFs6\0\v (E\r\v ( -\0\b"\0:\0\0 (\fAk"6\f \0 (à"AvsAt(ð# A\bts6à (\0" (Aj"\x006 (Ak"6 (Aj6 \0E@ (Aj6\v \r\0\v\f\v ($A l! (Àô"Aj!\r (\0!\t (8! (Ì! (À\b! (\f!\0 -\0\b!\v (à! (\0"(! ("!\b@@@@ \0A\0L@ !\f\v \bE\r \vAÿq!@ \0AF@ !A\0\f\v \v:\0\0 Av sAt(ð# A\bts! Aj! \0Ak!\0 \bAk"\b\r\0\v\f\vA\v!\0@ \0E@ \bE@A\0!\bA!\0\f\v \v:\0\0 \vAÿq AvsAt(ð# A\bts! \bAk!\b Aj!A!\0\f\vA|! \rJ\rT \rF@A\0!\0 \r!\f\v O\rT \t!\v Aj!\0 Atj(\0"\tA\bv!@ \v \tAÿq"\tG@ \0!\f\v F@ \0! \v!\t\f\v O\rUA!\0 Atj(\0"A\bv! \v!\t \r" Aj"\fF\r \f! Aÿq"\t \vG\r O\rU Atj(\0"A\bv!A!\0 \v!\t \r" Aj"\fF\r \f! Aÿq"\t \vG\r O\rU Atj(\0"\0A\bv"\t O\rU Aj! \0AÿqAj!\0 \tAtj(\0"A\bv! Aÿq!\t\f\vA\0!\0\f\0\v\0\v\v !A\0!\b\v (\0"\r \r("\f \bkj"6 \f K@ \r \r(Aj6\v 6À\b \x006\f \v:\0\b 6à 6Ì 68 \t6\0 \r \b6 \r 6\f\v@@ \r\0 (À\b"\0 (Àô"\fAj"F\rA|! \0 J\rQ A6\f (\0":\0\b (8" ($A l"\tO\rQA\0!A!@ jAu"\r \rAtj(\0H"\b" \r \b"kAG\r\0\v (Ð"\r Atj/\0! (Ô"\b Avj-\0\0! \0Aj"6À\b AtAqvAtA<qr"68 \0 \fF\r\0 Aÿq"G@ 6\0\f\v A6\f \tO\rQA\0!A!@ jAu" Atj(\0H"" "kAG\r\0\v \r Atj/\0! \b Avj-\0\0! \0Aj"6À\b AtAqvAtA<qr"68 \f F\r\0 Aÿq"G@ 6\0\f\v A6\f \tO\rQA\0!A!@ jAu" Atj(\0H"" "kAG\r\0\v \r Atj/\0! \b Avj-\0\0! \0Aj6À\b AtAqvAtA<qr"68 \f F\r\0 Aÿq"G@ 6\0\f\v \tO\rQA\0!A!@ jAu"\f \fAtj(\0H"" \f "kAG\r\0\v \r Atj/\0!\f \b Avj-\0\0! \0Aj6À\b AÿqAj6\f \f AtAqvAtA<qr"68 \tO\rQA\0!A!@ jAu"\t \tAtj(\0H"" \t "kAG\r\0\v 6\0 \r Atj/\0! \b Avj-\0\0! \0Aj6À\b \fAtAqvAtA<qr68\v \v( -\0\b"\0:\0\0 (\fAk"6\f \0 (à"AvsAt(ð# A\bts6à (\0"\v \v(Aj"\x006 \v \v(Ak"6 \v \v(Aj6 \0E@ \v \v(Aj6\v \r\0\v\vA\0! (À\b (ÀôAjG\rN (\f\rN (àAs"\x006à (0"AN (Ø! \x006$ 6 A´\n A j (0 \vAN@@@Aäý\0(\0"\0A\0N@ \0E\rAÈ(\0 \0AÿÿÿÿqG\r\v@Aèý\0(\0AÝ\0F\r\0A¬ý\0(\0"\0A¨ý\0(\0F\r\0A¬ý\0 \0Aj6\0 \0AÝ\0:\0\0\f\v%\f\vAäý\0Aäý\0(\0"\0Aÿÿÿÿ \06\0@@Aèý\0(\0AÝ\0F\r\0A¬ý\0(\0"\0A¨ý\0(\0F\r\0A¬ý\0 \0Aj6\0 \0AÝ\0:\0\0\f\v%\vAäý\0(\0Aäý\0A\x006\0\v\v (à"\0 (ØG@A|!\fO\vA! A6 (äAw \0s6ä (\0\v! (ðô! (ìô!! (èô!" (äô! (àô!# (Üô!) (Øô! (Ôô! (Ðô!3 (Ìô!$ (Èô! (Äô! (Àô!\v (¼ô! (¸ô!\r (´ô! (°ô! (¬ô!\t (¨ô!\f (¤ô! ( ô! (ô! (ô! (ô!\b@@@@ A\vk()\b\t\n\v9\f\r!"C#$%G\0 \v ( !A\0\fG\v ( !%A\0!\fG\v ( !&A!\fF\v ( !\v A\v6 A\bN@ A\bk!\0 (!\n\f"\v (!@ E\rG (\0"\0-\0\0! A\bj"6 (A\btr"\n6 Ak"6 \0Aj6\0 (\bAj"\x006\b \0E@ (\fAj6\f\v A\0N !\0 !E\r\0\v\f!\v ( !\0\f!\v ( !\f!\v ( !\f"\v ( !\0\f,\v ( !\f,\v ( !\0\f,\v ( !\f,\v ( !\f-\v ( !\0\f-\v ( !\f-\v ( !\0\f-\v ( !\f-\v ( !\0\f-\v ( !\f-\v ( !\f0\v ( !*A\f1\v ( !\f\v ( !\0\f\v ( !\f\v ( !\0\f\v ( !\f\v ( !\0\f\v ( !\f\v ( !\0\f\v ( !\f\v#\0Ak"\0$\0 \0Aé6 \0A¡6\0A \0A\0\vA!\f)\vA!\f(\vA\f\vA!\f\vA\f!\vA\f!\vA\f \v \x006 \n \0vAÿqAÚ\0G\r%\v A\f6@ \0A\bN@ \0A\bk! (!\n\f\v (!@ E\r% (\0"-\0\0! \0A\bj"6 (A\btr"\n6 Ak"6 Aj6\0 (\bAj"6\b E@ (\fAj6\f\v \0A\0N \0! !\0E\r\0\v\v 6 \n vAÿqAè\0G\r$\v A\r6@ A\bN@ A\bk! (!\n\f\v (!\0@ \0E\r$ (\0"-\0\0! A\bj"6 (A\btr"\n6 \0Ak"\x006 Aj6\0 (\bAj"6\b E@ (\fAj6\f\v A\0N ! !E\r\0\v\v 6 \n vAÿq"\x006$A\0! \0A:kAwI@A{!\f&\v \0A0k"\x006$ (,! ($! -\0(@ \0AÀ\flA \x006Ð (, ($A lAuA ($\0"\x006ÔA}! (ÐE\r& \0E\r&\f\v \0AµlA \0"\x006Ì \0\r\0A}!\f%\v A6@ ( "\0A\bN@ \0A\bk! (!\n\f\v (\0"(!@ E\r# (\0"-\0\0! \0A\bj"6 (A\btr"\n6 Ak"6 Aj6\0 (\bAj"6\b E@ (\fAj6\f\v \0A\0N \0! !\0E\r\0\v\v 6 \n vAÿq"\0AF\r \0A1G\r \v A6 A\bN@ A\bk!\0 (!\n\f\n\v (\0"(!@ E\r! (\0"\0-\0\0! A\bj"6 (A\btr"\n6 Ak"6 \0Aj6\0 (\bAj"\x006\b \0E@ (\fAj6\f\v A\0N !\0 !E\r\0\v\f\t\v A*6@ A\bN@ A\bk!\0 (!\n\f\v (\0"(!@ E\r! (\0"\0-\0\0! A\bj"6 (A\btr"\n6 Ak"6 \0Aj6\0 (\bAj"\x006\b \0E@ (\fAj6\f\v A\0N !\0 !E\r\0\v\v \x006 \n \0vAÿqAò\0G\r\v A+6@ \0A\bN@ \0A\bk! (!\n\f\v (\0"(!@ E\r (\0"-\0\0! \0A\bj"6 (A\btr"\n6 Ak"6 Aj6\0 (\bAj"6\b E@ (\fAj6\f\v \0A\0N \0! !\0E\r\0\v\v 6 \n vAÿqAÅ\0G\r\v A,6@ A\bN@ A\bk!\0 (!\n\f\v (\0"(!@ E\r (\0"\0-\0\0! A\bj"6 (A\btr"\n6 Ak"6 \0Aj6\0 (\bAj"\x006\b \0E@ (\fAj6\f\v A\0N !\0 !E\r\0\v\v \x006 \n \0vAÿqA8G\r\v A-6@ \0A\bN@ \0A\bk! (!\n\f\v (\0"(!@ E\r (\0"-\0\0! \0A\bj"6 (A\btr"\n6 Ak"6 Aj6\0 (\bAj"6\b E@ (\fAj6\f\v \0A\0N \0! !\0E\r\0\v\v 6 \n vAÿqAÐ\0G\r\v A.6@ A\bN@ A\bk!\0 (!\n\f\v (\0"(!@ E\r (\0"\0-\0\0! A\bj"6 (A\btr"\n6 Ak"6 \0Aj6\0 (\bAj"\x006\b \0E@ (\fAj6\f\v A\0N !\0 !E\r\0\v\v \x006 \n \0vAÿqAG\r A\x006Ü\v A/6@ \0A\bN@ \0A\bk! (!\n\f\v (\0"(!@ E\r (\0"-\0\0! \0A\bj"6 (A\btr"\n6 Ak"6 Aj6\0 (\bAj"6\b E@ (\fAj6\f\v \0A\0N \0! !\0E\r\0\v\v 6 \n vAÿq (ÜA\btr6Ü\v A06@ A\bN@ A\bk!\0 (!\n\f\v (\0"(!@ E\r (\0"\0-\0\0! A\bj"6 (A\btr"\n6 Ak"6 \0Aj6\0 (\bAj"\x006\b \0E@ (\fAj6\f\v A\0N !\0 !E\r\0\v\v \x006 \n \0vAÿq (ÜA\btr6Ü\v A16@ \0A\bN@ \0A\bk! (!\n\f\v (\0"(!@ E\r (\0"-\0\0! \0A\bj"6 (A\btr"\n6 Ak"6 Aj6\0 (\bAj"6\b E@ (\fAj6\f\v \0A\0N \0! !\0E\r\0\v\v 6 \n vAÿq (ÜA\btr6Ü\v A26@ A\bN@ A\bk! (!\n\f\v (\0"(!\0@ \0E\r (\0"-\0\0! A\bj"6 (A\btr"\n6 \0Ak"\x006 Aj6\0 (\bAj"6\b E@ (\fAj6\f\v A\0N ! !E\r\0\v\v 6 A! A6 \n vAÿq (ÜA\btr6ÜA!\f\v \x006 \n \0vAÿqAÁ\0G\r\v A6@ \0A\bN@ \0A\bk! (!\n\f\v (\0"(!@ E\r (\0"-\0\0! \0A\bj"6 (A\btr"\n6 Ak"6 Aj6\0 (\bAj"6\b E@ (\fAj6\f\v \0A\0N \0! !\0E\r\0\v\v 6 \n vAÿqAÙ\0G\r\v A6@ A\bN@ A\bk!\0 (!\n\f\v (\0"(!@ E\r (\0"\0-\0\0! A\bj"6 (A\btr"\n6 Ak"6 \0Aj6\0 (\bAj"\x006\b \0E@ (\fAj6\f\v A\0N !\0 !E\r\0\v\v \x006 \n \0vAÿqA&G\r\v A6@ \0A\bN@ \0A\bk! (!\n\f\v (\0"(!@ E\r (\0"-\0\0! \0A\bj"6 (A\btr"\n6 Ak"6 Aj6\0 (\bAj"6\b E@ (\fAj6\f\v \0A\0N \0! !\0E\r\0\v\v 6 \n vAÿqAÓ\0G\r\v A6@ A\bN@ A\bk! (!\n\f\v (\0"(!\0@ \0E\r (\0"-\0\0! A\bj"6 (A\btr"\n6 \0Ak"\x006 Aj6\0 (\bAj"6\b E@ (\fAj6\f\v A\0N ! !E\r\0\v\v 6 \n vAÿqAÙ\0G\r (,Aj"\x006, (0AN@ \x006A Aj\v A\x006Ø\v A6@ ( "\0A\bN@ \0A\bk! (!\n\f\v (\0"(!@ E\r (\0"-\0\0! \0A\bj"6 (A\btr"\n6 Ak"6 Aj6\0 (\bAj"6\b E@ (\fAj6\f\v \0A\0N \0! !\0E\r\0\v\v 6 \n vAÿq (ØA\btr6Ø\v A6@ A\bN@ A\bk!\0 (!\n\f\v (\0"(!@ E\r (\0"\0-\0\0! A\bj"6 (A\btr"\n6 Ak"6 \0Aj6\0 (\bAj"\x006\b \0E@ (\fAj6\f\v A\0N !\0 !E\r\0\v\v \x006 \n \0vAÿq (ØA\btr6Ø\v A6@ \0A\bN@ \0A\bk! (!\n\f\v (\0"(!@ E\r (\0"-\0\0! \0A\bj"6 (A\btr"\n6 Ak"6 Aj6\0 (\bAj"6\b E@ (\fAj6\f\v \0A\0N \0! !\0E\r\0\v\v 6 \n vAÿq (ØA\btr6Ø\v A6@ A\bN@ A\bk!\0 (!\n\f\v (\0"(!@ E\r (\0"\0-\0\0! A\bj"6 (A\btr"\n6 Ak"6 \0Aj6\0 (\bAj"\x006\b \0E@ (\fAj6\f\v A\0N !\0 !E\r\0\v\v \x006 \n \0vAÿq (ØA\btr6Ø\v A6@ \0A\0J@ (!\f\v (\0"(! \0!@ E\r (\0"-\0\0! A\bj"\x006 (A\btr"6 Ak"6 Aj6\0 (\bAj"6\b E@ (\fAj6\f\v AxJ \0!E\r\0\v\v A\x0064 \0Ak"6 vAq:\0\v A6@ A\bN@ A\bk!\0 (!\n\f\v (\0"(!@ E\r (\0"\0-\0\0! A\bj"6 (A\btr"\n6 Ak"6 \0Aj6\0 (\bAj"\x006\b \0E@ (\fAj6\f\v A\0N !\0 !E\r\0\v\v \x006 \n \0vAÿq (4A\btr64\v A6@ \0A\bN@ \0A\bk! (!\n\f\v (\0"(!@ E\r\r (\0"-\0\0! \0A\bj"6 (A\btr"\n6 Ak"6 Aj6\0 (\bAj"6\b E@ (\fAj6\f\v \0A\0N \0! !\0E\r\0\v\v 6 \n vAÿq (4A\btr64\v A6@ A\bN@ A\bk! (!\n\f\v (\0"(!\0@ \0E\r\f (\0"-\0\0! A\bj"6 (A\btr"\n6 \0Ak"\x006 Aj6\0 (\bAj"6\b E@ (\fAj6\f\v A\0N ! !E\r\0\v\v 6 (4A\bt"\0 \n vAÿqr"64A\0!A|! \0A\0H\r\r ($A lA\nrJ\r\rA\0\v!@@@ E@ AN\r !\bA!\f\v A6@ ( "A\0J@ (!\f\v (\0"(! !\0@ E\r (\0"-\0\0! \0A\bj"6 (A\btr"6 Ak"6 Aj6\0 (\bAj"6\b E@ (\fAj6\f\v \0AxJ !\0E\r\0\v\v Ak"\x006 \b 5j \0vAq:\0\0 \bAj!\f\vA\0!\b 2A\0Aü\v\0 !4A\0!\f\vA\0!\f\0\v\0\v@@@@@ E@ \bAJ\rA\0! \b 5j-\0\0E\r\f\v A6 ( "A\0J@ (!\f\v (\0"(! !\0@ E\r (\0"-\0\0! \0A\bj"6 (A\btr"6 Ak"6 Aj6\0 (\bAj"6\b E@ (\fAj6\f\v \0AxJ !\0E\r\0\v\f\vA\0! A\x006èA\0!@ 2j-\0\0@ 1j :\0\0 (èAj"6è\v 2 Ar"\0j-\0\0@ 1j \0:\0\0 (èAj"6è\v Aj"AG\r\0\v E@A|!A\0! 4!\f\v Aj! 4!\f\v Ak"\x006 \0vAq@ 2 \bAtj jA:\0\0\v Aj!\v !4 AJ\r\0A!\f\v \bAj!\bA\0!\f\0\v\0\v A6@ ( "AN@ (!\f\v (\0"(! !\0@ E\r\t (\0"-\0\0! \0A\bj"6 (A\btr"6 Ak"6 Aj6\0 (\bAj"6\b E@ (\fAj6\f\v \0AzJ !\0E\r\0\v\v Ak"6 vAq"AkAO\r\v A6@ AN@ (!\f\v (\0"(! !\0@ E\r\b (\0"-\0\0! \0A\bj"6 (A\btr"6 Ak"6 Aj6\0 (\bAj"6\b E@ (\fAj6\f\v \0AJ !\0E\r\0\v\v Ak"\x006 A\0!\f \0vAÿÿq"E\rA\0!\bA\0\v!@@ E@ \b N\r !\fA\0!A!\f\v A 6 Aj"\0 \0 H! ( !@@@ A\0J@ (!\f\v (\0"(! !\0@ E\r\v (\0"\n-\0\0! \0A\bj"6 (A\btr"6 Ak"6 \nAj6\0 (\bAj"\n6\b \nE@ (\fAj6\f\v \0AxJ !\0E\r\0\v\v Ak"6 vAqE\rA|!A\0! Aj" H\r\0\v !\f\v\v \b 7j :\0\0 \bAj!\b \f!A\0!\f\v\vA\0!A\0! A\0J@@ A*j j :\0\0 Aj"Aÿq"K\r\0\v\vA\0!A\0!A\0!\b A\0J@@ 7j-\0\0" A*jj-\0\0!\b@ E\r\0A\0! "!\0 Aq"@@ A*j j"\0 \0Ak-\0\0:\0\0 Ak! Aj"Aÿq G\r\0\v Aüq!\0\v AI\r\0@ A*j j"Ak Ak(\0\x006\0\0 Ak! \0Ak"\0Aÿq\r\0\v\v \b:\0* 0j \b:\0\0 Aj" G\r\0\v !\b\vA\0\v!@@@@@@@@@@@@@@ \0\v N\r !\fA!\f\v A!6 ( "AH\r (!\f\t\v A\0J\rA\0\f\v (\0"(! !\0@ E\r (\0"-\0\0! \0A\bj"6 (A\btr"6 Ak"6 Aj6\0 (\bAj"6\b E@ (\fAj6\f\v \0A|J !\0E\r\0\v\f\v A#6 *A\0L\r (!\f\v A"6@ ( "A\0L@ (\0"(! !\0@ E\r (\0"-\0\0! \0A\bj"6 (A\btr"6 Ak"6 Aj6\0 (\bAj"6\b E@ (\fAj6\f\v \0AxJ !\0E\r\0\v\f\v (!\v Ak"*6 *vAq\r 6 Alj \bj $:\0\0 \bAj\f\v (\0"(! *!\0@ E\r (\0"-\0\0! \0A\bj"*6 (A\btr"6 Ak"6 Aj6\0 (\bAj"6\b E@ (\fAj6\f\v \0AxJ *!\0E\r\0\v\f\v Aþÿÿÿq! Aq!\n Aüÿÿÿq!\b Aq!A\0!@@ A\0J@ 6 Alj!\fA\0!A !A\0!A\0!\tA\0!A\0!@ AI"E@@ \t \fj"\0-\0\0" K"\v \0-\0" \vK" \0-\0"\v \v K" \0-\0"\0 \0 K! I" K" \v \vK" \0 \0 I! \tAj"\t \bG\r\0\v ! \b! E\r\v !@ \fj-\0\0"\0 \0 K! \0 \0 I! Aj! Aj" G\r\0\v\v . A\bl"\tj!A\0! !@ !\0A\0!A\0!\v@ AG@@ \fj-\0\0 \0F@ Atj 6\0 Aj!\v \f Ar"\vj-\0\0 \0F@ Atj \v6\0 Aj!\v Aj" G\r\0\v !\v \nE\r\v \0 \v \fj-\0\0G\r\0 Atj \v6\0 Aj!\v \0Aj! \0 G\r\0\vA\0!\0 \t +j"A\0AÜ\0ü\v\0 I!\tA\0!A\0!\v E@@ \v \fj"-\0\0Atj" (Aj6 -\0Atj" (Aj6 -\0Atj" (Aj6 -\0Atj" (Aj6 \vAj"\v \bG\r\0\v \v! E\r\v@ \fj-\0\0Atj" (Aj6 Aj! \0Aj"\0 G\r\0\v\f\vA\0! + A\blj"A\0AÜ\0ü\v\0A!\tA !\v + A\bl"\0j" ( (\0j"6 (\b j"6\b (\f j"6\f ( j"6 ( j"6 ( j"6 ( j"6 ( j"6 ($ j"6$ (( j"6( (, j"6, (0 j"60 (4 j"64 (8 j"68 (< j"6< A@k" (\0 j"6\0 (D j"6D (H j"6H (L j"6L (P j"6P (T j"6T (X j6X \0 /j"\fA\0AÜ\0ü\v\0@ \t\r\0A\0!\v "\0 G@ \0 kAj"\0Aq \0Aþq! !\0A\0!@ \f \0At"j \v Aj"9j":(\0 j(\0kj"Ak6\0 \f 9j \0Aj"\0Atj(\0 :(\0k Atj"Ak6\0 At!\v Aj" G\r\0\vE\r\v \f \0At"\0j \0 j"\0( \0(\0k \vjAk6\0\v@ M\r\0 Aj! "\0kAq@ Atj" \f \0Atj(\0At (\0kAj6\0 !\0\v F\r\0@ \0At"Aj"j"\t \fj(\0At \t(\0kAj6\0 \0Aj"\0Atj" \fj(\0At (\0kAj6\0 \0 G\r\0\v\v - Atj 6\0 Aj" G\r\0\v \v! ($ (è!\b (A\0A\bü\v\0A!Aÿ!\0@ \0 j"Ak "At"Ar:\0\0 Ar:\0\0 Ak A\rr:\0\0 Ak A\fr:\0\0 Ak A\vr:\0\0 Ak A\nr:\0\0 Ak A\tr:\0\0 Ak A\br:\0\0 A\bk Ar:\0\0 A\tk Ar:\0\0 A\nk Ar:\0\0 A\vk Ar:\0\0 A\fk Ar:\0\0 A\rk Ar:\0\0 Ak Ar:\0\0 \0Ak"j :\0\0 \' Atj 6\0 Ak! \0Ak!\0 \r\0\vA l! \bAj!\t A\0L@A|!A\0!\vA!\bA\0!A\0! !\f\f\v / 0-\0\0"#A\bl"\0j!" \0 .j! \0 +j!!A!\bA1!A\0!\v - #Atj(\0"!A\0! !\f\f\vA!\f\v *Ak"\x006 AA \0vAq $j!$\f\v Ak"\x006 \0vAq!$A\0\v"\b H\r\0 Aj! \f!\f\v $AkAlI\rA!\f\vA\0!\f\0\v\0\v A$6@ ( "L@ (!\n\f\v (\0"("\0E\r (\b! (\0! (!\n@ -\0\0! A\bj"6 \nA\btr"\n6 Aj"6\b \0Ak"\x006 Aj"6\0 E@ (\fAj6\f\v N\rA\0! \0\r\0\vA\0!\f\v k"6 A tAs \n vq!A\v!@@@@@@ E@ A%6 A\0L\r (!\f\vA|!A\0! AJ\r\v " At"\0j(\0L\r Aj!\f\v (\0"(! !\0@ E\r\b (\0"-\0\0! \0A\bj"6 (A\btr"6 Ak"6 Aj6\0 (\bAj"6\b E@ (\fAj6\f\v \0AxJ !\0E\r\0\v\v Ak"6 vAq") Atr!\f\v \0 !j(\0k"\0AK\r\b \0Atj(\0!\rA!\f\vA\0!\f\vA!\f\0\v\0\v@@@@@@@@@@@@@@@@@@ \0\v A\'6 %A\0L\r (!\f\v A)6 &A\0L\r (!\f\v \t \rF\rA! \rAK\rA!\f\f\v A&6 ( "L@ (!\n\f\n\v (\0"("\0E\r (\b! (\0! (!\n@ -\0\0! A\bj"6 \nA\btr"\n6 Aj"6\b \0Ak"\x006 Aj"6\0 E@ (\fAj6\f\v N\r\nA\0! \0\r\0\vA\0!\f\v (\0"(! %!\0@ E\r (\0"-\0\0! \0A\bj"%6 (A\btr"6 Ak"6 Aj6\0 (\bAj"6\b E@ (\fAj6\f\v \0AxJ %!\0E\r\0\v\v %Ak"%6 %vAq") Atr\f\b\vA|! \v N\r \rAk!@ \rAM@ \'(\0j" j"\0-\0\0!\n@@ \rAH@ !\f\v@ \rAk"AqE@ \0Ak \0Ak(\0\x006\0\0 "AI\r\v !@ j"\0Ak \0Ak(\0\x006\0\0 \0Ak \0Ak/\0\0;\0\0 \0Ak \0A\bk/\0\0;\0\0 A\bk"AK\r\0\v\v E\r\vA\0! Aq"\0E\r\0@ j" Ak-\0\0:\0\0 Ak! Aj" \0G\r\0\v\v \n:\0\0\f\v \' Av"Atj"(\0"\0 Aq"j"j-\0\0!\n @@ j"\0 \0Ak-\0\0:\0\0 Ak" (\0"\0J\r\0\v\v \0Aj6\0@ \' Atj"\0 \0(\0Ak"6\0 j \0Ak(\0j-\0:\0\0 AK Ak!\r\0\v \' \'(\0Ak"\x006\0 \0 j \n:\0\0 \'(\0\r\0A!Aÿ!\0@ \0 j" \' "Atj"(\0j-\0:\0\0 Ak (\0j-\0:\0\0 Ak (\0j-\0\r:\0\0 Ak (\0j-\0\f:\0\0 Ak (\0j-\0\v:\0\0 Ak (\0j-\0\n:\0\0 Ak (\0j-\0\t:\0\0 Ak (\0j-\0\b:\0\0 A\bk (\0j-\0:\0\0 A\tk (\0j-\0:\0\0 A\nk (\0j-\0:\0\0 A\vk (\0j-\0:\0\0 A\fk (\0j-\0:\0\0 A\rk (\0j-\0:\0\0 Ak (\0j-\0:\0\0 \0Ak"j (\0j-\0\0:\0\0 6\0 Ak! \0Ak!\0 \r\0\v\v ( 1 \nAÿqj-\0\0"\0Atj" (\0Aj6\0@ -\0(@ (Ð \vAtj \0;\0\f\v (Ì \vAtj \x006\0\v \vAj!\v E@A\0! Aj" \fN\r + 0j-\0\0"#A\bl"\0j!! \0 .j! \0 /j!"A2! - #Atj(\0!\v Ak! !A!\f\f\v A(6 ( "L@ (!\n\f\v (\0"("\0E\r\r (\b! (\0! (!\n@ -\0\0! A\bj"6 \nA\btr"\n6 Aj"6\b \0Ak"\x006 Aj"6\0 E@ (\fAj6\f\v N\rA\0! \0\r\0\vA\0!\f\v (\0"(! &!\0@ E\r\r (\0"-\0\0! \0A\bj"&6 (A\btr"6 Ak"6 Aj6\0 (\bAj"6\b E@ (\fAj6\f\v \0AxJ &!\0E\r\0\v\v &Ak"&6 &vAq") Atr\f\vA\0!A|! (4"\0A\0H@ \r!\t\f\v \0 \vN@ \r!\t\f\v@@@ ( Atj(\0"\0A\0H\r \0 \vJ\r ( Ar"\bAtj(\0"\0A\0H\r \0 \vJ\r ( Ar"\bAtj(\0"\0A\0H\r \0 \vJ\r ( Ar"\bAtj(\0"\0A\0H\r \0 \vJ\r Aj"AG\r\0\v A\x006\0A!A!\0@ \0At"j j(\x006\0 Aj"j j(\x006\0 A\bj"j j(\x006\0 A\fj"j j(\x006\0A\0!\b \0Aj"\0AG\r\0\vA\0!\0@ Atj" (\0 \0j"\x006\0 ( \0j"\x006 (\b \0j"\x006\b (\f \0j"\x006\f ( \0j"\x006 ( \0j"\x006 ( \0j"\x006 ( \0j"\x006 A\bj"AG\r\0\v@@@A\0! \bAtj(\0"\0A\0H@ \r!\t\f\v \0 \vJ@ \r!\t\f\v \bAF@A!\b@ \bAtj"\0Ak(\0 \0(\0"J@ \r!\t\f\v \bAj"\0Atj(\0"J@ \r!\t \0!\b\f\v \bAj"\0Atj(\0"J@ \r!\t \0!\b\f\v \bAj"\0Atj(\0 H@ \r!\t \0!\b\f\v \bAj"\bAG\r\0\v A6à A\0:\0\b A\x006\f A6 (0AN@AâA\vA\0!A\0!\0@@@ -\0(E@ (Ì!\0@ \vAG@ \vAq \vAþÿÿÿq!\t@ \0 \0 Atj-\0\0Atj"(\0Atj"\b \b(\0 A\btr6\0 (\0Aj6\0 \0 \0 Ar"\bAtj-\0\0Atj"(\0Atj" (\0 \bA\btr6\0 (\0Aj6\0 Aj" \tG\r\0\vE\r\v \0 \0 Atj-\0\0Atj"(\0Atj" (\0 A\btr6\0 (\0Aj6\0\v \0 (4Atj(\0! A\x006À\b A\bv"68 -\0E\r B\x007 ($A lO\r \0 Atj(\0! A6À\b Bê7\f\v@ , \0At"j j(\x006\0 \0AG@ , Ar"j j(\x006\0 , A\br"j j(\x006\0 , A\fr"j j(\x006\0 \0Aj!\0\f\v\v@ (Ð Atj"\0 , \0-\0\0Atj"\0(\0";\0 (Ô Avj"\t-\0\0! \t Aq Aq A\fvAðÿ?qr Apq Avr\v:\0\0 \0 \0(\0Aj6\0 Aj" \vG\r\0\v (Ô (4"Auj-\0\0 AtAqvAtA<q (Ð Atj/\0r!@ "\bAt"\0 (Ðj"\t/\0! \bAv" (Ôj"-\0\0 \t ;\0 -\0\0!\t \bAtAq"vAtA<q r! \bAq \tAq A\fvAðÿ?qr \tApq Avr\v:\0\0 \b" (4G\r\0\v A\x006À\b 68@ -\0@ B\x007 ($A lO\rA\0!A!@ jAu"\t \b \tAtj(\0H"\n" \t \n"kAG\r\0\v 6\0 (Ð \0j/\0!\0 (Ô j-\0\0! (À\bAj6À\b 6\0 Bê7\f\v \b ($A lO\rA\0!A!@ jAu"\t \b \tAtj(\0H"\n" \t \n"kAG\r\0\v 6\0 (Ð \0j/\0!\0 (Ô j-\0\0! (À\bAj6À\b\v \0 vAtA<qr68 \r!\tA\0!\f\v ($A lO\r \0 Atj(\0! A6À\b\v A\bv68 Aÿq6\0 \r!\t \v!\bA\0!\f\vA!\f\v \bAr"\0Atj(\0"A\0H\r \vJ\r \bAr"\0Atj(\0"A\0H\r \vJ\r@ \bAr"\0Atj(\0"A\0H\r\0 \vJ\r\0 \bAj!\b\f\v\v \r!\t \0!\b\f\v \r!\t \0!\b\f\v \r!\t \0!\b\f\v \r!\t\f\r\v \r!\t !\b\f\f\v k"&6 A tAs \n &vq\v!A|!A\0! AJ\r\v@ " At"\0j(\0 H@ Aj!\f\v \0 !j(\0k"\0AK\r\f \0Atj(\0!\r\f\vA!\f\v k"%6 A tAs \n %vq\v!A|!A\0! AJ\r\t " At"\0j(\0 H@ Aj!\f\v \0 !j(\0k"\0AK\r\t \0Atj(\0"\rAO\r !\vA|! Aÿÿÿ\0J@A\0! !\f\t\v At" \r j! E@A\0! \f Aj"L@A\0!\f\n\v + 0j-\0\0"#A\bl"\0j!! \0 .j! \0 /j!"A2! - #Atj(\0!\v Ak! !A!\f\v ( 1 (ü<j-\0\0j-\0\0"Atj"\0 Aj" \0(\0j6\0@@ -\0(@ A\0N\r !\f\v A\0N\r !\f\v \v \v J!\0@ \0 \vF@ ! \0!\v\f\n\v (Ð \vAtj ;\0 \vAj!\v AJ Ak"!\r\0\v\f\v \v \v J!\0@ \0 \vF@ ! \0!\v\f\t\v (Ì \vAtj 6\0 \vAj!\v AJ Ak"!\r\0\v\f\vA\0!\f\vA!\f\0\v\0\vA|!\f\vA\0!A\0!\f\vA{!\vA\0!\v 6ðô !6ìô "6èô 6äô #6àô )6Üô 6Øô 6Ôô 36Ðô $6Ìô 6Èô 6Äô \v6Àô 6¼ô \r6¸ô 6´ô 6°ô \t6¬ô \f6¨ô 6¤ô 6 ô 6ô 6ô \b6ô E\r\0 (ä! (0AN@ (Ü!\0 6 \x006\0AÆ\n (ä!\vAA| (ÜF!\f\vA! (AF\r\0\v\v A0j$\0@@@ "\0\v (\0 (k6\0A\0! ( "\0E\r \0(\0 G\r \0(Ì"@ (, ((\0\0\v \0(Ð"@ (, ((\0\0\v \0(Ô"\0@ (, \0 ((\0\0\v (, ( ((\0\0\f\v (!@ ( "\0E\r\0 \0(\0 G\r\0 \0(Ì"@ (, ((\0\0\v \0(Ð"@ (, ((\0\0\v \0(Ô"\0@ (, \0 ((\0\0\v (, ( ((\0\0\vAyAx !\f\v ( "\0E\r\0 \0(\0 G\r\0 \0(Ì"@ (, ((\0\0\v \0(Ð"@ (, ((\0\0\v \0(Ô"\0@ (, \0 ((\0\0\v (, ( ((\0\0\v A0j$\0 \vÆ@@ A\0 \0kAHE@ \0,\0\0"Aÿ\0q! A\0N@ \0Aj!\f\v \0,\0"Aÿ\0q Atr! A\0N@ \0Aj!\f\v \0,\0"Aÿ\0q Atr! A\0N@ \0Aj!\f\v \0,\0"Aÿ\0q Atr! A\0N@ \0Aj!\f\v \0,\0"Aÿ\0q Atr! A\0N@ \0Aj!\f\v \0-\0Aÿ\0q Atr! \0Aj!\f\v \0 O@ A\x006\0A\0\v \0,\0\0"A\0N\r \0!@ ,\0\0"Aÿ\0q Atr! Aj! A\0N\r K\r\0\v\v 6\0 \0k\v 6\0A\v\v \0 j!@@ \0("Aq\r\0 AqE\r \0(\0" j!@@@ \0 k"\0AÈþ\0(\0G@ \0(\f! AÿM@ \0(\b"G\rA´þ\0A´þ\0(\0A~ Avwq6\0\f\v \0(! \0 G@ \0(\b" 6\f 6\b\f\v \0(" \0Aj \0("E\r \0Aj\v!@ ! "Aj! ("\r\0 Aj! ("\r\0\v A\x006\0\f\v ("AqAG\rA¼þ\0 6\0 A~q6 \0 Ar6 6\0\v 6\f 6\b\f\vA\0!\v E\r\0@ \0("At"(ä \0F@ Aäj 6\0 \rA¸þ\0A¸þ\0(\0A~ wq6\0\f\v@ \0 (F@ 6\f\v 6\v E\r\v 6 \0("@ 6 6\v \0("E\r\0 6 6\v@@@@ ("AqE@AÌþ\0(\0 F@AÌþ\0 \x006\0AÀþ\0AÀþ\0(\0 j"6\0 \0 Ar6 \0AÈþ\0(\0G\rA¼þ\0A\x006\0AÈþ\0A\x006\0\vAÈþ\0(\0"\b F@AÈþ\0 \x006\0A¼þ\0A¼þ\0(\0 j"6\0 \0 Ar6 \0 j 6\0\v Axq j! (\f! AÿM@ (\b" F@A´þ\0A´þ\0(\0A~ Avwq6\0\f\v 6\f 6\b\f\v (! G@ (\b" 6\f 6\b\f\v (" Aj ("E\r Aj\v!@ ! "Aj! ("\r\0 Aj! ("\r\0\v A\x006\0\f\v A~q6 \0 Ar6 \0 j 6\0\f\vA\0!\v E\r\0@ ("At"(ä F@ Aäj 6\0 \rA¸þ\0A¸þ\0(\0A~ wq6\0\f\v@ (F@ 6\f\v 6\v E\r\v 6 ("@ 6 6\v ("E\r\0 6 6\v \0 Ar6 \0 j 6\0 \0 \bG\r\0A¼þ\0 6\0\v AÿM@ AøqAÜþ\0j!A´þ\0(\0"A Avt"qE@A´þ\0 r6\0 \f\v (\b\v! \x006\b \x006\f \0 6\f \0 6\b\vA! AÿÿÿM@ A& A\bvg"kvAq AtrA>s!\v \0 6 \0B\x007 AtAäj!@@A¸þ\0(\0"A t"qE@A¸þ\0 r6\0 \x006\0 \0 6\f\v A AvkA\0 AGt! (\0!@ "(Axq F\r Av! At! Aqj"("\r\0\v \x006 \0 6\v \0 \x006\f \0 \x006\b\v (\b" \x006\f \x006\b \0A\x006 \0 6\f \0 6\b\v\v?~@ \0"§" \0ArAI"\b"\0E\r\0 \0Ak-\0\0AqE\r\0 \0A\0 -\v \0\vð~@ E\r\0 \0 :\0\0 \0 j"Ak :\0\0 AI\r\0 \0 :\0 \0 :\0 Ak :\0\0 Ak :\0\0 AI\r\0 \0 :\0 Ak :\0\0 A\tI\r\0 \0A\0 \0kAq"j" AÿqA\bl"\x006\0 kA|q"j"Ak \x006\0 A\tI\r\0 \x006\b \x006 A\bk \x006\0 A\fk \x006\0 AI\r\0 \x006 \x006 \x006 \x006\f Ak \x006\0 Ak \x006\0 Ak \x006\0 Ak \x006\0 AqAr"k"A I\r\0 \0B~! j!@ 7 7 7\b 7\0 A j! A k"AK\r\0\v\v\v·| \0At"AÀj! Aàj+\0"D\0\0\0\0\0\0\0\0b@ +\0"¥" ¡ü üB|º ¢ " ¡!\v 9\0 \0 \0@A¨(\0AAA \0AF \0AF"\0Ak"vAq@A°A°(\0A tr6\0\f\v \0At( w"@ \0 \0\v\v\v\r\0 \0Aj\0\v\0\0\v\0\0\và#\0A k"$\0 \0("6 \0(! 6 6AA F"! Aj"A\br ! k"6 j!@@@@ \0(< A\fj"A°þ\0 6\0AA\0\vE@ (\f"F\r A\0N\r\f\v AG\r\v \0 \0(,"6 \0 6 \0 \0(0j6 \f\v A\bA\0 ("\bK"\tj" \bA\0 \tk"\b (\0j6\0 A\fA \tj" (\0 \bk6\0 k! \tk! !\f\v\v \0A\x006 \0B\x007 \0 \0(\0A r6\0A\0 AF\r\0 (k\v A j$\0\v\0\v\v\0 @ \v\v²@ A\0L\r\0@ \0 j",\0\0"Aÿq!A A\0N\r\0 A¿M@ Aj" N\r \0 j-\0\0 A\btAþ\0qr!A\f\v A_M@ Aj" N\r \0 j-\0\0 AtAü\0q -\0A\btrr!A\f\v AoM@ Aj" N\r \0 j-\0\0 AtAø\0q -\0Atr -\0A\btrr!A\f\v Aj" N\r \0 j-\0\0Aq -\0At Atr -\0A\ftr -\0Atrr!A\v Atj 6\0 Aj! j" H\r\0\v\v \v\0 \vÁe+#\0A@j"\v$\0@ E@ A\x006\0A\b!\f\v \vB\x0070 \vB\x007( \vB\x007 \vB\x007 \vB\x007 \vB\x007\b \vB\x007\0 \0-\0\0!@@ AF\r\0A!\f AG\r\0 \0-\0AF\r\vAAq AqA\bF!\f\v \vA\b6$ \vA\t6 A\0AAÐ7"E\r\0 A\bjA\0AÈ7ü\v\0 \v 6 A´þ\x006 \v6\0@@@A\0 \fk \fAq \fA\0H""AK\r\0A tAÔqE\r\0 A\x0064 B\x007, 6( A\0 \fAvAj "6\f A\x006 \vA\x006, \vA\x006\b \vB\x007 \fA\0N@ \v Aq60\v B\x007< A\x006$ A6 Bp7 B´þ\x007 Bp7Ä7 A´\nj"6p 6T 6PA At" A M"\b"E@A\0! \f\v \v 6\f \v 6 \v \x006\0 !@ \v 6@ \v( E\r \v($E\r \v("E\r (\0 \vG\r ("\0A´þ\0kAK\r \v(\f"\fE\r \v(\0"A E\r \0A¿þ\0F@ AÀþ\x006AÀþ\0!\0\v AÜ\0j!$ Aò\0j!% Aôj! AØ\0j! Að\0j! A´\nj! Aô\0j! (@! (<!\bA\0! ! !@A}!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ \0A´þ\0k\t\b\f\0:<*+02 &>E\v (!\0\f8\v (!\n\f9\v (L!\r\f.\v (L!\r\f+\v (l!\f$\v (\f!\0\f\v AO\r E\r6 A\bj!\0 Aj! Ak!\t -\0\0 t \bj!\b AM\r ! \t! \0!\f\v A O\r E\r5 Aj!\0 Ak! -\0\0 t \bj!\b AM\r\r \0! !\f\v AO\r E\r4 A\bj!\0 Aj! Ak!\t -\0\0 t \bj!\b AM\r ! \t! \0!\f\v (\f"\nE\r@ AO\r\0 E\r4 A\bj!\0 Aj! Ak!\t -\0\0 t \bj!\b AK@ ! \t! \0!\f\v \tE@ !A\0! \0! !\f6\v Ar! Ak! -\0 \0t \bj!\b Aj!\v@ \nAqE\r\0 \bAG\r\0 ((E@ A6(\vA\0!\b A\x006 \vA;<A\0 \vA<jA\n!\0 Aµþ\x006 \x006A\0! (!\0\f8\v ($"\0@ \0A60\v@ \nAq@ \bA\btAþq \bA\bvjApE\r\v \vAù\f6 AÑþ\x006 (!\0\f8\v \bAqA\bG@ \vAÇ6 AÑþ\x006 (!\0\f8\v \bAv"\0Aq"\tA\bj! \tAM (("\n \n 6( \v OqE@ Ak! \vAî\r6 AÑþ\x006 \0!\b (!\0\f8\v A6A\0! A\x006 A \tt6 \vA60 A½þ\0A¿þ\0 \bAÀ\0q6A\0!\b (!\0\f7\v \tE@ !A\0! \0! !\f4\v Ar! Ak! -\0 \0t \bj!\b Aj!\v \b6 \bAÿqA\bG@ \vAÇ6 AÑþ\x006 (!\0\f6\v \bAÀq@ \vA¼\v6 AÑþ\x006 (!\0\f6\v ($"\0@ \0 \bA\bvAq6\0\v@ \bAqE\r\0 -\0\fAqE\r\0 \vA\b:\0< \v \bA\bv:\0= ( \vA<jA\n6\v A¶þ\x006A\0!A\0!\b\f\v AK\r\v E\r/ Aj!\0 Ak! -\0\0 t \bj!\b AK@ \0! !\f\v A\bj!\t E@ \0!A\0! \t! !\f1\v Aj!\0 Ak! -\0 \tt \bj!\b AK@ \0! !\f\v Aj!\t E@ \0!A\0! \t! !\f1\v Aj!\0 Ak! -\0 \tt \bj!\b AK@ \0! !\f\v Aj! E@ \0!\f0\v Ak! -\0 t \bj!\b Aj!\v ($"\0@ \0 \b6\v@ -\0AqE\r\0 -\0\fAqE\r\0 \v \b6< ( \vA<jA\n6\v A·þ\x006A\0!A\0!\b\f\v AK\r\v E\r, Aj!\0 Ak! -\0\0 t \bj!\b AK@ \0! !\f\v A\bj! E@ \0!\f-\v Ak! -\0 t \bj!\b Aj!\v ($"\0@ \0 \bA\bv6\f \0 \bAÿq6\b\v@ ("\0AqE\r\0 -\0\fAqE\r\0 \v \b;< ( \vA<jA\n6\v A¸þ\x006A\0!A\0!A\0!\b \0A\bq\r\f%\v ("\0A\bqE@ !\f%\v \b! AK\r\v E@A\0! !\b !\f+\v Aj!\t Ak!\n -\0\0 t j!\b AK@ \t! \n!\f\v A\bj! \nE@ \t!\f*\v Ak! -\0 t \bj!\b Aj!\v \b6D ($"@ \b6\vA\0!@ \0AqE\r\0 -\0\fAqE\r\0 \v \b;< ( \vA<jA\n6\vA\0!\b\f#\v A\bj!\t E@ \0!A\0! \t! !\f)\v Aj!\0 Ak! -\0 \tt \bj!\b AK@ \0! !\f\v Aj!\t E@ \0!A\0! \t! !\f)\v Aj!\0 Ak! -\0 \tt \bj!\b AK@ \0! !\f\v Aj! E@ \0!\f(\v Ak! -\0 t \bj!\b Aj!\v \b \bAxsAþxqA\bv \bA\bxs"\x006 \v \x0060 A¾þ\x006A\0!\bA\0!\v (E@ \v 6 \v \f6\f \v 6 \v 6\0 6@ \b6<\f.\v A6 \vA60 A¿þ\x006\v@ (\bE@ AK\r \r\f\'\v AÎþ\x006 \b Aqv!\b Axq! (!\0\f*\v Ak! -\0\0 t \bj!\b Aj! A\br\v \bAq6\bAÁþ\0!\0@@@@ \bAvAqAk\0\v A æ\x006P BÐ\x007X A ö\x006TAÇþ\0!\0\f\vAÄþ\0!\0\f\v \vA6AÑþ\0!\0\v \x006Ak! \bAv!\b (!\0\f(\v Axq!\0 \b Aqv!\b AK@ ! \0\f\v E@A\0! \0! !\f&\v \0A\bj!\t Aj! Ak!\n -\0\0 \0t \bj!\b AK@ \n! \t\f\v \nE@ !A\0! \t! !\f&\v \0Aj!\n Aj! Ak!\r -\0 \tt \bj!\b AK@ \r! \n\f\v \rE@ !A\0! \n! !\f&\v \0Aj!\0 Aj! Ak!\t -\0 \nt \bj!\b AK@ \t! \0\f\v \tE@ !A\0! \0! !\f&\v Aj! Ak! -\0 \0t \bj!\bA \v! \bAÿÿq"\0 \bAsAvG@ \vA©\f6 AÑþ\x006 ! (!\0\f(\v \x006DA\0!\b !A\0!\v AÃþ\x006\v (D"\0@ \0 \0 I"\0 \0 I"\0E@ !\f$\v \0@ \f \0ü\n\0\0\v (D \0k6D \0 \fj!\f \0k! \0 j! \0k! (!\0\f&\v A¿þ\x006 (!\0\f%\v \tE@ !A\0! \0! !\f"\v Ar! Ak! -\0 \0t \bj!\b Aj!\v \bAq"\0Aj6d \bAvAq"Aj6h \bA\nvAqAj"\t6` Ak! \bAv!\b AI \0AMqE@ \vA
\f6 AÑþ\x006 (!\0\f$\v AÅþ\x006A\0!\0 A\x006l\f\t\v (l"\0 (`"\tI\r\b\f\t\v E\r \f (D:\0\0 AÈþ\x006 Ak! \fAj!\f (!\0\f!\v (\f"\0E@A\0!\0\f\v@ AK@ !\f\v E\r A\bj!\t Aj! Ak!\n -\0\0 t \bj!\b AK@ \n! \t!\f\v \nE@ !A\0! \t! !\f\v Aj!\n Aj! Ak!\r -\0 \tt \bj!\b AK@ \r! \n!\f\v \rE@ !A\0! \n! !\f\v Aj!\t Aj! Ak!\r -\0 \nt \bj!\b AK@ \r! \t!\f\v \rE@ !A\0! \t! !\f\v A r! Aj! Ak! -\0 \tt \bj!\b\v \v k" \v(j6 ( j6 @ \0Aq"\tE\r\0 F\r\0 \f k!\t (!\n (@ \n \t \n\f\v \n \t "\v"6 \v 60\f\v \t\r\f\v AÀþ\x006\f\v ( \b \b \bAxsAþxqA\bv \bA\bxs (F\r\0 \vA§\r6 AÑþ\x006 ! ! (!\0\f\vA\0!\b !A\0! !\v AÏþ\x006\v@ \0E\r\0 (E\r\0@ AK@ !\f\v E\r A\bj!\t Aj! Ak!\n -\0\0 t \bj!\b AK@ \n! \t!\f\v \nE@ !A\0! \t! !\f\v Aj!\n Aj! Ak!\r -\0 \tt \bj!\b AK@ \r! \n!\f\v \rE@ !A\0! \n! !\f\v Aj!\t Aj! Ak!\r -\0 \nt \bj!\b AK@ \r! \t!\f\v \rE@ !A\0! \t! !\f\v A r! Aj! Ak! -\0 \tt \bj!\b\v@ \0AqE\r\0 \b ( F\r\0 \vA\r6 AÑþ\x006 ! (!\0\f\v !A\0!\bA\0!\v AÐþ\x006\vA!\f\v@ AM@ E\r Ak! -\0\0 t \bj!\b Aj! A\br!\v \0Aj"6l \0At/ð;Atj \bAq;\0 Ak! \bAv!\b "\0 \tG\r\0\v \t!\0\v \0AM@ \0!A\0!\n \0Aq"AG@@ At/ð;AtjA\0;\0 Aj! \nAj"\nsAG\r\0\v\v@ \0AK\r\0A k"AqE@ At"\0Að;j/\0AtjA\0;\0 \0Aò;j/\0AtjA\0;\0 \0Aô;j/\0AtjA\0;\0 \0Aö;j/\0AtjA\0;\0 AI\r Aj!\v@ At"\0Að;j/\0AtjA\0;\0 \0Aò;j/\0AtjA\0;\0 \0Aô;j/\0AtjA\0;\0 \0Aö;j/\0AtjA\0;\0 \0Aø;j/\0AtjA\0;\0 \0Aú;j/\0AtjA\0;\0 \0Aü;j/\0AtjA\0;\0 \0Aþ;j/\0AtjA\0;\0 A\bj"AG\r\0\v\v A6l\v 6T 6p A6X 6PA\0!A\0 A "@ \vA£\v6 AÑþ\x006 (!\0\f\v AÆþ\x006 A\x006lA\0!\v (d" (hj" K@A (XtAs! (P!@ \b q"\rAtj-\0"\t K@A\0!\r !\n !\t@ "\0 @@ \0-\0\0!\r \0Aj!\0 \nAk!\n \tA\bj" \r \tt \bj"\b q"\rAtj-\0"\tO\r !\t \n\r\0\v !\r\v \rj! \rAtj!\f\v \n! ! \0!\v@ \rAtj/"\nAM@ Aj"\x006l Atj \n;\0 \tk! \b \tv!\b \0!\f\v@@@ \nAk\0\v \tAj"\0 K@@ E\r Ak! -\0\0 t \bj!\b Aj! A\bj" \0I\r\0\v\v \tk! \b \tv!\0 E@ \vAë\v6 AÑþ\x006 \0!\b (!\0\f\v Ak! \0Av!\b \0AqAj!\r % Atj/\0\f\v \tAj"\0 K@@ E\r Ak! -\0\0 t \bj!\b Aj! A\bj" \0I\r\0\v\v \b \tv"\0Av!\b \0AqAj!\r \tkAk\f\v \tAj"\0 K@@ E\r Ak! -\0\0 t \bj!\b Aj! A\bj" \0I\r\0\v\v \b \tv"\0Av!\b \0Aÿ\0qA\vj!\r \tkAk\v!A\0\v!\0 \rj K\rA\0!\n \rAq"\t@ Atj \0;\0 Aj! \nAj"\n \tG\r\0\v \rAüq \r\v!\t@ \rAI\r\0A\0!\r \tAk"AvAjAq"@@ Atj"\n \0;\0 \n \0; \n \0; \n \0; Aj! \tAk!\t \rAj"\r G\r\0\v\v A\fI\r\0@ Atj"\n \0;\0 \n \0; \n \0; \n \0; \n \0; \n \0; \n \0; \n \0; \n \0; \n \0; \n \0;\f \n \0;\n \n \0;\b \n \0; \n \0; \n \0; Aj! \tAk"\t\r\0\v\v 6l\v I\r\0\v\v /ôE@ \vAÔ\f6 AÑþ\x006 (!\0\f\v A\t6X 6P 6pA "@ \vA\v6 AÑþ\x006 (!\0\f\v A6\\ (p6TA (dAtj (h $ "\rA\0!\v AÈþ\x006\v AI\r AI\r \v 6 \v 6\0 \v 6 \v \f6\f 6@ \b6< \f j"Ak! \f kj!& jAk! \v("(4"Axq!\' Aq!! j!( (,")j!*A (\\tAs!+A (XtAs!, (T!" (P!# (@!\b (<!\0 (8!\r (0!-@ \bAM@ -\0\0 \bt \0j -\0 \bA\bjtj!\0 \bAr!\b Aj!\v \b # \0 ,qAtj"-\0"k!\b \0 v!\0@@@@@@@@@@@@ \v@@ -\0\0"E@ \f -\0:\0\0 \fAj!\f\f\v Aq@ /!\t Aq"E@ ! \0\f\v \bM@ ! \b\f\v Aj! -\0\0 \bt \0j!\0 \bA\bj\v k!\b \0A tAsq \tj!\t \0 v\v! \bAM@ -\0\0 \bt j -\0 \bA\bjtj! \bAr!\b Aj!\v \b " +qAtj"-\0"\0k!\b \0v!\0 -\0\0"Aq\r@ AÀ\0qE@ \b " /Atj \0A tAsqAtj"-\0"k!\b \0 v!\0 -\0\0"AqE\r\f\v\v !A±\f\v AÀ\0qE@ \b # /Atj \0A tAsqAtj"-\0"k!\b \0 v!\0\f\v\vA¿þ\0 A q\rA\f\v /! Aq" \bM@ \b! \f\v -\0\0 \bt \0j!\0 Aj \bA\bj"M\r\0 -\0 t \0j!\0 \bAj! Aj\v! \0A tAsq! k!\b \0 v!\0 j" \f &k"M\r k"\n -M\r (Ä7E\rA¼\r\v6AÑþ\0\v6\f\v\v E@ \r ) \nkj! \t \nM@ \f!\f\n\vA\0! \nAq"E\r \f! \n!@ -\0\0:\0\0 Ak! Aj! Aj! Aj" G\r\0\v\f\v \n K@ \r * \nkj! \n k"\n \tO@ \f!\f\n\vA\0! \nAq"E\r \f! \n!@ -\0\0:\0\0 Ak! Aj! Aj! Aj" G\r\0\v\f\v \r \nkj! \t \nM@ \f!\f\t\vA\0! \nAq"E\r \f! \n!@ -\0\0:\0\0 Ak! Aj! Aj! Aj" G\r\0\v\f\v \f k!@ \f" "-\0\0:\0\0 -\0:\0 -\0:\0 Aj!\f Aj! \tAk"\tAK\r\0\v \tE\r\b -\0\0:\0 \tAG@ Aj!\f\f\t\v -\0:\0 Aj!\f\f\b\v \f! \n!\f\v \f! \n!\f\v \f! \n!\v j jk \fjAxK\r@ -\0\0:\0\0 -\0:\0 -\0:\0 -\0:\0 -\0:\0 -\0:\0 -\0:\0 -\0:\0 A\bj! A\bj! A\bk"\r\0\v\f\v ( j jk \fjAxM@@ -\0\0:\0\0 -\0:\0 -\0:\0 -\0:\0 -\0:\0 -\0:\0 -\0:\0 -\0:\0 A\bj! A\bj! A\bk"\r\0\v\v \t \nk"\tO@ \r!\f\vA\0! !@ \r!\f@ \f-\0\0:\0\0 Aj! \fAj!\f Aj" !G\r\0\v \'\f\v \r!\f \v! A\bO@@ \f-\0\0:\0\0 \f-\0:\0 \f-\0:\0 \f-\0:\0 \f-\0:\0 \f-\0:\0 \f-\0:\0 \f-\0:\0 A\bj! \fA\bj!\f A\bk"\r\0\v\v k! \t k!\t\f\v j jk \fjAxK\r\0@ -\0\0:\0\0 -\0:\0 -\0:\0 -\0:\0 -\0:\0 -\0:\0 -\0:\0 -\0:\0 A\bj! A\bj! A\bk"\r\0\v\v k! \t \nk!\t\v@ \tAI\r\0A\0!\f \tAk"\nAnAjAq"@@ -\0\0:\0\0 -\0:\0 -\0:\0 Aj! Aj! \fAj"\f G\r\0\v A}l \tj!\t\v \nA\tI\r\0@ -\0\0:\0\0 -\0:\0 -\0:\0 -\0:\0 -\0:\0 -\0:\0 -\0:\0 -\0:\0 -\0\b:\0\b -\0\t:\0\t -\0\n:\0\n -\0\v:\0\v A\fj! A\fj! \tA\fk"\tAK\r\0\v\v \tE@ !\f\f\v -\0\0:\0\0 \tAG@ Aj!\f\f\v -\0:\0 Aj!\f\v O\r\0 \f I\r\v\v \v \bAvk"6\0 \v \f6\f \v \fkAj"6 \v kAj"6 \bAq"6@ \0A tAsq6< (@! (<!\b (A¿þ\0G\r\t A6È7 (!\0\f\v \vAÕ\v6 AÑþ\x006 (!\0\f\v \vAë\v6 AÑþ\x006 (!\0\f\v A\x006È7@ (P" \bA (XtAs"qAtj"\r-\0"\n M@ !\0 ! !\t\f\vA\0!\t ! !\n "\0 @@ \0-\0\0! \0Aj!\0 Ak! \nA\bj"\t \nt \bj"\b qAtj"\r-\0"\nO\r \t!\n \r\0\v !\t\v \tj! \tAtj!\f\v \n! \r/!@ \r-\0\0"\rAkAÿqAK@A\0! \0! !\f\v@ \t Atj" \bA \rjtAs"q vAtj"-\0"\njO@ \0! !\f\vA\0!\n \0! \t!\r@ "@@ -\0\0!\n Aj! Ak! \rA\bj" \n \rt \bj"\b q vAtj"-\0"\njO\r !\r \r\0\v !\n\v \0 \nj! \t \nAtj!\f\v !\t\v \t k!\t \b v!\b -\0\0!\r /!\v Aÿÿq6D \nj6È7 \t \nk! \b \nv!\b \rAÿq"\0E@ AÍþ\x006 (!\0\f\v \0A q@ A¿þ\x006 A6È7 (!\0\f\v \0AÀ\0q@ \vA6 AÑþ\x006 (!\0\f\v AÉþ\x006 \0Aq"\r6L\v@ \rE@ (D!\0\f\v \rI@A\0!\t !\n ! !\0@ @@ \nAj!\t Ak! \n-\0\0 \0t \bj!\b \0A\bj"\0 \rO\r \t!\n \r\0\v !\t\v \tj! \tAtj!\f\v ! \0! \t!\v (È7 \rj6È7 (D \bA \rtAsqj"\x006D \rk! \b \rv!\b\v AÊþ\x006 \x006Ì7\v@ (T" \bA (\\tAs"qAtj"\r-\0"\n M@ ! !\0 !\t\f\vA\0!\t !\n " "\0@@ -\0\0! Aj! \0Ak!\0 \nA\bj"\t \nt \bj"\b qAtj"\r-\0"\nO\r \t!\n \0\r\0\v !\t\v \tj! \tAtj!\f\r\v \r/! \r-\0\0"AO@ \n! (È7\f\v \t \n Atj" \bA \njtAs"q \nvAtj"-\0"jI@A\0! ! \t!\r \0"E@A\0!\0\f\b\v@@ -\0\0! Aj! Ak! \rA\bj" \n \rt \bj"\b q \nvAtj"-\0"jO\r\0 !\r \r\f\t\v\v ! !\t !\0\v \t \nk!\t \b \nv!\b -\0\0! /! (È7 \nj\v j6È7 \t k! \b v!\b AÀ\0q@ \vA±6 AÑþ\x006 ! \0! (!\0\f\v AËþ\x006 Aq"\r6L Aÿÿq6H ! \0!\v \r@ \rI@A\0!\t !\n ! !\0@ @@ \nAj!\t Ak! \n-\0\0 \0t \bj!\b \0A\bj"\0 \rO\r \t!\n \r\0\v !\t\v \tj! \tAtj!\f\v ! \0! \t!\v (È7 \rj6È7 (H \bA \rtAsqj6H \b \rv!\b \rk!\v AÌþ\x006\v \r\vA\0! !\f\n\v (H"\0 k"K@@ \0 k" (0M\r\0 (Ä7E\r\0 \vA¼\r6 AÑþ\x006 (!\0\f\v (4"\0 I@ (8 (, \0k"kj\f\v (8 \0 kj\v!\0 (D"\n \nI\f\v \f \0k!\0 (D"\n\v! \n I"\tk6D \tAkA\0! \tAq"\r@ \f \0-\0\0:\0\0 \fAj!\f \0Aj!\0 Aj" \rG\r\0\v \tAxq \t\v!AO@@ \f \0-\0\0:\0\0 \f \0-\0:\0 \f \0-\0:\0 \f \0-\0:\0 \f \0-\0:\0 \f \0-\0:\0 \f \0-\0:\0 \f \0-\0:\0 \fA\bj!\f \0A\bj!\0 A\bk"\r\0\v\v \tk! (D\r\0 AÈþ\x006 (!\0\f\f\v (!\0\f\v\v \0 j! \t \0Atj! !\f\v ($"@ A\x006\v !\v A¹þ\x006\v@ \0A\bqE\r\0 (D" K"\t@@ ($"\nE\r\0 \n("E\r\0 \n("\r \n( k"M\r\0 \r k \t \tj \rK"\0@ j \0ü\n\0\0\v (!\0\v@ \0AqE\r\0 -\0\fAqE\r\0 ( \t\n6\v (D \tk"6D \tk! \tj!\v E\r\0 !\f\v Aºþ\x006 A\x006D\v@ ("\nAq@A\0!\0 E\r@ \0 j-\0\0!@ ($"\tE\r\0 \t("\rE\r\0 (D"\n \t( O\r\0 \nAj6D \n \rj :\0\0\v A\0 \0Aj"\0K\r\0\v@ ("\nAqE\r\0 -\0\fAqE\r\0 ( \0\n6\v \0 j! \0k! E\r !\f\v ($"\0E\r\0 \0A\x006\v A»þ\x006 A\x006D\v@ \nA q@A\0!\0 E\r@ \0 j-\0\0!@ ($"\tE\r\0 \t($"\rE\r\0 (D"\n \t((O\r\0 \nAj6D \n \rj :\0\0\v A\0 \0Aj"\0K\r\0\v@ -\0AqE\r\0 -\0\fAqE\r\0 ( \0\n6\v \0 j! \0k! E\r !\f\v ($"\0E\r\0 \0A\x006$\v A¼þ\x006\v ("\nAqE\r@ AK@ !\0\f\v E\r A\bj! Aj!\0 Ak!\t -\0\0 t \bj!\b AK@ \t! !\f\v \tE@ \0!A\0! ! !\f\v Ar! Aj!\0 Ak! -\0 t \bj!\b\v -\0\fAqE\r \b /F\r \vAÚ\r6 AÑþ\x006 \0! (!\0\f\vA\0! !\v \v 6 \v \f6\f \v 6 \v 6\0 6@ \b6<@@@@ (,E@ F\r (AÐþ\0K\r\v \v("\0(8"\bE@ \0 \v((A \0((tA \v( \0"\b68 \bE\r\v \0(,"E@ \0B\x0070 \0A \0((t"6,\v@ k" O@ @ \b \f k ü\n\0\0\v \0A\x0064 \0 \0(,60\f\v \0(4"k" I"@ \b j \f k ü\n\0\0\v I@ k"@ \0(8 \f k ü\n\0\0\v \0 64 \0 \0(,60\f\v \0 \0(4 j"A\0 \0(,"G64 \0(0" O\r\0 \0 j60\v \v(! \v(!\v \v \v(\b kj6\b \v k" \v(j"\x006 ( j6 @ -\0\fAqE\r\0 F\r\0 \v(\f k! (! (@ \n\f\v "\v"6 \v 60\v \v (@AÀ\0A\0 (\bjAA\0 ("A¿þ\0FjAAA\0 AÂþ\0F AÇþ\0Fj6,@ G\r\0 G\r\0 E\r\v Aj\t\t\t\t\t\v AÒþ\x006\f\b\v ! \r At""\0E@ \v( E\r\t \v($"E\r\t \v("\0E\r\t \0(\0 \vG\r\t \0(A´þ\0kAK\r\t \0(8"@ \v(( \0\0 \v($! \v(!\0\v \v(( \0 \0\0 \vA\x006\f\t\v \v \0 j6\f ! ! \0!\f\v@ \v( E\r\0 \v($"\fE\r\0 \v("E\r\0 (\0 \vG\r\0 (A´þ\0kAK\r\0 \v((!\0 (8" \0 \f\0\0 \v(! \v($!\f \v(( \0\v \f\0\0 \v(!\0\v \x006\0\f\b\v \0!A\0!\bA\0!\v ($"\0@ \0A60 \0 \nA\tvAq6,\v A\x006 \vA\x0060 A¿þ\x006 (!\0\f\0\v\0\v\0\v\0\v \f\v \v( E\r\0 \v($"\fE\r\0 \v("E\r\0 (\0 \vG\r\0 (A´þ\0kAK\r\0 \v((!\0 (8" \0 \f\0\0 \v(! \v($!\f \v(( \0\v \f\0\0\v A\0!\v \vA@k$\0 \vi#\0Ak"$\0@ E@ A\x006\0A\b!\f\v \b"E@A\0!\f\v 6\f A\fj \0 )@ A\0!\f\v (\f6\0\v Aj$\0 \vä!~#\0Ak"$\0@ A\tI\r\0 \0-\0At"A\0H\r\0 \0/\0\0 \0-\0Atr r"Aþ÷ÿÿJ\r\0 \0(\0"\fA\0L\r\0 \fAâO@AèA2\f\v \0-\0\b! \fAj"A\fl"Aj\v"\bE\r\0 \bB\x007 \b 6 \bA\x006 \bA\x006 \b \bAj"6\0 \bA\fjA\0Aü\v\0 @ A\0 ü\v\0\v \bA\x006 \bA6A\t!@@ A\tG@ \0 j!\n \fAk! \bAj!A!@ Aj!\t \0 j"\r-\0\0"À!@@@ AÀ\0q@ Aj" K\r \0 \tj-\0\0!\t \r-\0! A\0N@ Aq!\f\v Aþ\0J\r \b Aj6 Aj"Alj"\rA\0Aü\v\0 Aq"E@A\0! !\f\v AH\r \r \f\b"6\0 E\r \r \f6 \rA\x006\b :\0\0 @ \r(\0AjA\n ü\v\0\v !\f\v@ A\0N@ Aq!\v !\r\f\v Aþ\0J\r \b Aj6 Aj"\rAlj"A\0Aü\v\0 Aq"\vE@A\0!\v\f\v AH\r \f\b"6\0 E\r \f6 A\x006\b \v:\0\0 E\r\0 (\0AjA\n ü\v\0\v \0 \tj!@ @ \tk"AN@ ,\0\0A\0N@ Aj!\f\v ,\0A\0N@ Aj!\f\v ,\0A\0N@ Aj!\f\v ,\0A\0N@ Aj!\f\v AA ,\0A\0Hj!\f\v \tF@A\0!\f\vA ",\0\0A\0N\r@ Aj! ,\0\0A\0N\r \n "K\r\0\v\v kAj\v"j! kAN@ ,\0\0"Aÿ\0q! A\0N\r ,\0"Aÿ\0q Atr! A\0N\r ,\0"Aÿ\0q Atr! A\0N\r ,\0"Aÿ\0q Atr! A\0N\r ,\0"Aÿ\0q Atr! A\0N\r -\0Aÿ\0q Atr!\f\v N@A\0!\f\vA\0! ,\0\0"A\0N\r\0@ ,\0\0"Aÿ\0q Atr! A\0N@ !\f\v ! Aj" \nI\r\0\v\v AþÿÿÿK\r \rA\0H\r \rAt"A\0H\r \vr"AÿJ\r Alj"A\x006\b (\0"@ \v \b"\v6\0 \vE\r ! 6 ~@@@@@ AL@ E\r 6\bA\0!A\0 \tF\r ! ,\0\0"A\0H\r !A\f\v Aj! E@ 6\f ,\0\0"Aÿ\0q! A\0N\r ,\0"Aÿ\0q Atr! A\0H\r Aj!\f\v 6\b ,\0\0"Aÿ\0q! A\0N\r ,\0"Aÿ\0q Atr! A\0N@ Aj!\f\v ,\0"Aÿ\0q Atr! A\0N@ Aj!\f\v ,\0"Aÿ\0q Atr! A\0N@ Aj!\f\v ,\0"Aÿ\0q Atr! A\0N@ Aj!\f\v -\0Aÿ\0q Atr! Aj!\f\v@ ,\0\0"Aÿ\0q Atr! Aj! A\0N\r \nI\r\0\v\v k\v" jA j k \v A\bj"! 5\b \f\v ,\0"Aÿ\0q Atr! A\0N@ Aj!\f\v ,\0"Aÿ\0q Atr! A\0N@ Aj!\f\v ,\0"Aÿ\0q Atr! A\0N@ Aj!\f\v -\0Aÿ\0q Atr! Aj!\f\v 6\fA\0!A\0 \tF\r ! ,\0\0"A\0N@ !A\f\v@ ,\0\0"Aÿ\0q Atr! Aj! A\0N\r \nI\r\0\v\v k\v" jA j k \v A\fj"! 5\f \v"> A\0H\r R\r \tj! \r!\f\v A\0H\r\v \tAt j" At r"N\r Alj"\r(\0E\r Alj"A\x006\b \r("6 (\0"\t@ \t (!\v \b"6\0 E\r E\r\0 \r(\0 ü\n\0\0\v K\r\0\v\v A\bj"\f\b"E\r\0A\0!\r@@@ \b("\0 \b(I@ \bAj! \bA@k! !@ \b \0Aj6 \b( \0j-\0\0!\0 \b \b("\tAj6 \t \b(N\r \b(At \0L\r \0Alj"(\b"Aj" (K\r (\0 j(\0\0! 6\b \tK\r \t k"A\0 A\0J!@ \0AF@ \t F\r A\fl" \b(\0j(\0"\0Aj \fO\r@@ \0 "sAq@ \0-\0\0!\f\v \0Aq@@ \0-\0\0":\0\0 E\r Aj! \0Aj"\0Aq\r\0\v\vA\b \0(\0"k rAxqAxG\r\0@ 6\0 Aj! \0"Aj!\0A\b ("k rAxqAxF\r\0\v\v :\0\0 AÿqE\r\0@ \0-\0":\0 Aj! \0Aj!\0 \r\0\v\v \b(\0" \tA\flj"\0 6\0 \0 j"("6 \0 A\flA\f \b"6\b E\r \0(A\fl"\0@ (\b \0ü\n\0\0\v Aj!\0\f\vA\0! A\0:\0\0A\f\b!\0 \b(\0" \tA\fl"\tj \x006\bA! \0E\r@ \b(N\r@ Al"\nj"\0(\b" \0(O@ \tjA\x006\f\v \0 Aj6\b \0(\0 j-\0\0! \tj"\vA\x006@@@@@@@@@ Ak\v\0\t\t\t\t\v Aj"\0 \fN\r \n j"(\b" (O\r Aj6\b j" (\0 j-\0\0:\0\0 \b(\0" \tj(\b A\flj"A6\0 ,\0\x006 \0!\f\v j!\v \f k!A!@ \b Alj"(0"\n (,O\r\0A\0!\0@ \nAj60 \v \0"j (( \nj-\0\0"\0:\0\0 \0E\r Aj"\0 N\r (0"\n (,I\r\0\v\v "\0A\0H\r\r \b(\0" \tj(\b A\flj" 6\b A6\0 \x006 \0 j!\f\v \0(h" \0(dO\r\f \0 Aj6h \0(P"\nAj"\v \0(LK\r\f \0(` j-\0\0! \0(H \nj(\0\0!\n \0 \v6P jAj \fO\r\f j \n !\v \b(\0" \tj(\b A\flj"\0 6\b \0 \n6 \0A6\0 \vj!\f\v A\fl"\nj"\v(N\r\v \0(à" \0(ÜO\r\v \0 Aj6à A\fl" \v(\bj"\v(\b"jAj \fN\r\v j \v( \0(Ø j-\0\0j"\v Aÿq! \b(\0" \tj(\b j"\0 \v6 \0A6\0 \0 \nj(\b j(\b6\b j!\f\v \0(°"Aj"\n \0(¬K\r\n \0(¨ j(\0\0! \0 \n6° Aj \fN\r\n j \b(\0" \tj(\b A\flj"\n 6 \nA6\0 j!\f\v A\flj"(N\r\t \0(È" \0(ÄO\r\t \0 Aj6È Aj \fN\r\t j A\fl"\n (\bj( \0(À j-\0\0j"\0! \b(\0" \tj(\b \nj"\n \x006 \nA6\0 j!\f\v A\fl"\nj"\v(N\r\b@@@@ A\fl" \v(\bj"(\0Ak\0\f\f\f\f\v Aj"\0 \fN\r\v j (:\0\0 \b(\0" \tj(\b j"A6\0 \nj(\b j(6 \0!\f\v ("\0A\0H\r\n \0 j \fN\r\n \0@ j \v(\0 (\bj \0ü\n\0\0\v \b(\0" \tj(\b j"\0 6\b \0A6\0 \0 \nj(\b j("\x006 \0 j!\f\v Aj \fN\r\t j ( \b(\0" \tj(\b j"\vA6\0 \v \nj(\b j(6 j!\f\v (\b"\0 j \fN\r\b j ( \0Aÿq!\v \b(\0" \tj(\b j"\0A6\0 \0 \nj(\b j"(6 \0 (\b6\b \vj!\f\v \v(\b A\fljA\v6\0\v Aj"AG\r\f\v\v Aj"\0 \fN\r jA\0:\0\0 \b(\0 \tj"(\b" A\fl"jA\f6\0 6 6\0 A\fj! \b(\0 \tj! E@ (\b\r\f\v 6\b\v \0A\0L\r \f \0k!\f \0 \rj"\rj! \b("\0 \b(I\r\0\v\v \b \b("\0Aj6 \0 \b(N\r\f\v \0E\r\v \b \r6\0\f\v \b \r6\0\f\v \b\vA\0!\v Aj$\0 \v\f\0 \0 A\0 \vÃ)#\0Ak"$\0@ AI\r\0 AþÿÿÿK\r\0AæÂ\0\v"E\r\0@@@@@A\v"E\r\0@ \0-\0\0"\nAðqAÀF@@ Aj"\t Atj A³!lj6\0 Ar"At \tj A³!lj6\0 Ar"At \tj A³!lj6\0 Ar"At \tj A³!lj6\0 Aj"AG\r\0\f\v\0\v@ Aj"\t Atj A³\tlj6\0 Ar"At \tj A³\tlj6\0 Ar"At \tj A³\tlj6\0 Ar"At \tj A³\tlj6\0 Aj"AG\r\0\v\v E@ \b"E@\f\v ! \0-\0\0!\n\v \0 j! \0Aj!@ \nAqE@ \f\v@@ AN@ \0,\0"Aÿ\0q! A\0N@ \0Aj!\f\v \0,\0"Aÿ\0q Atr! A\0N@ \0Aj!\f\v \0,\0"Aÿ\0q Atr! A\0N@ \0Aj!\f\v \0,\0"Aÿ\0q Atr! A\0N@ \0Aj!\f\v \0,\0"Aÿ\0q Atr! A\0N@ \0Aj!\f\v \0-\0Aÿ\0q Atr! \0Aj!\f\v ,\0\0"\0A\0N\r !@ ,\0\0"\0Aÿ\0q Atr! Aj! \0A\0N\r I\r\0\v\v k\f\v \0!A\v"\b j!@ \bAsj@@ \b kAyL@ ,\0\0"Aÿ\0q!\0 A\0N@ Aj!\f\v ,\0"Aÿ\0q \0Atr!\0 A\0N@ Aj!\f\v ,\0"Aÿ\0q \0Atr!\0 A\0N@ Aj!\f\v ,\0"Aÿ\0q \0Atr!\0 A\0N@ Aj!\f\v ,\0"Aÿ\0q \0Atr!\0 A\0N@ Aj!\f\v -\0Aÿ\0q \0Atr!\0 Aj!\f\vA\0!\0 \bAj N\r ,\0\0"\tA\0N\r !@ ,\0\0"\tAÿ\0q \0Atr!\0 Aj! \tA\0N\r I\r\0\v\v k\f\v \t!\0A\v"k \0I\r j!\v \0A\0 "E\r \0 j!\f "j\v!\bA\0! A\bjA\0A\bü\v\0 \bF\r Aj! -\0\0!@ Aj \bO\r\0@ A\bj AtjA6\0@ E@ Aj"\0 -\0\0"G@ Aj!A\0!\f\v -\0! Aj! \0!\f\v AþJ\r Aj! Ak!\v E\r Aj \bI\r\0\v\v@ E\r\0@ A\bj AtjA6\0 \bO\r@ E@ Aj!\0A\0! Aj" -\0\0"\tG@ \0! \t!\f\v \0 \bO\r -\0! Aj!\f\v AþJ\r Aj! Ak!\v E\r \bI\r\0\v\v F\r \bO\r \nAðqAv"A\nF AKq!A t!@ At" A\bjj(\0@A\0!\v A\0A\bü\v\0A\0!A\0!\0 !\n \bO\r@ \0At"\r A\bjj(\0@@ Ak@ \b \nkAN@ \n,\0\0"Aÿ\0q! A\0N@ \nAj!\f\v \n,\0"Aÿ\0q Atr! A\0N@ \nAj!\f\v \n,\0"Aÿ\0q Atr! A\0N@ \nAj!\f\v \n,\0"Aÿ\0q Atr! A\0N@ \nAj!\f\v \n,\0"Aÿ\0q Atr! A\0N@ \nAj!\f\v \n-\0Aÿ\0q Atr! \nAj!\f\vA\0! \n",\0\0"\tA\0N@ \t!A\f\v@ ,\0\0"\tAÿ\0q Atr! Aj! \tA\0N\r \bI\r\0\v\v \nk\v \nj!\tA\0! @ \t!\n\f\v \b \tM\r \tAj!\n \t-\0\0\v!A\0!\v \r j 6\0 \vj!\v\v \0AþM@ \0Aj!\0 \b \nK\r\v\v \nF\r \v@ \v G@A\0!\0A\0! \v I@@ Aj! \vAt"\v I\r\0\v\v@ \0Atj" (\0 t6\0 ( t6 (\b t6\b (\f t6\f ( t6 ( t6 ( t6 ( t6 \0A\bj"\0AG\r\0\v\v A\ftj! A\ntj! Aj j!A\0!\tA\0!\r@ \tAt"\0j(\0"@ \rkK\r@ @ Aq!\v At!\0 \rAtj!@ AM@ \0 \tr!\0A\0!\f\v \0 \tr!\0 A|q!A\0!@ Atj A\bt \0r6\0 Ar"Atj A\bt \0r6\0 Ar"Atj A\bt \0r6\0 Ar"Atj A\bt \0r6\0 Aj" G\r\0\v \vE\r\vA\0!@ Atj A\bt \0r6\0 Aj! Aj" \vG\r\0\v\f\v @ (\0 \rj \t ü\v\0\v \0 j"\0 \r; \0 ;\0\v \rj!\r\v \tAj"\tAG\r\0\v \r G\r\v \n!\v Aj"AG\r\0\v A\0! \f \f"Aj" K\r (\0\0"\0AI\r (\0"AI\r (\0\b"\bAI\r (\0\f"AI\r A\bk! Av"Al! At!\n A\fF@A\0!\v E@A\0!A\0!\f\vA\0!A\0! !\tA\0!\r@ \vA\ntj \0Aÿq" Aj" \vAtj(\0j-\0\0"\vAtj"\f/! \f/\0 \rj \v:\0\0 A\ntj Aÿq" At j(\0j-\0\0"Atj"/! /\0! \tj :\0\0 A\ntj \bAÿq" At j(\0j-\0\0"Atj"/! /\0! \nj :\0\0 A\ntj Aÿq" At j(\0j-\0\0"Atj"/! /\0! j :\0\0 \0A\fvl j k!\0 A\fvl j k! \bA\fvl j k!\b A\fvl j k!@ I@ AA\0 \0AI"j"AA\0 AI"j"\f-\0A\bt \f-\0\0 \bAtrr \b \bAI"!\b \fAA\0 j"\f-\0A\bt \f-\0\0 Atrr AI"! -\0\0 \0Atr -\0A\btr \0 !\0 -\0\0 Atr -\0A\btr ! \fAA\0 j!\f\v@ \0AÿÿK\r\0 Aj O\r\0 -\0\0 \0Atr -\0A\btr!\0 Aj!\v@ AÿÿK\r\0 Aj O\r\0 -\0\0 Atr -\0A\btr! Aj!\v@ \bAÿÿK\r\0 Aj O\r\0 -\0\0 \bAtr -\0A\btr!\b Aj!\v AÿÿK\r\0 Aj O\r\0 -\0\0 Atr -\0A\btr! Aj!\v Aj! \nAj!\n \tAj!\t \rAj"\rG\r\0\v\f\v@@ AM@A\0!\v \rA\0!A\0!\f\vA\0!\v \rA\0!\f\vA\0!A\0! !\tA\0!\r@ \vA\ntj \0Aÿq" Aj" \vAtj(\0j-\0\0"\vAtj"\f/! \f/\0 \rj \v:\0\0 A\ntj Aÿq" At j(\0j-\0\0"Atj"/! /\0! \tj :\0\0 A\ntj \bAÿq" At j(\0j-\0\0"Atj"/! /\0! \nj :\0\0 A\ntj Aÿq" At j(\0j-\0\0"Atj"/! /\0! j :\0\0 \0A\nvl j k!\0 A\nvl j k! \bA\nvl j k!\b A\nvl j k!@ I@ AA\0 \0AI"j"AA\0 AI"j"\f-\0A\bt \f-\0\0 \bAtrr \b \bAI"!\b \fAA\0 j"\f-\0A\bt \f-\0\0 Atrr AI"! -\0\0 \0Atr -\0A\btr \0 !\0 -\0\0 Atr -\0A\btr ! \fAA\0 j!\f\v@ \0AÿÿK\r\0 Aj O\r\0 -\0\0 \0Atr -\0A\btr!\0 Aj!\v@ AÿÿK\r\0 Aj O\r\0 -\0\0 Atr -\0A\btr! Aj!\v@ \bAÿÿK\r\0 Aj O\r\0 -\0\0 \bAtr -\0A\btr!\b Aj!\v AÿÿK\r\0 Aj O\r\0 -\0\0 Atr -\0A\btr! Aj!\v Aj! \nAj!\n \tAj!\t \rAj"\rG\r\0\v\f\vA\0!A\0! !\tA\0!\r@ A\ftj AÿqAtj(\0! \rj A\ftj \0AÿqAtj(\0":\0\0 \tj :\0\0 \vA\ftj AÿqAtj(\0!\v \nj A\ftj \bAÿqAtj(\0":\0\0 j \v:\0\0 Av A\nvl A\bvAÿqj! Av \0A\nvl A\bvAÿqj!\0 \vAv A\nvl \vA\bvAÿqj! Av \bA\nvl A\bvAÿqj!\b@ I@ AA\0 \0AI"j"AA\0 AI"j"\f-\0A\bt \f-\0\0 \bAtrr \b \bAI"!\b \fAA\0 j"\f-\0A\bt \f-\0\0 Atrr AI"! -\0\0 \0Atr -\0A\btr \0 !\0 -\0\0 Atr -\0A\btr ! \fAA\0 j!\f\v@ \0AÿÿK\r\0 Aj O\r\0 -\0\0 \0Atr -\0A\btr!\0 Aj!\v@ AÿÿK\r\0 Aj O\r\0 -\0\0 Atr -\0A\btr! Aj!\v@ \bAÿÿK\r\0 Aj O\r\0 -\0\0 \bAtr -\0A\btr!\b Aj!\v AÿÿK\r\0 Aj O\r\0 -\0\0 Atr -\0A\btr! Aj!\v Aÿq! Aÿq! \vAÿq!\v Aÿq! Aj! \nAj!\n \tAj!\t \rAj"\rG\r\0\v\f\vA\0!\v \t \t \f\v M\r@ j \vA\ftj AÿqAtj(\0"\0:\0\0@ \0Av A\nvl \0A\bvAÿqj"AÿÿK\r\0 Aj O\r\0 -\0\0 Atr -\0A\btr! Aj!\v \0Aÿq!\v Aj"G\r\0\v\f\v M\r@ j Aÿq"\n Aj "\0Atj(\0j-\0\0":\0\0@ \0A\ntj Atj"\0/\0 A\nvl \nj \0/k"AÿÿK\r\0 Aj O\r\0 -\0\0 Atr -\0A\btr! Aj!\v Aj" G\r\0\v\f\v M\r\0@ j Aÿq"\n Aj "\0Atj(\0j-\0\0":\0\0@ \0A\ntj Atj"\0/\0 A\fvl \nj \0/k"AÿÿK\r\0 Aj O\r\0 -\0\0 Atr -\0A\btr! Aj!\v Aj" G\r\0\v\v \t \t !\v Aj$\0 \v/#|#\0Ak"$\0@ AI\r\0 AþÿÿÿK\r\0AæÒ\0\v"E\r\0@ \0-\0\0"\fAðqAÀF@@ Aj" Atj A³!lj6\0 AF\r Ar"At j A³!lj6\0 Ar"At j A³!lj6\0 Ar"At j A³!lj6\0 Aj!\f\0\v\0\v@ Aj" Atj A³\tlj6\0 AF\r Ar"At j A³\tlj6\0 Ar"At j A³\tlj6\0 Ar"At j A³\tlj6\0 Aj!\f\0\v\0\v (\v!@@ E@ \b"E@\f\v \0-\0\0!\f !\v \0 j! \0Aj!\n \fAqE@ \f\v@@ AN@ \0,\0"Aÿ\0q! A\0N@ \0Aj!\f\v \0,\0"Aÿ\0q Atr! A\0N@ \0Aj!\f\v \0,\0"Aÿ\0q Atr! A\0N@ \0Aj!\f\v \0,\0"Aÿ\0q Atr! A\0N@ \0Aj!\f\v \0,\0"Aÿ\0q Atr! A\0N@ \0Aj!\f\v \0-\0Aÿ\0q Atr! \0Aj!\f\vA\0! \n,\0\0"\0A\0N\r \n!@ ,\0\0"\0Aÿ\0q Atr! Aj! \0A\0N\r I\r\0\v\v \nk\f\v \0!A\v" \nj!\b@ Asj@@ kAyL@ \b,\0\0"Aÿ\0q!\0 A\0N@ \bAj!\f\v \b,\0"Aÿ\0q \0Atr!\0 A\0N@ \bAj!\f\v \b,\0"Aÿ\0q \0Atr!\0 A\0N@ \bAj!\f\v \b,\0"Aÿ\0q \0Atr!\0 A\0N@ \bAj!\f\v \b,\0"Aÿ\0q \0Atr!\0 A\0N@ \bAj!\f\v \b-\0Aÿ\0q \0Atr!\0 \bAj!\f\vA\0!\0 Aj N\r \b,\0\0"\nA\0N\r \b!@ ,\0\0"\nAÿ\0q \0Atr!\0 Aj! \nA\0N\r I\r\0\v\v \bk\f\v \n!\0A\v"k \0I\r \bj!\b\v \b \0A\0 "E\r \0 \bj! "\n j\v!\v \fAðqAv!A\0!\f AjA\0A\bü\v\0@ \n \vF\r\0 \nAj!\0 \n-\0\0!A\0!@ \nAj \vO\r\0@ Aj AtjA6\0@@ E@ Aj" \0-\0\0"F\r \0Aj!\0A\0!\f\v AþL@ Aj! Ak!\f\v\f\v \0-\0! \0Aj!\0 !\v E\r \0Aj \vI\r\0\v\v@ E\r\0@ Aj AtjA6\0 \0 \vO\r@ E@ \0Aj!\bA\0! Aj" \0-\0\0"G@ \b!\0 !\f\v \b \vO@\f\v \0-\0! \0Aj!\0\f\v AþJ\r Aj! Ak!\v E\r \0 \vI\r\0\v\v \0 \nF\r\0 \0 \vO\r\0 @ A\0;\v A\x006\0A t! A\nk!@ At" Ajj(\0@A\0!\r A\vjA\0A\bü\v\0A\0!A\0!\f \0!@@ \0 \vO\r\0@ \fAt" Ajj(\0@@ Ak@ \v kAN@ ,\0\0"Aÿ\0q! A\0N@ Aj!\f\v ,\0"Aÿ\0q Atr! A\0N@ Aj!\f\v ,\0"Aÿ\0q Atr! A\0N@ Aj!\f\v ,\0"Aÿ\0q Atr! A\0N@ Aj!\f\v ,\0"Aÿ\0q Atr! A\0N@ Aj!\f\v -\0Aÿ\0q Atr! Aj!\f\vA\0! ",\0\0"\bA\0N@ \b!A\f\v@ ,\0\0"\bAÿ\0q Atr! Aj! \bA\0N\r \vI\r\0\v\v k\v j!\bA\0! @ \b!\f\v \b \vO\r \bAj! \b-\0\0\v!A\0!\v A\vj j 6\0 \rj!\r\v \fAþM@ \fAj!\f \vI\r\v\v \0 F\r\0 \rE\r \r G@A\0!\0A\0! \r I@@ Aj! \rAt"\r I\r\0\v\v@ A\vj \0Atj" (\0 t6\0 ( t6 (\b t6\b (\f t6\f ( t6 ( t6 ( t6 ( t6 \0A\bj"\0AG\r\0\v\v A\ntj! A\ftj!\r Aj j!A\0!A\0!@ At"\0 A\vjj(\0"@ kK\r@@@@@ \0\v Aq! At!\0 \r Atj! AK\r \0 r!\0A\0!\f\v @ (\0 j ü\v\0\v \0 j"\0 ; \0 ;\0\f\v \0 r!\0 A|q!\bA\0!@ Atj A\bt \0r6\0 Ar"Atj A\bt \0r6\0 Ar"Atj A\bt \0r6\0 Ar"Atj A\bt \0r6\0 Aj" \bG\r\0\v E\r\vA\0!\f@ Atj A\bt \0r6\0 Aj! \fAj"\f G\r\0\v\v j!\v Aj"AG\r\0\v F\r\vA\0!\f\f\v !\0\v Aj"AG\r\0\v \0 \nk!\f\v \n \fj "kAH\r\0 (\0\0"\x006 \0AI\r\0 (\0"\x006 \0AI\r\0 (\0\b"\x006 \0AI\r\0 (\0\f"\x006 \0AI\r\0 (\0"\x006 \0AI\r\0 (\0"\x006 \0AI\r\0 (\0"\x006 \0AI\r\0 (\0"\x006 \0AI\r\0 (\0 "\x006 \0AI\r\0 (\0$"\x006¤ \0AI\r\0 (\0("\x006¨ \0AI\r\0 (\0,"\x006¬ \0AI\r\0 (\x000"\x006° \0AI\r\0 (\x004"\x006´ \0AI\r\0 (\x008"\x006¸ \0AI\r\0 (\0<"\x006¼ \0AI\r\0 (\0@"\x006À \0AI\r\0 (\0D"\x006Ä \0AI\r\0 (\0H"\x006È \0AI\r\0 (\0L"\x006Ì \0AI\r\0 (\0P"\x006Ð \0AI\r\0 (\0T"\x006Ô \0AI\r\0 (\0X"\x006Ø \0AI\r\0 (\0\\"\x006Ü \0AI\r\0 (\0`"\x006à \0AI\r\0 (\0d"\x006ä \0AI\r\0 (\0h"\x006è \0AI\r\0 (\0l"\x006ì \0AI\r\0 (\0p"\x006ð \0AI\r\0 (\0t"\x006ô \0AI\r\0 (\0x"\x006ø \0AI\r\0 (\0|"\x006ü \0AI\r\0 A@j!\fA\0! A\0Aü\v\0 Av"\t6 A\x006 \tAl"6ü \tAl6ø \tAl6ô \tAl6ð \tAl6ì \tAl6è \tAl6ä \tAl6à \tAl6Ü \tAl6Ø \tAl6Ô \tAl6Ð \tAl6Ì \tAl6È \tAl6Ä \tAt6À \tAl6¼ \tAl6¸ \tA\rl6´ \tA\fl6° \tA\vl6¬ \tA\nl6¨ \tA\tl6¤ \tAt6 \tAl6 \tAl6 \tAl6 \tAt6 \tAl6 \tAt6 Aj! ¸DÉ?¢!\' ¸!(@ A\fG@ \t@@ At"\0A\fr"j"(\0A\ftj Aj" j"(\0"AÿqAtj(\0! \0A\br"j"(\0A\ftj j"(\0"\bAÿqAtj(\0! \0Ar"\rj"(\0A\ftj \rj"(\0"\vAÿqAtj(\0! \0 j"\n(\0A\ftj \0 j"(\0"AÿqAtj(\0! Aj" \0j"\0 \0(\0"\0Aj6\0 \0 j :\0\0 \n Aÿq6\0 \r j"\0 \0(\0"\0Aj6\0 \0 j :\0\0 Aÿq6\0 j"\0 \0(\0"\0Aj6\0 \0 j :\0\0 Aÿq6\0 j"\0 \0(\0"\0Aj6\0 \0 j :\0\0 Av A\nvl A\bvAÿqj"\x006\0 Av \vA\nvl A\bvAÿqj"6\0 Av \bA\nvl A\bvAÿqj"\v6\0 Aÿq6\0 Av A\nvl A\bvAÿqj"\n6\0@@ \' (d\r\0 \fO\r\0 -\0\0 \0Atr -\0A\btr \0 \0AI"\06\0 AA\0 \0j"-\0A\bt -\0\0 Atrr AI"\06\0 AA\0 \0j"-\0A\bt -\0\0 \vAtrr \v \vAI"\06\0 AA\0 \0j"-\0A\bt -\0\0 \nAtrr \n \nAI"\0! AA\0 \0j\f\v@ \0AÿÿK\r\0 Aj O\r\0 -\0\0 \0Atr -\0A\btr6\0 Aj!\v@ AÿÿK\r\0 Aj O\r\0 -\0\0 Atr -\0A\btr6\0 Aj!\v@ \vAÿÿK\r\0 Aj O\r\0 -\0\0 \vAtr -\0A\btr6\0 Aj!\v \nAÿÿK\r Aj O\r -\0\0 \nAtr -\0A\btr! Aj\v! 6\0\v AI Aj!\r\0A\0! ( \tH\r\0\v (ü!\v M\r (ü!\0 (|!\f@ \fA\ftj \0AÿqAtj(\0"Aÿq"\f6| j :\0\0 Av \0A\nvl A\bvAÿqj"\x006ü@ \0AÿÿK\r\0 Aj O\r\0 -\0\0 \0Atr -\0A\btr"\x006ü Aj!\v Aj"6ü G\r\0\v\f\v \t@A\0!\0@ Aj" \0At"A\fr"j"(\0"Atj(\0 Aj" j"(\0"Aÿq"j-\0\0!! A\br"j"(\0"At j(\0 j""(\0"\rAÿq"j-\0\0!# Ar"j"(\0"At j(\0 j"$(\0"\bAÿq"j-\0\0!% j"& &(\0"\nAÿq" j"\v(\0"A\ntj At j(\0j-\0\0"Atj"/k /\0 \nA\fvlj" 6\0 $ A\ntj %Atj"/k /\0 \bA\fvlj"\b6\0 " A\ntj #Atj"/k /\0 \rA\fvlj"6\0 A\ntj !Atj"/!\n /\0! \v 6\0 Aj"\r j" (\0"Aj6\0 \nk A\fvlj"6\0 j :\0\0 %6\0 \r j" (\0"Aj6\0 j %:\0\0 #6\0 \r j" (\0"Aj6\0 j #:\0\0 !6\0 \r j" (\0"Aj6\0 j !:\0\0@@ \' (d\r\0 \fO\r\0 & -\0\0 Atr -\0A\btr AI"6\0 $ AA\0 j"-\0A\bt -\0\0 \bAtrr \b \bAI"6\0 " AA\0 j"-\0A\bt -\0\0 Atrr AI"6\0 AA\0 j"-\0A\bt -\0\0 Atrr AI"! AA\0 j\f\v@ AÿÿK\r\0 Aj O\r\0 & -\0\0 Atr -\0A\btr6\0 Aj!\v@ \bAÿÿK\r\0 Aj O\r\0 $ -\0\0 \bAtr -\0A\btr6\0 Aj!\v@ AÿÿK\r\0 Aj O\r\0 " -\0\0 Atr -\0A\btr6\0 Aj!\v AÿÿK\r Aj O\r -\0\0 Atr -\0A\btr! Aj\v! 6\0\v \0AI \0Aj!\0\r\0A\0!\0 ( \tH\r\0\v (ü!\v M\r\0 (|!\v (ü!\0@ j \0Aÿq" Aj \v"Atj(\0j-\0\0"\v:\0\0 A\ntj \vAtj"/\0 \0A\fvl j /k"\x006ü@ \0AÿÿK\r\0 Aj O\r\0 -\0\0 \0Atr -\0A\btr"\x006ü Aj!\v \v6| Aj"6ü G\r\0\v\v \t\f\v \t A\0!\v !\v Aj$\0 \vâ#\0AÀk"\b$\0@ A\tI\r\0 \0 j!\v@@ \0-\0\0"@ AI\r AG\r \0(\0 A\tkG\r \0(\0"AþÿÿÿK\rAà\0\v"E\r A\0Aà\0ü\v\0 \bAÿAü\v\0 A@k"A\0Aü\v\0@ A\vtj"B\x007ð B\x007à B\x007Ð B\x007À B\x007° B\x007 B\x007 B\x007 B\x007p B\x007` B\x007P B\x007@ B\x0070 B\x007 B\x007 B\x007\0 Aj"AG\r\0\v \vAk! \0A\nj! \0-\0\t!\r@ \b \rAtj"\0/\0"AÿÿF@ \0 \n;\0 \n"Aj!\n\v Aj!\0 Á"A\ftj! A\vtj! -\0\0!A\0!A\0!\t@ \b Atj"/\0AÿÿF@ \n;\0 \nAj!\n\v \0 K\r \0,\0\0"Aÿq! A\0N \0Aj \0-\0 A\btAþqr! \0Aj\v! Atj"\0 A "6\0 \0 "\x006 \0 j"A K\r @ \0 j ü\v\0\v \tE@ Aj" -\0\0"G@A\0!\t Aj\f\v -\0!\t ! Aj\f\v AþJ\r Aj! \tAk!\t \v!\0 \r\0\v AÿI\r AÿF@ \rA\ftj"Aÿj Aþj-\0\0:\0\0\v \fE@ \rAj" \0-\0\0"\rG@A\0!\f \0Aj\f\v \0-\0!\f !\r \0Aj\f\v \rAþJ\r \rAj!\r \fAk!\f \0\v! \r\r\0\v@ \b Atj"\0 \0/\0"A\0 AÿÿG;\0 \0 \0/"A\0 AÿÿG; \0 \0/"A\0 AÿÿG; \0 \0/"\0A\0 \0AÿÿG; Aj"AG\r\0\vA\0! K\r (\0\0"\0AI\r (\0"AI\r (\0\b"\tAI\r (\0\f"AI\r \b"E\r Aj! Av"E@A\0!A\0!\f\v \vA\bk! \b.\0A\ftj" \0Aÿqj!\f Aÿqj!\n \tAÿqj! Aÿqj! At! Al!A\0! !\r@ -\0\0! -\0\0! \n-\0\0!\n j \f-\0\0"\f:\0\0 \r j \n:\0\0 j :\0\0 j :\0\0 Aÿq A\vtj Atj"(k (\0 A\fvlj! \tAÿq A\vtj Atj"(k (\0 \tA\fvlj!\t Aÿq A\vtj \nAtj"(k (\0 A\fvlj! \0Aÿq A\vtj \fAtj"(k (\0 \0A\fvlj!\0@ I@ \0AI"j! -\0\0 \0A\btr \0 "\0AÿÿÿK -\0\0 \0A\btr!\0 Aj\v! AI"j! -\0\0 A\btr "AÿÿÿK -\0\0 A\btr! Aj\v! \tAI"j! -\0\0 \tA\btr \t "\tAÿÿÿK -\0\0 \tA\btr!\t Aj\v! AI"j! -\0\0 A\btr "AÿÿÿK@ !\f\v Aj! -\0\0 A\btr!\f\v@ \0AÿÿÿK@ !\f\v \vO@ !\f\v Aj! -\0\0 \0A\btr! \0AÿÿK@ !\0\f\v \vO@ !\0\f\v Aj! -\0 A\btr!\0\v@ AÿÿÿK@ !\f\v \vO@ !\f\v Aj! -\0\0 A\btr! AÿÿK@ !\f\v \vO@ !\f\v Aj! -\0 A\btr!\v@ \tAÿÿÿK@ !\f\v \vO@ !\f\v Aj! -\0\0 \tA\btr! \tAÿÿK@ !\t\f\v \vO@ !\t\f\v Aj! -\0 A\btr!\t\v AÿÿÿK@ !\f\v \vO@ !\f\v Aj! -\0\0 A\btr! AÿÿK@ !\f\v \vO@ !\f\v Aj! -\0 A\btr!\v \b Atj.\0"A\ftj Aÿqj! \b Atj.\0"A\ftj \tAÿqj! \b \nAtj.\0"A\ftj Aÿqj!\n \b \fAtj.\0"A\ftj \0Aÿqj!\f Aj! Aj! \rAj!\r Aj"G\r\0\v\f\v AI\r \0(\0 A\tkG\r \0-\0" \0-\0A\bt \0-\0Atr \0-\0\bAtrr"AþÿÿÿK\r \b"\rE\r \vAk!\t \0A\nj! \0-\0\t!@@ \tK\r \n!\0 ,\0\0"Aÿq! A\0N Aj -\0 A\btAþqr! Aj\v! \0 j"\nA K\r@ E\r\0A\0! AG@ Aq Aþ?q!@ \b \0 j"\fAtj 6\0 \fAt"\f \bAÁj"j ;\0 \bAÀj \fj ;\0 \b Ar"\f \0j"Atj \f6\0 At"\fj ;\0 \bAÀj \fj ;\0 Aj" G\r\0\vE\r\v \0 j"\0At" \bAÁjj ;\0 \bAÀj j ;\0 \b \0Atj 6\0\v E@ Aj"\0 -\0\0"G@A\0! Aj\f\v -\0! \0! Aj\f\v AþJ\r Aj! Ak! \v! \r\0\v \nAÿI\r\0 \nA G@ \b \b/¼À;¾À \b \b/ü;þ \b \b(øAj6ü\v \tK\r\0 (\0\0"AI\r\0 (\0"AI\r\0 (\0\b"AI\r\0 (\0\f"\0AI\r\0 Aüÿÿÿq"\n@ \vA\bk! Aj!A\0!\t@ \0Aÿq"At"\f \bAÁj"j/\0 \0A\fvl \b Atj(\0j!\0 Aÿq"At"j/\0 A\fvl \b Atj(\0j! Aÿq"At"j/\0 A\fvl \b Atj(\0j! Aÿq"At"j/\0 A\fvl \b Atj(\0j!@ I@ AI"j! -\0\0 A\btr "AÿÿÿK -\0\0 A\btr! Aj\v! AI"j! -\0\0 A\btr "AÿÿÿK -\0\0 A\btr! Aj\v! AI"j! -\0\0 A\btr "AÿÿÿK -\0\0 A\btr! Aj\v! \0AI"j! -\0\0 \0A\btr \0 "\0AÿÿÿK@ !\f\v Aj! -\0\0 \0A\btr!\0\f\v@ AÿÿÿK@ !\f\v \vO@ !\f\v Aj! -\0\0 A\btr! AÿÿK@ !\f\v \vO@ !\f\v Aj! -\0 A\btr!\v@ AÿÿÿK@ !\f\v \vO@ !\f\v Aj! -\0\0 A\btr! AÿÿK@ !\f\v \vO@ !\f\v Aj! -\0 A\btr!\v@ AÿÿÿK@ !\f\v \vO@ !\f\v Aj! -\0\0 A\btr! AÿÿK@ !\f\v \vO@ !\f\v Aj! -\0 A\btr!\v \0AÿÿÿK@ !\f\v \vO@ !\f\v Aj! -\0\0 \0A\btr! \0AÿÿK@ !\0\f\v \vO@ !\0\f\v Aj! -\0 A\btr!\0\v \t \rj" \bAÀj" j-\0\0:\0\0 j-\0\0:\0 j-\0\0:\0 \fj-\0\0:\0 \tAj"\t \nI\r\0\v\v@@@@ AqAk\0\v \n \rj \bAÀj AÿqAtj-\0\0:\0\v \n \rj \bAÀj AÿqAtj-\0\0:\0\v \n \rj \bAÀj AÿqAtj-\0\0:\0\0\v 6\0 \r!\f\v \rA\0!\f\v I@@ j Aÿq"\0 A\ftjj-\0\0":\0\0@ \0 A\vtj Atj"\0(\0 A\fvlj \0(k"AÿÿÿK\r\0 \vO\r\0 Aj!\0 -\0\0 A\btr!@ AÿÿK\r\0 \0 \vO\r\0 -\0 A\btr! Aj!\f\v \0! !\v \b Atj.\0! Aj" G\r\0\v\v 6\0 !\v \t\v \bAÀj$\0 \vïG+#\0A 1k"\t$\0 \tA)jA\0A\bü\v\0 \0 j!&@@ \0A\0 AHE@ \0,\0\0"Aÿ\0q! A\0N@ \0Aj!\f\v \0,\0"Aÿ\0q Atr! A\0N@ \0Aj!\f\v \0,\0"Aÿ\0q Atr! A\0N@ \0Aj!\f\v \0,\0"Aÿ\0q Atr! A\0N@ \0Aj!\f\v \0,\0"Aÿ\0q Atr! A\0N@ \0Aj!\f\v \0-\0Aÿ\0q Atr! \0Aj!\f\v E@A\0\f\v \0,\0\0"A\0N\r \0!@ ,\0\0"Aÿ\0q Atr! Aj! A\0N\r &I\r\0\v\v \0k\f\v !A\v! 6\0@ k"A\nI@\f\v \t \0 j"\v-\0\0"6) AG@\f\v \t \v-\0"6)A!@ AqE@ \tA6)A!\f\v \t \v-\0"6)A!@ \0\v !\v \t 6)@@@@ AqE@@ E\r\0 Aq!\b \tA)j!A\0! A\bO@ Aøq!@ Atj 6\0 Ar"Atj 6\0 Ar"Atj 6\0 Ar"Atj 6\0 Ar"Atj 6\0 Ar"Atj 6\0 Ar"Atj 6\0 Ar"Atj 6\0 A\bj" G\r\0\v \bE\r\v@ Atj 6\0 Aj! \nAj"\n \bG\r\0\v\v Ak!\bA\0! \tA)j!A\0 "\nkAq"@@ \nAtj \b6\0 \nAj!\n Aj" G\r\0\v\v AÿsAI\rAø \nk"A\bqE@ \nAtj" \b6 \b6 \b6 \b6 \b6\f \b6\b \b6 \b6\0 A\bI\r \nA\bj!\n\v@ \nAtj" \b6< \b68 \b64 \b60 \b6, \b6( \b6$ \b6 \b6 \b6 \b6 \b6 \b6\f \b6\b \b6 \b6\0 \nAj"\nAG\r\0\v\f\v \t \v j-\0\x006)A\0! \v Aj"j k \tA)jA"A\0H\r j! \t()!\v \t Aä8l\b"61 E@A\0!\f\vA\0! \tA\x0061 \t()! A\0L@\f\v@ k"AI\r Aä8lj"\f \v j"/\0\0;\0 \f -\0"6 \f A q" :\0 \f AÀ\0q:\0 \f Aq":\0 \f Aq6 \f A\bq6\b \f Aq"6 \f Aq6\f \f -\0"\b6< \f -\0"Av"6 \f Aq6È8 \fA tAs6Ø8 \f -\0"Aq68 \f Av6 \f -\0"Aq60 \f Av6( \fAÈ\0j!A\0!@ @@ Atj"Bÿÿÿÿ÷ÿÿÿÿ\x0078 Bÿÿÿÿ÷ÿÿÿÿ\x0070 Bÿÿÿÿ÷ÿÿÿÿ\x007( Bÿÿÿÿ÷ÿÿÿÿ\x007 Bÿÿÿÿ÷ÿÿÿÿ\x007 Bÿÿÿÿ÷ÿÿÿÿ\x007 Bÿÿÿÿ÷ÿÿÿÿ\x007\b Bÿÿÿÿ÷ÿÿÿÿ\x007\0 Aj"AG\r\0\v \bAj K\r \bE@A!\n\f\v \bAq!A\0!A!\nA\0! \bAO@@@ \bAk"\bAv"E@\f\v AjAþÿÿÿq!A\0!\'@ Atj" \n j""-\0\x006\0 "-\06 "-\06\b "-\06\f "-\06 "-\06 "-\06 "-\06 A\bj! \nA\bj!\n \'Aj"\' G\r\0\v \bAq\r\v Atj"\b \n j"-\0\x006\0 \b -\06 \b -\06\b \b -\06\f Aj! \nAj!\n\v E\r\v@ Atj \n j-\0\x006\0 Aj! \nAj!\n Aj" G\r\0\v\f\v@ Atj 6\0 Ar"Atj 6\0 Ar"Atj 6\0 Ar"Atj 6\0 Ar"Atj 6\0 Ar"Atj 6\0 Ar"Atj 6\0A!\n Ar"Atj 6\0 A\bj"AG\r\0\v\v@ E\r\0 E@ \fAÈ\bj!A\0!@ Atj 6\0 Ar"Atj 6\0 Ar"Atj 6\0 Ar"Atj 6\0 Ar"Atj 6\0 Ar"Atj 6\0 Ar"Atj 6\0 Ar"Atj 6\0 A\bj"AG\r\0\v\f\v \n j \nk \fAÈ\bjA"A\0H\r \nj!\n \f-\0! \v@ E@ \fAÈjA\0A ü\v\0\f\v \n j \nk \fAÈjA\b"A\0H\r \nj!\n\v@ \f-\0E@ \fAÈ0jA\0A\bü\v\0\f\v \n j \nk \fAÈ0jA"A\0H\r \nj!\n\v \nA\0H\rA\0 \f(\b \r \f(<" H! \n j! Aj" G\r\0\v \t 61A\0!\f@ \fAä8lj"AÈj! ((!A\0!\n@ \nAtj"\b \b(\0 t6\0 \b \b( t6 \b \b(\b t6\b \b \b(\f t6\f \b \b( t6 \b \b( t6 \b \b( t6 \b \b( t6 \nA\bj"\nA\bG\r\0\v AÈ0j! (0!A\0!\n@ \nAtj" (\0 t6\0 ( t6 (\b t6\b (\f t6\f ( t6 ( t6 ( t6 ( t6 \nA\bj"\nAG\r\0\v \fAj"\fG\r\0\v\f\v \t(1"E\r\v \f\v \tAÀ \v" 6 E\r\0 Aj"Aq!@ AÿO@ A|q!A\0!@ A\blj"A\bj!A\0!@ Atj"\bA;\0 \b ; Ar"\nAtj"\bA;\0 \b \n; Ar"\nAtj"\bA;\0 \b \n; Ar"\nAtj"\bA;\0 \b \n; Aj" G\r\0\vA\0!\n @@ Atj"\bA;\0 \b ; Aj! \nAj"\n G\r\0\v\v 6\0 Aïÿ6 Aïÿ6\b A\0;\b Aj"AG\r\0\v\f\v Aq! Aüq! AûK!A\0!@ A\blj"A\bj!A\0!A\0!\n@ AO@@ Atj"A;\0 ; Ar"\bAtj"A;\0 \b; Ar"\bAtj"A;\0 \b; Ar"\bAtj"A;\0 \b; Aj" G\r\0\v !\n E\r\vA\0!@ \nAtj"A;\0 \n; \nAj!\n Aj" G\r\0\v\vA\0!\n ! AG@@ Atj"A\0;\0 ; Aj! \nAj"\nsAG\r\0\v\v E@@ Atj"A\0;\0 ; Aj"\bAtj"A\0;\0 \b; Aj"\bAtj"A\0;\0 \b; Aj"\bAtj"A\0;\0 \b; Aj"AG\r\0\v\v 6\0 Aïÿ6 Aïÿ6\b A\0;\b Aj"AG\r\0\v\v \tAj!A\0!@ Atj"A;\0 ; Ar"Atj"A;\0 ; Ar"Atj"A;\0 ; Ar"Atj"A;\0 ; Aj"AG\r\0\v \tBðý?7\b \tAïÿ6\bA\0! \tA\0;\b \tA \bj!@ Atj"A;\0 ; Ar"Atj"A;\0 ; Ar"Atj"A;\0 ; Ar"Atj"A;\0 ; Aj"AG\r\0\v \tBðý?7\b \tAïÿ6¤A\0! \tA\0; \tA°j!@ Atj"A;\0 ; Ar"Atj"A;\0 ; Ar"Atj"A;\0 ; Ar"Atj"A;\0 ; Aj"AG\r\0\v \tBðý?7¨ \tAïÿ6´A\0! \tA\0;° \tAÀj! @ Atj"A;\0 ; Ar"Atj"A;\0 ; Ar"Atj"A;\0 ; Ar"Atj"A;\0 ; Aj"AG\r\0\v \tBðý?7¸ \tAïÿ6Ä \tA\0;À \tBÀ\x007Ð \tBðý?7È \tAïÿ6Ü \tA\0;Ø \tBÀ\x007ø( \tBðý?7ð( \tAïÿ6) \tA\0;) A\0J@ Aj"Aq! \tAè j!A\0!\nA\0!@ AO@ A|q!@ Atj"A;\0 ; Ar"\bAtj"A;\0 \b; Ar"\bAtj"A;\0 \b; Ar"\bAtj"A;\0 \b; Aj" G\r\0\v E\r\v@ Atj"A;\0 ; Aj! \nAj"\n G\r\0\v\v@ AþK\r\0 ! Aq"\bAG@A\0!\n@ Atj"A\0;\0 ; Aj! \b \nAj"\nsAG\r\0\v\v AûK\r\0@ Atj"A\0;\0 ; Aj"\bAtj"A\0;\0 \b; Aj"\bAtj"A\0;\0 \b; Aj"\bAtj"A\0;\0 \b; Aj"AG\r\0\v\v \t 6à \tAïÿ6ä \tAïÿ6ì( \tA\0;è(\v \v j"Aj" &"M@ (\0" AxsAþxqA\bv A\bxs! !\v@@ (\0\b"E\r\0Aè\b!#A \b!! #E\r\0 !E\r\0@ E@Aè!%A\0!\f\v \tAø(j! \tAÐ j! \0 j!\b AÈ\0j!+ AÈ0j!, AÈj!- AÈ\bj!. \tA)j!/ \tAè j!Aè!%A!\0A\0!\nA\0!A\0!\'A\0!A\0!"A!*A\0!A\0!@ $ %N@ %At! # %At"%!# ! !! #E\r !E\r\v@ E@ (\bA\0!@@ \0 \t(à "AkM@A\0!\r\f\v \0 n"\0n"\rAïÿM\r\0\f\v !@ "\vAj! " \v/\0""j" \rM\r\0\v \v kA\bJ@A\0!\f\v \0 lk!@ \0 "l"\0AÿÿÿK\r\0 &O@A!\f\v@@ \0A\bt! Aj! -\0\0 A\btr! \0AO\r !\0 " \bG\r\0\vA! \b\f\v \v! !\0\v \v "Aj"\f;\0 \t Aj"6à @ AðÿI\r\0A\0!\r \tA\x006à ! \t/è "E\r\0@ AþÿqAvk";\0 \r Aÿÿqj!\r /! Aj! \r\0\v \t \r6à \v/\0!\f\v \v/! \vAk"/\0 \fAÿÿqO\r\0 \v (\x006\0 \f;\0 \vAk ;\0\v AÿÿqA\0\v""! \t()"Aq@ /Aÿ AÿOAtj(\0!\v \t()N\rA\0 \t(1 Aä8lj"( *E@A\0!@@ \0 \t(\b"AkM@A\0!\r\f\v \0 n"\0n"\rAïÿM\r\0\f\v !@ "\vAj! " \v/\0"j" \rM\r\0\v \v kA\bJ@A\0!\f\v \0 lk!@ \0 l"\0AÿÿÿK\r\0 &O@A!\f\v@@ \0A\bt! Aj! -\0\0 A\btr! \0AO\r !\0 " \bG\r\0\vA! \b\f\v \v! !\0\v \v Aj"\f;\0 \t Aj"6\b@ AðÿI\r\0A\0!\r \tA\x006\b ! \t/"E\r\0@ AþÿqAvk";\0 \r Aÿÿqj!\r /! Aj! \r\0\v \t \r6\b \v/\0!\f\v \v/! \vAk"/\0 \fAÿÿqO\r\0 \v (\x006\0 \f;\0 \vAk ;\0\v Aÿÿq!A\0!@@ \0 \t(\b"AkM@A\0!\r\f\v \0 n"\0n"\rAïÿM\r\0\f\v !@ "\vAj! " \v/\0"j" \rM\r\0\v \v kA\bJ@A\0!\f\v \0 lk!@ \0 l"\0AÿÿÿK\r\0 &O@A!\f\v@@ \0A\bt! Aj! -\0\0 A\btr! \0AO\r !\0 " \bG\r\0\vA! \b\f\v \v! !\0\v \v Aj"\f;\0 \t Aj"6\b@ AðÿI\r\0A\0!\r \tA\x006\b ! \t/ \b"E\r\0@ AþÿqAvk";\0 \r Aÿÿqj!\r /! Aj! \r\0\v \t \r6\b \v/\0!\f\v \v/! \vAk"/\0 \fAÿÿqO\r\0 \v (\x006\0 \f;\0 \vAk ;\0\v AÿÿqA\bt rA\0!@@ \0 \t(¨"AkM@A\0!\r\f\v \0 n"\0n"\rAïÿM\r\0\f\v !@ "\vAj! " \v/\0"j" \rM\r\0\v \v kA\bJ@A\0!\f\v \0 lk!@ \0 l"\0AÿÿÿK\r\0 &O@A!\f\v@@ \0A\bt! Aj! -\0\0 A\btr! \0AO\r !\0 " \bG\r\0\vA! \b\f\v \v! !\0\v \v Aj"\f;\0 \t Aj"6¨@ AðÿI\r\0A\0!\r \tA\x006¨ ! \t/°"E\r\0@ AþÿqAvk";\0 \r Aÿÿqj!\r /! Aj! \r\0\v \t \r6¨ \v/\0!\f\v \v/! \vAk"/\0 \fAÿÿqO\r\0 \v (\x006\0 \f;\0 \vAk ;\0\v AtrA\0!@@ \0 \t(¸"AkM@A\0!\r\f\v \0 n"\0n"\rAïÿM\r\0\f\v !@ "\vAj! " \v/\0"j" \rM\r\0\v \v kA\bJ@A\0!\f\v \0 lk!@ \0 l"\0AÿÿÿK\r\0 &O@A!\f\v@@ \0A\bt! Aj! -\0\0 A\btr! \0AO\r !\0 " \bG\r\0\vA! \b\f\v \v! !\0\v \v Aj"\f;\0 \t Aj"6¸@ AðÿI\r\0A\0!\r \tA\x006¸ ! \t/À"E\r\0@ AþÿqAvk";\0 \r Aÿÿqj!\r /! Aj! \r\0\v \t \r6¸ \v/\0!\f\v \v/! \vAk"/\0 \fAÿÿqO\r\0 \v (\x006\0 \f;\0 \vAk ;\0\v Atr!\v Ak (\0 kO\r@ E\r\0 $L\r\0 $Atj 6\0\v Aq@A\0!@@ \0 \t(È "AkM@A\0!\r\f\v \0 n"\0n"\rAïÿM\r\0\f\v !@ "\vAj! " \v/\0"j" \rM\r\0\v \v kA\bJ@A\0!\f\v \0 lk!@ \0 l"\0AÿÿÿK\r\0 &O@A!\f\v@@ \0A\bt! Aj! -\0\0 A\btr! \0AO\r !\0 " \bG\r\0\vA! \b\f\v \v! !\0\v \v Aj"\f;\0 \t Aj"6È @ AðÿI\r\0A\0!\r \tA\x006È ! \t/Ð "E\r\0@ AþÿqAvk";\0 \r Aÿÿqj!\r /! Aj! \r\0\v \t \r6È \v/\0!\f\v \v/! \vAk"/\0 \fAÿÿqO\r\0 \v (\x006\0 \f;\0 \vAk ;\0\v # $j :\0\0 ! $Atj 6\0 Aÿÿq!(\v@ (\fE\r\0A\0!@ \0 \t(ð("AkM@A\0!\r\f\v \0 n"\0n"\rAïÿK\r\v !@ "\vAj! " \v/\0"j" \rM\r\0\v \v kA\bJ\r\0 \0 lk!@ \0 l"\0AÿÿÿK\r\0 &O@A!\f\v@@ \0A\bt! Aj! -\0\0 A\btr! \0AO\r !\0 " \bG\r\0\vA! \b\f\v \v! !\0\v \v Aj"\f;\0 \t Aj"6ð(@ AðÿI\r\0A\0!\r \tA\x006ð( ! \t/ø("E\r\0@ AþÿqAvk";\0 \r Aÿÿqj!\r /! Aj! \r\0\v \t \r6ð( \v/\0!\f\v \v/! \vAk"/\0 \fAÿÿqI@ \v (\x006\0 \f;\0 \vAk ;\0\v E\r\0 I\r @ j" k ü\n\0\0\v $Aj!$ j!A\0!*A\0!\f\v $Aj!$ /\0!\nA\0!*A\0!A\0!\'A\0!) !\v@A\0!@@ \0 \t( \nA\blj"(\0"AkM@A\0!\f\v \0 n"\0n"AïÿM\r\0\f\v A\bj"\f!\n@ \n"Aj!\n "\v /\0"j" M\r\0\v \fkA\bJ@A\0!\f\v \0 \vlk!@ \0 l"\0AÿÿÿK\r\0 &O@A!\f\v@@ \0A\bt! Aj! -\0\0 A\btr! \0AO\r !\0 " \bG\r\0\vA! \b\f\v \v! !\0\v Aj";\0 Aj"6\0@ AðÿI\r\0A\0!\n A\x006\0 /\b"E\r\0@ \f AþÿqAvk";\0 \n Aÿÿqj!\n \f/! \fAj!\f \r\0\v \n6\0 /\0!\v /! Ak"\n/\0 AÿÿqO\r\0 \n(\x006\0 \n ;\0 Ak ;\0\v ,Aÿ \' \'AÿOAtj(\0 -Aÿ AÿOAtj(\0 . Aÿq"At"j(\0! (8! ( !\v (Ø8 (È8! j +j(\0:\0\0 ) tj")q \vtjj " tjAÿÿq!\n Aj! \' Gj!\' Ak"@ ! I\r\v\v !\v I\r\0\v Av! $ %H\r\0 %At!\0 # %At"%!# ! \0!! #E\r !E\r\v # $j (:\0\0 ! $Atj 6\0@ \t-\0)AqE\r\0 E\r\0 %A\0L\r\0A\0!\fA\0!\0@@ \f #j-\0\0E\r\0 ! \fAtj(\0"AH\r\0 \0 j! Ak!A\0!@ j"-\0\0! j"-\0\0:\0\0 :\0\0 Aj" Ak"H\r\0\v\v ! \fAtj(\0 \0j"\0 O\r \fAj"\f %H\r\0\v\v \r\0 \t(\t # ! \t(1"\r\f\v \t(\t # ! \t(1"\0@ \0\v !A\0!\v \v \tA 1j$\0 \v\f\0 \0 A\0 \v,\0AèAÀ\x006\0AàA6\0AÈA*6\0AäA6\0\v\vÆr\0A\b\v N\0ë§~ uú\0¹,ý·z¼\0ú¢\0=I×\0\b\0\b*_·úXÙ+ʽáÍÜ@x\0}gaì\0å\nÔ\0Ì>Ov¯\0\0D\0®\0®`\0úw!ë+\0`A\0©£nN\0AÈ\t\v\f\0\0\0\0\0\0\0\0*\0Aè\t\v\'9H\0Aþ\t\v\0A\n\v28R`S\0\0Ê»\0\0Ò\0\0é\t>Yi~ {0x%08x, 0x%08x}\0\n combined CRCs: stored = 0x%08x, computed = 0x%08x\0-+ 0X0x\0invalid literal/lengths set\0invalid code lengths set\0unknown header flags set\0invalid distances set\0invalid bit length repeat\0too many length or distance symbols\0invalid stored block lengths\0Unknown error\0invalid code -- missing end-of-block\0incorrect header check\0incorrect length check\0incorrect data check\0invalid distance too far back\0header crc mismatch\0invalid window size\0invalid block type\0invalid literal/length code\0invalid distance code\0unknown compression method\0rt+rld\x001.0.6, 6-Sept-2010\0(null)\0\n [%d: huff+mtf \0Error: out of rans_tls_alloc slots\n\0Initialising TLS data failed: pthread_once: %s\n\0Attempt to htscodecs_tls_free a buffer twice\n\0Attempt to htscodecs_tls_free a buffer not allocated with htscodecs_tls_alloc\n\0Name codec currently has a max of 10 million rec.\n\0\n\nbzip2/libbzip2: internal error number %d.\nThis is a bug in bzip2/libbzip2, %s.\nPlease report it to me at: jseward@bzip.org. If this happened\nwhen you were using some program which uses libbzip2 as a\ncomponent, you should also report this bug to the author(s)\nof that program. Please make an effort to report this bug;\ntimely and accurate bug reports eventually lead to higher\nquality software. Thanks. Julian Seward, 10 December 2007.\n\n\0Success\0Illegal byte sequence\0Domain error\0Result not representable\0Not a tty\0Permission denied\0Operation not permitted\0No such file or directory\0No such process\0File exists\0Value too large for defined data type\0No space left on device\0Out of memory\0Resource busy\0Interrupted system call\0Resource temporarily unavailable\0Invalid seek\0Cross-device link\0Read-only file system\0Directory not empty\0Connection reset by peer\0Operation timed out\0Connection refused\0Host is down\0Host is unreachable\0Address in use\0Broken pipe\0I/O error\0No such device or address\0Block device required\0No such device\0Not a directory\0Is a directory\0Text file busy\0Exec format error\0Invalid argument\0Argument list too long\0Symbolic link loop\0Filename too long\0Too many open files in system\0No file descriptors available\0Bad file descriptor\0No child process\0Bad address\0File too large\0Too many links\0No locks available\0Resource deadlock would occur\0State not recoverable\0Owner died\0Operation canceled\0Function not implemented\0No message of desired type\0Identifier removed\0Device not a stream\0No data available\0Device timeout\0Out of streams resources\0Link has been severed\0Protocol error\0Bad message\0File descriptor in bad state\0Not a socket\0Destination address required\0Message too large\0Protocol wrong type for socket\0Protocol not available\0Protocol not supported\0Socket type not supported\0Not supported\0Protocol family not supported\0Address family not supported by protocol\0Address not available\0Network is down\0Network unreachable\0Connection reset by network\0Connection aborted\0No buffer space available\0Socket is connected\0Socket not connected\0Cannot send after socket shutdown\0Operation already in progress\0Operation in progress\0Stale file handle\0Data consistency error\0Resource not available\0Remote I/O error\0Quota exceeded\0No medium found\0Wrong medium type\0Multihop attempted\0Required key not available\0Key has expired\0Key has been revoked\0Key was rejected by service\0\0\0\0\0·Án;\tÙ&C\rÜvkkŲMPG¸í\b&ðÉ"ÖÖ/aËK+d\f5ÓÍ1\n <½½O8pÛLÇÆÐHàE©ýRA¬_°Ô[ÂVuVRÈ6j+Øn¦\rcZg@y£]Ü}z{pÍf^tà¶#W«â¡9`<À\'ÝæRû¥åædX[+¾ïFêº6`©·}h³-/30î©ê¤]\vl m2Ô\'póÐþV°ÝIKqÙL6Çû÷Ã" ´Î=uÊ(:òûöF»¸ûñ¦yÿôö>áCëÿåͼè-Ð}ìwp4ÀmG0K=®VÅ9«\'C#Å=\0.r Á*ÏxO¡¦\f»Íë¤öK}Ð\b\bÊÍÉ\f«x°¶V|iqÞÔuÛÝklÀRoµæbûÐf¿F^\b[^ZÑ}Wf`ÜSc0MÔ-ZI\r\vDºØ@Æ¥¬ Ûd¨ùý\'¥Nàæ¡K°¡¿ü`»%#¶â²/+6lA/ö\rîó]©D@hf+*{êç´àP\0uä&6é>;÷í;k°óvq÷UP2úâMóþ_ð¼Æèí}Â1Ë>ÏÖÿ˸Õ4yÑí½:ÜZ ûØîà\fiYýÍmÛ`7ÆOd2\bz
É~\\së°KwV\rOáÅK86F+GB{\0\\=fÁXä@US]CQ;%)&Ü!ð\0,G^(BM6õPØ2,v?kZ;&ÖËÔHí\nÿðVú M½Ð#RV/ñ¹Kîõ`mø×plüÒ +âe=êæ¼©ë\vhï¶»\'צæÓØ¥ÞodÚjÍ#ÄÝÐâÀö¡Í³ë`É~>½Éÿ¹¶¼´§«}°¢û:®æûªÌÀ¸§{Ýy£Æ`6q}÷¨[´Fu2\vót-°Ã0q
].KY÷«\bT@¶ÉPEæNòûOJ+Ý\fGÀÍC!}{`COF\0rø[Ávý\vhJGl0a$-ÅeéK^VZp0mØ5= ^[\vìÜQ¦7æ»R3?>Ð:Ð$:ÍV ãë-TöÔ)y&©ÅÎ;hÁ+Ì \0êÈ¥PÖMlÒËk/ß|vîÛÁË¡ãvÖ`ç¯ð#êíâî½¥ðª dôs\'ùÄæý\tý¸¾àygÆ:ÐÛûÕ¼b}»°>\fÿ±°¯\rq«ß+2¦h6ó¢mf´¼Ú{u¸]6µ´@÷±k\0\0Ð\0\0\0\0\0á\0\0£\0\x000\0\0-\0\0é\0\0\x006\0\0÷\0\0\0Ù\0\0Ô\0\0Í\0\0\0Æ\0\0_\0\0ë\0\0å\0\0ò\0\0\0µ\0\0Ö\0\0\0Ý\0\0[\0\0O\0\0Ä\0\0m\0\0>\0\0I\0\0\0\0\0Ú\0\0Ø\0\0£\0\0´\0\0\0\0ð\0\0c\0\0Ò\0\0\0\0\0¨\0\0à\0\x003\0\0\0n\0\0Ñ\0\0+\0\0©\0\0\0e\0\0£\0\0c\0\0¹\0\0c\0\x001\0\0^\0\0¯\0\0û\0\0\0\0â\0\0\0\0\0\'\0\0O\0\0Ý\0\0o\0\0\0\0\0î\0\0\0;\0\0\0{\0\0¬\0\0m\0\0q\0\0©\0\0\0\0\0i\0\0\0ª\0\0\0_\0\0\b\0\0¤\0\0×\0\0Ü\0\0µ\0\0©\0\0®\0\0\0\0\0I\0\0\0z\0\0\0O\0\0\0\0º\0\0U\0\0·\0\0ù\0\0\0½\0\0\0\0\0\0!\0\0¿\0\0\0\0j\0\0Ú\0\0r\0\0ô\0\0R\0\0d\0\0\0\0!\0\0Ü\0\0\0¢\0\0\x003\0\0Ø\0\0M\0\0\0\0ï\0\0\0\0¡\0\0\0\\\0\0¾\0\0\0\0Ý\0\0\0\0\0\0\0c\0\0X\0\0\0\0~\0\0T\0\0\0\0«\0\0\0\0\0w\0\0ª\0\0å\0\0\0\0\0\0b\0\0\0)\0\0£\0\0\0b\0\0\0\0¥\0\0¨\0\0U\0\0\0\0f\0\0ã\0\0\0Ú\0\0Û\0\0º\0\0\0\0\0\0\0\0\0®\0\0X\0\0à\0\0\0Õ\0\0D\0\0\0\0\0\0\0¾\0\0\0u\0\0&\0\x006\0\0(\0\0Î\0\0\0¸\0\0\0¯\0\0\0\0\0\0\0\0Í\0\0\0\0ö\0\0G\0\0w\0\0Ë\0\0C\0\0\0j\0\0\0\0Ì\0\0\0\0\0i\0\0\t\0\0\\\0\x000\0\0·\0\0 \0\0\0B\0\0Ò\0\0O\0\0\0$\0\0`\0\0\0\0\0É\0\0¬\0\0\0\0¦\0\0Ê\0\0¿\0\0>\0\0a\0\0[\0\0 \0\0p\0\0\0\0\0
\0\0_\0\0#\0\0^\0\0\0\0\0]\0\0\0b\0\0c\0\0\x004\0\0\0\0a\0\0\0\0\0\0\0\0\0D\0\0¸\0\0\0O\0\0\0r\0\0v\0\0æ\0\0\0\0\0\0ú\0\0o\0\0¨\0\0Q\0\0\0\0\0r\0\0\0\0}\0\0\0\0\0\t\0\0ª\0\0,\0\x005\0\0N\0\0\0W\0\0¯\0\0\0\0\0\0ú\0\0\0ª\0\0\0\0\0Ì\0\0\0\0ç\0\0\0\0ï\0\0N\0\0\0`\0\0~\0\0\0Y\0\0¼\0\0f\0\0k\0\0D\0\0|\0\0\0á\0\0R\0\0½\0\0d\0\0\0\0p\0\0\0\0\0\0¶\0\0k\0\0à\0\0)\0\0ç\0\0¨\0\0\0Î\0\0°\0\0w\0\0ì\0\x004\0\0\0X\0\0ë\0\0\0\0¶\0\0\0^\0\0Q\0\0\0X\0\0%\0\0Ü\0\0ã\0\0ÿ\0\0\0\0.\0\0N\0\0ù\0\0\0\0\0\0\0»\0\0\0\0Õ\0\0\0\0q\0\0\0Î\0\0Ë\0\0}\0\0ä\0\0\0±\0\0E\0\0)\0\0\f\0\0\0\0ð\0\0\0f\0\0\0\0\0Ë\0\x003\0\0\0®\0\0ò\0\0&\0\0ø\0\0í\0\0\0\0\0\0\0\0¯\0\0¼\0\0²\0\0\0\0\0\0b\0\0â\0\0\0\0ø\0\0\0\0w\0\0\0\0Ò\0\0A\0\0@\0\0i\0\0r\0\0ö\0\0~\0\0§\0\0ó\0\0\0¸\0\0¨\0\0o\0\0Â\0\0\0<\0\0\0\0Ô\0\0\0\x008\0\0\0Ì\0\0\0¼\0\0Ã\0\0\0\0\0É\0\0Á\0\0\0\0Ã\0\0\0\0\0.\0\0±\0\0§\0\0)\0\0;\0\0\0W\0\0\x008\0\0É\0\0\0\0\0\0µ\0\0V\0\0^\0\0\0\0\0l\0\0\0;\0\0l\0\0w\0\0Ô\0\0\0®\0\0\0\0\x000\0\0I\0\0W\0\0a\0\0\0®\0\0ï\0\0ñ\0\0:\0\0×\0\0v\0\x006\0\0 \0\0\0\0\0Î\0\0\0I\0\0\0\0\0Ô\0\0à\0\0l\0\0Þ\0\0®\0\x001\0\0ª\0\0\0\0\0l\0\0´\0\0=\0\0R\0\0\0W\0\0¹\0\0¤\0\0ö\0\0\0q\0\0Ê\0\0&\0\0î\0\0\'\0\0;\0\0\0\0\0\0\0 \0\0\0\0$\0\0z\0\0×\0\0\0<\0\0P\0\0\0\x005\0\0+\0\0Æ\0\0R\0\0\0\0\0?\0\0#\0\0\0\0\f\0\0Î\0\0%\0\0Ñ\0\0ö\0\x008\0\0\0\0\x005\0\0Ð\0\0ß\0\0\0\0e\0\0\0\0ö\0\0é\0\0Á\0\0\0\0\0\0&\0\0`\0\0¥\0\0z\0\0\0\0×\0\0\0Ó\0\0\0\0Á\0\0=\0\0\0°\0\0\0\0\0\0Ú\0\0\0\0j\0\0\0n\0\0\0\0\0\0t\0\x007\0\0Ò\0\0²\0\0
\0\0Ò\0\0\0
\0\0&\0\0\0\0\0\0\0\f\0\0\0\0{\0\0
\0\0Ã\0\0d\0\0\0r\0\0¾\0\0¥\0\0\0ø\0\0\0\0°\0\0\0Á\0\0\0É\0\0Y\0\0\t\0\0Ë\0\0\x002\0\0\0\0\0l\0\0\0
\0\0Þ\0\0r\0\0Å\0\0\0þ\0\0e\0\0f\0\0R\0\0Z\0\0l\0\0¨\0\0~\0\0\0\0\0\0\0\b\0\0\t\0\0\n\0\0\v\0\0\f\0\0\r\0\0\0\0\0A¤<\v¹;0w,aîºQ\tÄmôjp5¥cé£d2Û¤¸ÜyéÕàÙÒ+L¶\t½|±~-¸ç¿d·ò °jHq¹óÞA¾}ÔÚëäÝmQµÔôÇ
ÓVlÀ¨kdzùbýìÉeO\\Ùlcc=úõ\r\bÈ n;^iLäA`Õrqg¢Ñä<GÔKý
\rÒkµ\n¥ú¨µ5l²BÖÉ»Û@ù¼¬ãlØ2u\\ßEÏ\rÖÜY=Ñ«¬0Ù&:\0ÞQQ×Èaпµô´!#ijVºÏ¥½¸¸(\b_²Ù\fÆ$é\v±|o/LhX«aÁ=-f¶AÜvqÛ¼ Ò*Õï
±qµ¶¥ä¿3Ô¸è¢Éx4ù\0¨\tá»\rj-=m\bld\\cæôQkkbalØ0e
N\0bòíl{¥Áô\bWÄõÆÙ°ePé·ê¸¾|¹üßÝbI-Úó|ÓeLÔûXa²MÎQµ:t\0¼£â0»ÔA¥ßJר=mÄѤûôÖÓjéiCüÙn4Fgи`Ús-Då3_L\nªÉ|\rÝ<qPªA\'\v¾ \fÉ%µhW³
o \tÔf¹äaÎùÞ^ÉÙ)"а´¨×Ç=³Y\r´.;\\½·lºÀ ¸í¶³¿\fâ¶Ò±t9GÕê¯wÒ&ÛÜs\vcã;d>jm\r¨Zjz\vÏäÿ\t\'®\0\n±}DðÒ£\bhòþÂi]Wb÷Ëgeq6lçknvÔþà+ÓZzÚÌJÝgoß¹ùùï¾C¾·Õ°`è£ÖÖ~Ñ¡ÄÂØ8RòßOñg»ÑgW¼¦Ýµ?K6²HÚ+\rØL\n¯öJ6`zAÃï`ßUßg¨ïn1y¾iF³aËf¼ Òo%6âhRw\fÌG\v»¹"/&U¾;ºÅ(\v½²Z´+j³\\§ÿ×Â1ÏеÙ,®Þ[°Âd&òcì£ju\nm©\t?6ë
grW\0J¿z¸â®+±{8¶\fÒ\r¾Õå·ïÜ|!ßÛ\vÔÒÓBâÔñø³ÝhnÚ;[&¹öáw°owG·æZ\bpjÿÊ;f\\\vÿei®bøÓÿkaEÏlxâ\n îÒ\r×TN³9a&g§÷`ÐMGiIÛwn>JjÑ®ÜZÖÙf\vß@ð;Ø7S®¼©Å»ÞϲGéÿµ0ò½½ÂºÊ0³S¦£´$6к×Í)WÞT¿gÙ#.zf³¸JaÄh]+o*7¾\v´¡\fÃßZï-\0\0\0\0F;gevÎÊÊM©¯YëíNÐ+Õ#¦Dá²ÖÛôí¼ø> Wxr2ë=6ÓQ¶gKø!p|%«Æàc¡
©Ý\b*ïæoO|@+®:{LËð6åd¶\r}}ÑFz\vÓ·]0´ÒÎð3VBà>ùÛY\vPüMk&2ÐÁUµR»Tv1ÞÍßö¸û¹\'ÿ½@â5ðéMsË(àmÊɦV¬l* cf.û:úhÀ]¢ô0ä¶Uw×´1+°Ñûf~½]~-ágÚ[/V`HÈÅÆ\f)ýkLI°Â㥠ø5PPÖ6ÿÜíQOK{\tprÃ=Û±
¼Ô¤v#¨âMDÍ(\0íbn;ýÎæ»¦©që\0,7ÐgI3\v>Õu0Y°¿}ðùFzjàÓ,Û´þæQ z4ÝåHÇæ-\r«+KLçØ6\b\rocT@ÆÌ{¡©ð/[ËcJÊå×½Déa Èm\'«V@ί&ß²é¸×#PxekvöÍ2ü°öUz»ü6<S8[ÂÏ~`¥ª´-\fòk`a°/\'HäíÆáK«ý.R̶~7û×@À°ýÓfô]y_:Ö+]³,@ñkj{ 6?¡æ\rXÄu«%3{@ùÝÒï¿æµ*öØMàä<TÛYÇ}ǸF ÝK\v\tr\r0n\të7OÐPî
ùAæ$P\0ÚÅ;½ ÜvMsj»=ìýs7K"ÜqpE¹âÖX¤íf=n Ï(¨÷\'\rqa+j«fûí]¤Þ~ûà?8ÀZò.õ´¶IÆÖìÓý±°&_CÌ-;¢\\Ç@[õh`\r»ËD¬ôÍ[Èöb>[P&ßkAº×&èp°m\föVwi<ÞÆz ¹£éýB¯½\'eð3#ËTí:à\t^|Ûn;¶Çð ñc\vä%0uï}*Ú©FM¿6ÒÃÎ\rµ¦@\tB{{lÑÝ?æXè]«ñG"KϾYp¨Û=tÕfF "ð\0EÊÖì:í_#ë¦sF!ëÚégнôvùm²M\bx\x007§>;PÂ1°õDw!½Æ;ûý\\ëh[\n.`oä-ÖÀ¢±¥f.ÙÅ]I¼àI+vÚö¤òVû\r]Àj83¤R TÁmýnÞV\vMðÞê\v˹Á ½wE¦Íè9àö\\*»&ólAÿ&w¹bsP˽5k¬Ø\0\0\0\0Xâ×ñ´t©V£â\rhéº>\vÜK>J
¡\tÝCÞt},÷ªgÉà?+7}ÎC\n;BR» Äû=ög£½°è6*ú°¶È-0A°|Y&ãצÍ~ Wn& µ¹m+ó5«i$-?ÄÝPv&Löfñåp0R½ðÒ
ö{ìÏ®û}X»_ýºlk%/ÉëÇø`m[8íssfMÆ+æ¯`ù²ÚàeMÆ5FÍ$âïKrA·Ëü@®Ü¤ÀL\v\rF¨UÆøPg<ÃÐ
ëjVÓH2Ö1y]Õ!Ýí[»¡ÐÛYv(ì\bMplêÙê¼9j^îÊá`¤as;çÔÐcg6ñ©DõqK\\÷0wÿçOüÁ|#z¾úuÙæz"×J^zW¨ÓÑþ*QýÀÚ"·ZÀ`1ÜÃi\\t§ÊëWÿJ\tVÌ_#L½ôEǾGai´Á7ÊìAÕ<kdn¼Í8ÚÈÞäU/Pöw²!¹-báϵH{Á[E\n§\\ªñÿò\f(6¡Îxn!,¯Ç§z\f\'ÛÔ¬¦,DF%ªå}*ð2³¼oqë<¦BºÛ:9ÒQ±\t1åO ·³ìø7Q;PØ\bXóM¡Þ¥îù^G9²ÕysêU¤CÓÍS/ÐÕŰERD$Ãç|Cæ07ÈØzoH:ÆÎlNÙZãSc±^«åçýóe*¸î;`ànÙ·IèhmÃßþò~W.øFôvx¤#=óiesx¾Ìõ.uÌÊD®¼.wkµ¨!Èí(æ£ýUþ#W¥I!%«öÁ³4µ3Öb0µÁh5b#¾\\\\{>¾Ò¸è(8\nÿNׯ5x¿cÛç\f¬¿Fô]]\v2éåËv¦\bq:ÂÒb )
Oqüت;Hìx4× ´û\02£Ñ²Ot9q>¹ék?ÅJ3¿\'ý)¸Þ¥©Z\t\f/\fªT¯î}$Ð7G¤2àî"dC¶¢r[Ä*¹\tï°Û\rg3-ÈÑúaY9e÷úͯN¹^¬n$Mpóä&P¼ÄlBñ4Â&D)
ÅÄËROõÖÏÏIAl\'É£»é_<ø±ßÞ/Y@Ùj[\vRTSÒ¶ÆúTàe¢Ô²fyßâ>ù=5kÏÿAt·\vÜôUÜur-òá¨ãd~ë»ä<bÊJâ(HiYéôÕðo¢v¨ï@¡\0\0\0\0á¶RïkÔbÝêר\vçaúä
¼|d\n.á\f®QíøÅ
ns×ý\nyùëÏ«ó-h¤ö\\£.ùêñÁ7w+z%Ä\v%ÿ=YÊàß |VÏòò9õD Ö&<v/tÓ%Z2ó\bÝN7pøÜØ0¸F]Ѳ³ÓXReÀ·6oîV×Ù¼¹µ:ST²h¼<JÝ E¥¿}ÃO^Ë :Á¿AÛwí®¹ªkDX9«(äåsÉR·«1vJ9c.3MxÏ
X}LîË$J´dÅüæ§!`aF2"oÃ+N¡öÈj@@
`pºÆßUãY¿\vPf§%±w^åÌñ´z£[lÞÜhBïµ\b¨ZGj\tt¦¿&Iéb £\bÔòLx,.|{ûGúñ¨~~ûMÔpýR&\0ut4-l÷é«_ùirU×ã
gñ>QbPÈËç±~\bÓ£â2M\rVcì·©1Õt·é4Âå\\fð½ÐÈß\rNõ>»Z±2û»`ÙÚæþ8l´HhÉ©":&Ëÿ¼Ì*Iî#NCÀ¯õ-Í(Ç,F(D:9Þ¥k1ÇQíÛ&ç¿4BíÕ£[Ã:ÁEÐ 0?æk®`P9A¿«ã;íD1Ã¥fJZ åìEOH:¹lþhV#î¼ï¼S²j)À]\bôF·éBXºÈx\foÑ
ûgNjm`~Û2d´ý°æat¢ËxM÷É}Ã1rucs¨åñ·v±^-óPè25ùöÓ«·
øV?×4âQýÕT½ð|ä\\F.\v>¨áß-ú»\'ÔïZ\x008L\0êÙúR©ÝH´Ü2*iZØËß\b7¯Õ&ÖNct9,¾òÓÍ\b <¥¬ßÊD%&Ç\vÏÇqY £{wÁBÍ%. £ÄÁ¦ñ+áæ\0 ´ûbý2K`þçAN÷ðd*
Èõí8·\fåìnScå1éëï\b\nYMçhË\r2âùÊE:|Õz¡?ÃÐÿí1«¿Þ|v94ÀkÛõd-ÒFÂvÀ(¹Çó³¼&îÉpØh#n:ÌÑ. I0ò¦REtL³ó&£×ù\bB6OZTÜGµ$¨Ýñ^<6£±^ë%[¿]w´ÛWYU:á\vºX<P¹ß¿Érg(ÄQJ×b«¯
Ï¥«l.ùLÎix-ÅÜRp$j\0F·u§ÔÃ\vú{"½¨@`.~¡Ö|\0\0\0\0C˦Ç<Ô[SÏ\'\bsì®ô\b·4§K| OæÝ¶aYß,2µQh£¾ø$AÕ3Æ}Q>R÷º\tmÃùÂËD²¾Ydñuÿãu.e°6åÃ7ãÖAñ çv$F}%gÛ¢,ñIo:ïëauV¨ªÓÑú2£.¹ù©=¢ú~i9}5«]vÞ\rÚò
±N1d}³È\'¶O£íà&)«Z»»è<lÊo/!è«ò9Ä`T¾@;ÎíðhjHúJ\vG\\ÍÆÌ×`äâßZ/DXÞtÞ\v¿xÖÃê¬\bL+SÖxRpÿôeF]·®àÚ3õzp>Ü;BN.xè©üÒrú¿Ô}j*V»)áð<ºjoîqÌè¥\r^ÈæÆøObb!VÄüJÊ7±ÍNl+\r§FÛ9¹¾K#íÂ
j³¬Tx¡+Ð#;xèÿØß_©X3\v\\ÏWåsMCôÉÇÙ§\f Ápí\0»KàÑÔE+wSõÓÓSWÉACoÆ_?ýæô[a¯Á2Ûdgµsδd0ã´^°÷.7¼é¼ÿ"{yÃ8²&Dí¤®J*ViÚ>Ñ"¦¬ñam\nvå6%¦ý6¢è˺«\0*=/[°nlé\'ìÉd\'"Nà|¸£·v\\5O:Û± òß¹£/úh2¨~3¨û=ø|RÝÖ{*RÂáy\tGþZuÕÞ¾sYåé\nÞ.O\vÍKHÖkÌÌñFWÄ:Å8ñc¿ªùì@a_kù/Q2Õi@¢µÇÝÞ\'ç`N3Y
½´¶?rÏ}õK&¦\bí¥!C7\0Z\vÕÇÊRo`~,«Ø¨ðBWë;äÐ GvðãÐwg×J$$ì£ñ/ne²äÈâ6¿R±utô6>\bf}ÃÀùZºSüE®Êç_el`Û>ö3õP´ÓÂBdþ@WÒXÇáÚÁ*|EqæÕº@RMÆÒr\rtõVî¦ÉH!a7ð"ü=w¦§§$ål£®íÛ5i¯W*K\tÐÿx¼³-8è·Â{#E0_es%â÷Ï¿±´6æiÉ¥WÏN!\fUbÇó)»aºjpÇ=î+]nàûéxÓy/;ߨ¿CEûüã|·ôq\\ô?×ÛpdM3¯ë8ÞØÎY\\\n^¢T"0é*²\fyÐyªþJ(8F¿ÂÚì²kÊm K¦Ì\rýN6º\0\0\0\0\0\b\0\t\0\n\0\v\0\r\0\0\0\0\0\0\0#\0+\x003\0;\0C\0S\0c\0s\0\0£\0Ã\0ã\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0Ç\0K\0\0\0\0\0\0\0\0\0\t\0\r\0\0\0!\x001\0A\0a\0\0Á\0\b\f 0@`\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0@\0@\0`\0\0\0\bP\0\0\b\0\bs\0\0\0\bp\0\0\b0\0\0\tÀ\0\n\0\0\b`\0\0\b \0\0\t \0\0\b\0\0\0\b\0\0\b@\0\0\tà\0\0\0\bX\0\0\b\0\0\t\0;\0\0\bx\0\0\b8\0\0\tÐ\0\0\0\bh\0\0\b(\0\0\t°\0\0\b\b\0\0\b\0\0\bH\0\0\tð\0\0\0\bT\0\0\b\0\bã\0+\0\0\bt\0\0\b4\0\0\tÈ\0\r\0\0\bd\0\0\b$\0\0\t¨\0\0\b\0\0\b\0\0\bD\0\0\tè\0\b\0\0\b\\\0\0\b\0\0\t\0S\0\0\b|\0\0\b<\0\0\tØ\0\0\0\bl\0\0\b,\0\0\t¸\0\0\b\f\0\0\b\0\0\bL\0\0\tø\0\0\0\bR\0\0\b\0\b£\0#\0\0\br\0\0\b2\0\0\tÄ\0\v\0\0\bb\0\0\b"\0\0\t¤\0\0\b\0\0\b\0\0\bB\0\0\tä\0\0\0\bZ\0\0\b\0\0\t\0C\0\0\bz\0\0\b:\0\0\tÔ\0\0\0\bj\0\0\b*\0\0\t´\0\0\b\n\0\0\b\0\0\bJ\0\0\tô\0\0\0\bV\0\0\b\0@\b\0\03\0\0\bv\0\0\b6\0\0\tÌ\0\0\0\bf\0\0\b&\0\0\t¬\0\0\b\0\0\b\0\0\bF\0\0\tì\0\t\0\0\b^\0\0\b\0\0\t\0c\0\0\b~\0\0\b>\0\0\tÜ\0\0\0\bn\0\0\b.\0\0\t¼\0\0\b\0\0\b\0\0\bN\0\0\tü\0`\0\0\0\bQ\0\0\b\0\b\0\0\0\bq\0\0\b1\0\0\tÂ\0\n\0\0\ba\0\0\b!\0\0\t¢\0\0\b\0\0\b\0\0\bA\0\0\tâ\0\0\0\bY\0\0\b\0\0\t\0;\0\0\by\0\0\b9\0\0\tÒ\0\0\0\bi\0\0\b)\0\0\t²\0\0\b\t\0\0\b\0\0\bI\0\0\tò\0\0\0\bU\0\0\b\0\b+\0\0\bu\0\0\b5\0\0\tÊ\0\r\0\0\be\0\0\b%\0\0\tª\0\0\b\0\0\b
\0\0\bE\0\0\tê\0\b\0\0\b]\0\0\b\0\0\t\0S\0\0\b}\0\0\b=\0\0\tÚ\0\0\0\bm\0\0\b-\0\0\tº\0\0\b\r\0\0\b\0\0\bM\0\0\tú\0\0\0\bS\0\0\b\0\bÃ\0#\0\0\bs\0\0\b3\0\0\tÆ\0\v\0\0\bc\0\0\b#\0\0\t¦\0\0\b\0\0\b\0\0\bC\0\0\tæ\0\0\0\b[\0\0\b\0\0\t\0C\0\0\b{\0\0\b;\0\0\tÖ\0\0\0\bk\0\0\b+\0\0\t¶\0\0\b\v\0\0\b\0\0\bK\0\0\tö\0\0\0\bW\0\0\b\0@\b\0\03\0\0\bw\0\0\b7\0\0\tÎ\0\0\0\bg\0\0\b\'\0\0\t®\0\0\b\0\0\b\0\0\bG\0\0\tî\0\t\0\0\b_\0\0\b\0\0\t\0c\0\0\b\0\0\b?\0\0\tÞ\0\0\0\bo\0\0\b/\0\0\t¾\0\0\b\0\0\b\0\0\bO\0\0\tþ\0`\0\0\0\bP\0\0\b\0\bs\0\0\0\bp\0\0\b0\0\0\tÁ\0\n\0\0\b`\0\0\b \0\0\t¡\0\0\b\0\0\0\b\0\0\b@\0\0\tá\0\0\0\bX\0\0\b\0\0\t\0;\0\0\bx\0\0\b8\0\0\tÑ\0\0\0\bh\0\0\b(\0\0\t±\0\0\b\b\0\0\b\0\0\bH\0\0\tñ\0\0\0\bT\0\0\b\0\bã\0+\0\0\bt\0\0\b4\0\0\tÉ\0\r\0\0\bd\0\0\b$\0\0\t©\0\0\b\0\0\b\0\0\bD\0\0\té\0\b\0\0\b\\\0\0\b\0\0\t\0S\0\0\b|\0\0\b<\0\0\tÙ\0\0\0\bl\0\0\b,\0\0\t¹\0\0\b\f\0\0\b\0\0\bL\0\0\tù\0\0\0\bR\0\0\b\0\b£\0#\0\0\br\0\0\b2\0\0\tÅ\0\v\0\0\bb\0\0\b"\0\0\t¥\0\0\b\0\0\b\0\0\bB\0\0\tå\0\0\0\bZ\0\0\b\0\0\t\0C\0\0\bz\0\0\b:\0\0\tÕ\0\0\0\bj\0\0\b*\0\0\tµ\0\0\b\n\0\0\b\0\0\bJ\0\0\tõ\0\0\0\bV\0\0\b\0@\b\0\03\0\0\bv\0\0\b6\0\0\tÍ\0\0\0\bf\0\0\b&\0\0\t\0\0\b\0\0\b\0\0\bF\0\0\tí\0\t\0\0\b^\0\0\b\0\0\t\0c\0\0\b~\0\0\b>\0\0\tÝ\0\0\0\bn\0\0\b.\0\0\t½\0\0\b\0\0\b\0\0\bN\0\0\tý\0`\0\0\0\bQ\0\0\b\0\b\0\0\0\bq\0\0\b1\0\0\tÃ\0\n\0\0\ba\0\0\b!\0\0\t£\0\0\b\0\0\b\0\0\bA\0\0\tã\0\0\0\bY\0\0\b\0\0\t\0;\0\0\by\0\0\b9\0\0\tÓ\0\0\0\bi\0\0\b)\0\0\t³\0\0\b\t\0\0\b\0\0\bI\0\0\tó\0\0\0\bU\0\0\b\0\b+\0\0\bu\0\0\b5\0\0\tË\0\r\0\0\be\0\0\b%\0\0\t«\0\0\b\0\0\b
\0\0\bE\0\0\të\0\b\0\0\b]\0\0\b\0\0\t\0S\0\0\b}\0\0\b=\0\0\tÛ\0\0\0\bm\0\0\b-\0\0\t»\0\0\b\r\0\0\b\0\0\bM\0\0\tû\0\0\0\bS\0\0\b\0\bÃ\0#\0\0\bs\0\0\b3\0\0\tÇ\0\v\0\0\bc\0\0\b#\0\0\t§\0\0\b\0\0\b\0\0\bC\0\0\tç\0\0\0\b[\0\0\b\0\0\t\0C\0\0\b{\0\0\b;\0\0\t×\0\0\0\bk\0\0\b+\0\0\t·\0\0\b\v\0\0\b\0\0\bK\0\0\t÷\0\0\0\bW\0\0\b\0@\b\0\03\0\0\bw\0\0\b7\0\0\tÏ\0\0\0\bg\0\0\b\'\0\0\t¯\0\0\b\0\0\b\0\0\bG\0\0\tï\0\t\0\0\b_\0\0\b\0\0\t\0c\0\0\b\0\0\b?\0\0\tß\0\0\0\bo\0\0\b/\0\0\t¿\0\0\b\0\0\b\0\0\bO\0\0\tÿ\0\0\0\0A\0@\0!\0 \t\0\b\0@\0\0\0\0\0a\0`\01\00\r\0\fÁ\0@\0\0\0\0\0\0\n\0\0\0\n\0\0\0\v\0\0\0\v\0\0\0\v\0\0\0\v\0\0\0\v\0\0\0\v\0\0\0\n\0\0\0\n\0\0\0\v\0\0\0\n\0\0\0\n\0\0\0\n\0\0\0\n\0Aø\0\v\v\0\0\0\v\0\0\0\n\0\0\0\n\0\0\0\0\0\0\0\n\0\0\0\0\0\0\0\v\0A°ù\0\vA\0\v\0\0\0\0\0\0\0\0\0\0\0\t\0\0\0\0\v\0\0\0\0\0\0\0\0\0\n\n\n\0\0\t\v\0\0\t\v\0\0\v\0\0\0\0\0Aú\0\v!\0\0\0\0\0\0\0\0\0\v\r\0\r\0\0\0\t\0\0\0\t\0\0\0\0A»ú\0\v\f\0AÇú\0\v\0\0\0\0\0\0\0\0\t\f\0\0\0\0\0\f\0\0\f\0Aõú\0\v\0Aû\0\v\0\0\0\0\0\0\0\t\0\0\0\0\0\0\0\0A¯û\0\v\0A»û\0\v\0\0\0\0\0\0\0\0\t\0\0\0\0\0\0\0\0\0\0\0\0\0Aòû\0\v\0\0\0\0\0\0\0\0\0\t\0A£ü\0\v\0A¯ü\0\v\0\0\0\0\0\0\0\0\t\0\0\0\0\0\0\0\0AÝü\0\v\0Aéü\0\v\'\0\0\0\0\0\0\0\0\t\0\0\0\0\0\0\0\0\x000123456789ABCDEF\0Aý\0\v\tD\0\0\0\0\0\0A¤ý\0\v\f\0A¼ý\0\v\n\r\0\0\0\0\0\0@D\0AÔý\0\v\0Aäý\0\v\bÿÿÿÿÿÿÿÿ'),A((await async function(A){return async function(A){var t=j;try{var r=await async function(A){return A}(t);return await WebAssembly.instantiate(r,A)}catch(A){s(`failed to asynchronously prepare wasm: ${A}`),a(A);}}(A)}(r)).instance))}(),function(){function A(){if(t.calledRun=!0,!b){if(i=!0,G.i(),v?.(t),t.onRuntimeInitialized?.(),t.postRun)for("function"==typeof t.postRun&&(t.postRun=[t.postRun]);t.postRun.length;){var A=t.postRun.shift();q.push(A);}B(q);}}if(t.preRun)for("function"==typeof t.preRun&&(t.preRun=[t.preRun]);t.preRun.length;)Q();B(u),t.setStatus?(t.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>t.setStatus(""),1),A();},1)):A();}(),i?t:new Promise((A,t)=>{v=A,n=t;})};let bA=null,iA=null;async function oA(){return bA||(iA||(iA=sA().then(A=>(bA=A,A))),iA)}async function aA(A,t,r,e=!1){if(e&&0===A.length)return new Uint8Array(0);const v=await oA(),n=function(A,t){const r=A._malloc(t.length);return A.HEAPU8.set(t,r),r}(v,A),j=v._malloc(4);try{const A=r(v,n,j);if(0===A)throw new Error(`${t} failed`);const e=v.getValue(j,"i32"),f=function(A,t,r){const e=new Uint8Array(r);return e.set(A.HEAPU8.subarray(t,t+r)),e}(v,A,e);return v._free(A),f}finally{v._free(n),v._free(j);}}async function gA(A){return A.bytes?A.bytes():new Uint8Array(await A.arrayBuffer())}class IA{url;_stat;fetchImplementation;baseHeaders;baseOverrides;constructor(A,t={}){this.url=A,this.baseHeaders=t.headers??{},this.baseOverrides=t.overrides??{},this.fetchImplementation=t.fetch??globalThis.fetch.bind(globalThis);}buildRequest(A,t){return {...this.baseOverrides,...A.overrides,headers:{...this.baseHeaders,...A.headers,...t},method:"GET",redirect:"follow",mode:"cors",signal:A.signal}}async fetch(A,t){const r=t=>new Error(`${function(A){return ("object"==typeof A&&null!==A&&"message"in A&&"string"==typeof A.message?A.message:`${A}`).replace(/\.$/,"")}(t)} fetching ${A}`,{cause:t});let e;try{e=await this.fetchImplementation(A,t);}catch(v){if(!`${v}`.includes("Failed to fetch"))throw r(v);console.warn(`generic-filehandle: refetching ${A} to attempt to work around chrome CORS header caching bug`);try{e=await this.fetchImplementation(A,{...t,cache:"reload"});}catch(A){throw r(A)}}return e}async read(A,t,r={}){if(0===A)return new Uint8Array(0);if(Number.isNaN(A)||Number.isNaN(t))throw new TypeError(`read() called with NaN length or position (length=${A}, position=${t}). The index file may be corrupt.`);const e=await this.fetch(this.url,this.buildRequest(r,{range:`bytes=${t}-${t+A-1}`}));if(416===e.status)return new Uint8Array(0);if(!e.ok)throw new Error(`HTTP ${e.status} fetching ${this.url}`);if(200===e.status&&0===t||206===e.status){const t=e.headers.get("content-range"),r=/\/(\d+)$/.exec(t??"");r?.[1]&&(this._stat={size:parseInt(r[1],10)});const v=await gA(e);return this._stat||200!==e.status||(this._stat={size:v.byteLength}),v.byteLength<=A?v:v.subarray(0,A)}throw new Error(200===e.status?`${this.url} fetch returned status 200, expected 206`:`HTTP ${e.status} fetching ${this.url}`)}async readFile(A={}){const t="string"==typeof A?A:A.encoding,r="string"==typeof A?{}:A,e=await this.fetch(this.url,this.buildRequest(r));if(!e.ok)throw new Error(`HTTP ${e.status} fetching ${this.url}`);if("utf8"===t)return e.text();if(t)throw new Error(`unsupported encoding: ${t}`);return gA(e)}async stat(){return this._stat||await this.read(10,0),this._stat??{size:0}}close(){return Promise.resolve()}}class cA{readFile(){return Promise.reject(new Error("unimplemented"))}read(){return Promise.reject(new Error("unimplemented"))}stat(){return Promise.reject(new Error("unimplemented"))}close(){return Promise.reject(new Error("unimplemented"))}}function CA(A,t,r){if(r)return r;if(A)return new IA(A);if(t)return new cA(t);throw new Error("no url, path, or filehandle provided, cannot open")}async function EA(A){return function(A){return aA(A,"zlib_uncompress",(t,r,e)=>t._zlib_uncompress(r,A.length,e),!0)}(A)}class lA{parameters;dataType;constructor(A,t){this.parameters=A,this.dataType=t;}getBytesSubarray(A,t,r){}}class hA extends lA{decode(A,t,r,e){const{blockContentId:v}=this.parameters,n=r[v];if(!n)throw new nA(`no block found with content ID ${v}`);const j=e.externalBlocks.getCursor(v);return this._decodeByteArray(n,j)}_decodeByteArray(A,t){const r=A.content,{stopByte:e}=this.parameters,v=t.bytePosition,n=r.length;let j=v;for(;j<n&&r[j]!==e;)j++;if(j>=n)throw new fA("byteArrayStop reading beyond length of data buffer?");return t.bytePosition=j+1,r.subarray(v,j)}}function dA(A){const t=new Int32Array(A.length);let r=0,e=0;const v=A.length;for(;e<v;){const v=A[e];v<128?(t[r++]=v,e+=1):v<192?(t[r++]=(63&v)<<8|A[e+1],e+=2):v<224?(t[r++]=(31&v)<<16|A[e+1]<<8|A[e+2],e+=3):v<240?(t[r++]=(15&v)<<24|A[e+1]<<16|A[e+2]<<8|A[e+3],e+=4):(t[r++]=(15&v)<<28|A[e+1]<<20|A[e+2]<<12|A[e+3]<<4|15&A[e+4],e+=5);}return t.subarray(0,r)}class kA extends lA{blockContentId;constructor(A,t){if(super(A,t),this.blockContentId=A.blockContentId,"int"!==this.dataType&&"byte"!==this.dataType)throw new vA(`${this.dataType} decoding not yet implemented by EXTERNAL codec`)}decode(A,t,r,e){if("int"===this.dataType){const A=e.preDecodedIntBlocks?.get(this.blockContentId);if(A)return A.values[A.index++];const t=r[this.blockContentId];if(!t)throw new nA(`no block found with content ID ${this.blockContentId}`);const v=e.externalBlocks.getCursor(this.blockContentId);return u(t.content,v)}{const A=r[this.blockContentId];if(!A)throw new nA(`no block found with content ID ${this.blockContentId}`);const t=e.externalBlocks.getCursor(this.blockContentId);if(t.bytePosition>=A.content.length)throw new fA("attempted to read beyond end of block. this file seems truncated.");return A.content[t.bytePosition++]}}getBytesSubarray(A,t,r){const{blockContentId:e}=this.parameters,v=A[e];if(!v)return;const n=t.externalBlocks.getCursor(e),j=n.bytePosition,f=j+r;if(f>v.content.length)throw new fA("attempted to read beyond end of block. this file seems truncated.");return n.bytePosition=f,v.content.subarray(j,f)}}const BA=["raw","gzip","bzip2","lzma","rans","rans4x16","arith","fqzcomp","tok3"],qA=["FILE_HEADER","COMPRESSION_HEADER","MAPPED_SLICE_HEADER","UNMAPPED_SLICE_HEADER","EXTERNAL_DATA","CORE_DATA"];function uA(A,t,r){return r>=3?x(A,t):2===r?Q(A,t):(console.warn("recordCounter=0"),[0,0])}function QA(){return {parser:(A,t=0)=>{const r=new DataView(A.buffer,A.byteOffset,A.length);let e=0;const v=B(A.subarray(e,e+4));e+=4;const n=r.getUint8(e);e+=1;const j=r.getUint8(e);e+=1;const f=k(A.subarray(e,e+20));return e+=20,{value:{magic:v,majorVersion:n,minorVersion:j,fileId:f},offset:e}},maxLength:26}}function xA(A,t,r){const e=B(A.subarray(t,r)),v=[];for(let A=0;A<e.length;A+=3)v.push(e.slice(A,A+3));return v}function mA(){return {parser:(A,t)=>{const[r,e]=Q(A,t);t+=e;const v=A.subarray(t,t+r);t+=r;const n=[];let j=0,f=0;for(;f<v.length;f++)v[f]||(n.push(xA(v,j,f)),j=f+1);return f>j&&n.push(xA(v,j,f)),{value:{size:r,ents:n},offset:t}}}}function NA(A){const t={};for(const{key:r,value:e}of A.ents)t[r]&&console.warn(`duplicate key ${r} in map`),t[r]=e;return t}function wA(A){return "number"==typeof A.refSeqId}function pA(A){return {parser:(t,r)=>{const[e,v]=Q(t,r);r+=v;const[n,j]=uA(t,r,A);r+=j;const[f,s]=Q(t,r);r+=s;const[b,i]=Q(t,r);r+=i;const o=[];for(let A=0;A<b;A++){const[A,e]=Q(t,r);r+=e,o.push(A);}let a;return A>=2&&(a=[...t.subarray(r,r+16)],r+=16),{value:{recordCounter:n,md5:a,contentIds:o,numContentIds:b,numBlocks:f,numRecords:e},offset:r}},maxLength:A=>40+5*A}}function yA(A){return {parser:(t,r)=>{const[e,v]=Q(t,r);r+=v;const[n,j]=Q(t,r);r+=j;const[f,s]=Q(t,r);r+=s;const[b,i]=Q(t,r);r+=i;const[o,a]=uA(t,r,A);r+=a;const[g,I]=Q(t,r);r+=I;const[c,C]=Q(t,r);r+=C;const E=[];for(let A=0;A<c;A++){const[A,e]=Q(t,r);r+=e,E.push(A);}const[l,h]=Q(t,r);let d;return r+=h,A>=2&&(d=[...t.subarray(r,r+16)],r+=16),{value:{md5:d,numBlocks:g,numRecords:b,numContentIds:c,refSeqSpan:f,refSeqId:e,refSeqStart:n,recordCounter:o,refBaseBlockId:l,contentIds:E},offset:r}},maxLength:A=>60+5*A}}function DA(A,t){const r=A,e=new DataView(r.buffer,r.byteOffset,r.length),[v,n]=Q(A,t);t+=n;const[j,f]=Q(A,t);t+=f;const s={};if(0===v);else if(1===v){const[r,e]=Q(A,t);s.blockContentId=r,t+=e;}else if(2===v){const[r,e]=Q(A,t);s.offset=r,t+=e;const[v,n]=Q(A,t);s.M=v,t+=n;}else if(3===v){const[r,e]=Q(A,t);t+=e;const v=[];for(let e=0;e<r;e++){const[r,e]=Q(A,t);v.push(r),t+=e;}const[n,j]=Q(A,t);t+=j;const f=[];for(let r=0;r<n;r++){const[r,e]=Q(A,t);t+=e,f.push(r);}s.numCodes=r,s.symbols=v,s.numLengths=n,s.bitLengths=f;}else if(4===v){const{value:r,offset:e}=DA(A,t);s.lengthsEncoding=r,t=e;const{value:v,offset:n}=DA(A,t);s.valuesEncoding=v,t=n;}else if(5===v){s.stopByte=e.getUint8(t),t+=1;const[r,v]=Q(A,t);s.blockContentId=r,t+=v;}else if(6===v){const[r,e]=Q(A,t);s.offset=r,t+=e;const[v,n]=Q(A,t);s.length=v,t+=n;}else if(7===v){const[r,e]=Q(A,t);s.offset=r,t+=e;const[v,n]=Q(A,t);s.K=v,t+=n;}else if(8===v){const[r,e]=Q(A,t);s.offset=r,t+=e;const[v,n]=Q(A,t);s.log2m=v,t+=n;}else {if(9!==v)throw new Error(`unknown codecId ${v}`);{const[r,e]=Q(A,t);s.offset=r,t+=e;}}return {value:{codecId:v,parametersBytes:j,parameters:s},offset:t}}function FA(){return {parser:(A,t)=>{const[r,e]=Q(A,t);t+=e;const[v,n]=Q(A,t);t+=n;const j=[];for(let r=0;r<v;r++){const r=String.fromCharCode(A[t])+String.fromCharCode(A[t+1]);t+=2;const{value:e,offset:v}=DA(A,t);t=v,j.push({key:r,value:e});}return {value:{mapSize:r,ents:j,mapCount:v},offset:t}}}}function SA(){return {parser:(A,t)=>{const[r,e]=Q(A,t);t+=e;const[v,n]=Q(A,t);t+=n;const j=[];for(let r=0;r<v;r++){const[r,e]=Q(A,t);t+=e;const v=String.fromCharCode(r>>16&255)+String.fromCharCode(r>>8&255)+String.fromCharCode(255&r),{value:n,offset:f}=DA(A,t);t=f,j.push({key:v,value:n});}return {value:{mapSize:r,ents:j,mapCount:v},offset:t}}}}function GA(A){return {maxLength:52,parser:(t,r)=>{const e=t,v=new DataView(e.buffer,e.byteOffset,e.length).getInt32(r,!0);r+=4;const[n,j]=Q(t,r);r+=j;const[f,s]=Q(t,r);r+=s;const[b,i]=Q(t,r);r+=i;const[o,a]=Q(t,r);r+=a;const[g,I]=uA(t,r,A);let c;if(r+=I,A>1){const[A,e]=x(t,r);c=A,r+=e;}const[C,E]=Q(t,r);r+=E;const[l,h]=Q(t,r);return {value:{length:v,refSeqId:n,refSeqStart:f,alignmentSpan:b,numBlocks:C,numLandmarks:l,numBases:c,recordCounter:g,numRecords:o},offset:r+=h}}}}function RA(A){return {parser:(t,r)=>{const e=t,v=new DataView(e.buffer,e.byteOffset,e.length),[n,j]=Q(t,r);r+=j;const f=[];for(let A=0;A<n;A++){const[A,e]=Q(t,r);r+=e,f.push(A);}let s;return A>=3&&(s=v.getUint32(r,!0),r+=4),{value:{...void 0===s?{}:{crc32:s},numLandmarks:n,landmarks:f},offset:r}},maxLength:A=>5+5*A+4}}function KA(A){return {cramFileDefinition:QA(),cramBlockHeader:{parser:(A,t=0)=>{const r=A,e=new DataView(r.buffer,r.byteOffset,r.length);let v=0;const n=e.getUint8(v),j=BA[n];if(!j)throw new Error(`compression method number ${n} not implemented`);v+=1;const f=e.getUint8(v),s=qA[f];if(!s)throw new Error(`invalid block content type id ${f}`);v+=1;const[b,i]=Q(A,v);v+=i;const[o,a]=Q(A,v);v+=a;const[g,I]=Q(A,v);return v+=I,{offset:v,value:{uncompressedSize:g,compressedSize:o,contentId:b,contentType:s,compressionMethod:j}}},maxLength:17},cramBlockCrc32:{parser:(A,t)=>{const r=A,e=new DataView(r.buffer,r.byteOffset,r.length).getUint32(t,!0);return {offset:t+=4,value:{crc32:e}}},maxLength:4},cramDataSeriesEncodingMap:FA(),cramTagEncodingMap:SA(),cramCompressionHeader:{parser:(A,t)=>{const{value:r,offset:e}=((A,t)=>{const r=A,e=new DataView(r.buffer,r.byteOffset,r.length),[v,n]=Q(A,t);t+=n;const[j,f]=Q(A,t);t+=f;const s=[];for(let r=0;r<j;r++){const r=String.fromCharCode(A[t])+String.fromCharCode(A[t+1]);if(t+=2,"MI"===r||"UI"===r||"PI"===r||"RN"===r||"AP"===r||"RR"===r)s.push({key:r,value:!!e.getUint8(t)}),t+=1;else if("SM"===r)s.push({key:r,value:[e.getUint8(t),e.getUint8(t+1),e.getUint8(t+2),e.getUint8(t+3),e.getUint8(t+4)]}),t+=5;else {if("TD"!==r)throw new Error(`unknown key ${r}`);{const{offset:e,value:v}=mA().parser(A,t);s.push({key:r,value:v.ents}),t=e;}}}return {value:{mapSize:v,mapCount:j,ents:s},offset:t}})(A,t);t=e;const{value:v,offset:n}=FA().parser(A,t);t=n;const{value:j,offset:f}=SA().parser(A,t);return t=f,{value:{dataSeriesEncoding:NA(v),preservation:NA(r),tagEncoding:NA(j)},offset:t}}},cramEncoding:{parser:(A,t)=>DA(A,t)},cramUnmappedSliceHeader:pA(A),cramMappedSliceHeader:yA(A),cramContainerHeader1:GA(A),cramContainerHeader2:RA(A)}}function MA(A,t){if("Z"===A)return k(t);if("A"===A)return String.fromCharCode(t[0]);if("C"===A)return t[0];if("c"===A)return t[0]>127?t[0]-256:t[0];if("B"===A)return function(A){const t=String.fromCharCode(A[0]),r=new DataView(A.buffer,A.byteOffset,A.byteLength),e=r.getUint32(1,!0),v=new Array(e);if("c"===t)for(let A=0;A<e;A++)v[A]=r.getInt8(5+A);else if("C"===t)for(let A=0;A<e;A++)v[A]=r.getUint8(5+A);else if("s"===t)for(let A=0;A<e;A++)v[A]=r.getInt16(5+2*A,!0);else if("S"===t)for(let A=0;A<e;A++)v[A]=r.getUint16(5+2*A,!0);else if("i"===t)for(let A=0;A<e;A++)v[A]=r.getInt32(5+4*A,!0);else if("I"===t)for(let A=0;A<e;A++)v[A]=r.getUint32(5+4*A,!0);else {if("f"!==t)throw new Error(`unknown type: ${t}`);for(let A=0;A<e;A++)v[A]=r.getFloat32(5+4*A,!0);}return v}(t);if("H"===A)return Number.parseInt(k(t).replace(/^0x/,""),16);const r=new DataView(t.buffer,t.byteOffset,t.byteLength);if("I"===A)return r.getUint32(0,!0);if("i"===A)return r.getInt32(0,!0);if("s"===A)return r.getInt16(0,!0);if("S"===A)return r.getUint16(0,!0);if("f"===A)return r.getFloat32(0,!0);throw new nA(`Unrecognized tag type ${A}`)}function OA(A,t,r){const e=t?.("QS",A);if(e)return e;const v=new Uint8Array(A);for(let t=0;t<A;t++)v[t]=r();return v}function HA(A,t,r,e,v,n,j,f,s,b,i,o,a,g){let I=t.BF();const c=t.CF();if(!wA(n.parsedContent))throw new Error("slice header not mapped");const C=b>1&&-2===n.parsedContent.refSeqId?t.RI():n.parsedContent.refSeqId,E=t.RL();let l=t.AP();v.APdelta&&(l+=s.lastAlignmentStart),s.lastAlignmentStart=l;const h=t.RG();let d,q,u,Q;if(v.readNamesIncluded&&(d=t.RN()),S.isDetached(c)){const A=t.MF();let r;v.readNamesIncluded||(d=t.RN(),r=k(d));const e=t.NS(),n=t.NP();(A||e>-1)&&(q={flags:A,sequenceId:e,alignmentStart:n,readName:r}),u=t.TS(),G.isUnmapped(A)&&(I=F.setMateUnmapped(I)),G.isOnNegativeStrand(A)&&(I=F.setMateReverseComplemented(I));}else S.isWithMateDownstream(c)&&(Q=t.NF()+i+1);const x=t.TL();if(x<0)throw new nA("invalid TL index");const m={},N=v.getTagNames(x),w=N.length;if(!1!==a?.decodeTags)for(let A=0;A<w;A++){const t=N[A],r=e[t](),v=t[0]+t[1],n=t[2];m[v]=void 0===r?void 0:"number"==typeof r?r:MA(n,r);}let p,y,D,R,K;if(F.isSegmentUnmapped(I))S.isDecodeSequenceAsStar(c)?(K=null,R=null):(K=function(A,t,r){const e=t?.("BA",A);if(e)return B(e);const v=new Uint8Array(A);for(let t=0;t<A;t++)v[t]=r();return B(v)}(E,g,t.BA),S.isPreservingQualityScores(c)&&(R=OA(E,g,t.QS)));else {const A=t.FN();if(y=E,A){const[e,v]=function(A,t,r,e){let v=0,n=0;const j=A-1,f=new Array(t),s=r.FC,b=r.FP;for(let A=0;A<t;A++){const t=s();v+=b();const r=e[t];if(!r)throw new nA(`invalid read feature code "${String.fromCharCode(t)}"`);const i=r[0],o=r[1]();f[A]={code:i,pos:v,refPos:v+j+n,data:o},"D"===i||"N"===i?n+=o:"I"===i||"S"===i?n-=o.length:"i"===i&&(n-=1);}return [f,n]}(l,A,t,r);p=e,y+=v;}Number.isNaN(y)&&(console.warn(`${C}:${l} record has invalid read features`),y=E),D=t.MQ(),S.isPreservingQualityScores(c)&&(R=OA(E,g,t.QS));}return {readLength:E,sequenceId:C,cramFlags:c,flags:I,alignmentStart:l,readGroupId:h,readNameRaw:d,mate:q,templateSize:u,mateRecordNumber:Q,readFeatures:p,lengthOnRef:y,mappingQuality:D,qualityScores:R,readBases:K,tags:m,uniqueId:o}}function LA(A,t,r){let{bytePosition:e,bitPosition:v}=t;if(1===r){const r=A[e]>>v&1;return v-=1,v<0&&(e+=1,v=7),t.bytePosition=e,t.bitPosition=v,r}let n=0;for(let t=0;t<r;t++)n<<=1,n|=A[e]>>v&1,v-=1,v<0&&(e+=1,v=7);return t.bytePosition=e,t.bitPosition=v,n}const JA={1:kA,3:class extends lA{codes={};codeBook={};sortedCodes=[];valuesByIndex=[];bitLengthsByIndex=[];bitCodeToIndex=[];constructor(A,t){if(super(A,t),!["byte","int"].includes(this.dataType))throw new TypeError(`${this.dataType} decoding not yet implemented by HUFFMAN_INT codec`);this.buildCodeBook(),this.buildCodes(),this.buildCaches(),this.sortedCodes.length>0&&0===this.sortedCodes[0].bitLength&&(this._decode=this._decodeZeroLengthCode);}buildCodeBook(){const A=new Array(this.parameters.numCodes);for(let t=0;t<this.parameters.numCodes;t++)A[t]={symbol:this.parameters.symbols[t],bitLength:this.parameters.bitLengths[t]};A.sort((A,t)=>A.bitLength-t.bitLength||A.symbol-t.symbol),this.codeBook={},A.forEach(A=>{this.codeBook[A.bitLength]||(this.codeBook[A.bitLength]=[]),this.codeBook[A.bitLength].push(A.symbol);});}buildCodes(){this.codes={};let A=0,t=-1;Object.entries(this.codeBook).forEach(([r,e])=>{const v=Number.parseInt(r,10);e.forEach(r=>{const e={bitLength:v,value:r,bitCode:0};t+=1;const n=v-A;if(t<<=n,e.bitCode=t,A+=n,function(A){let t=A-(A>>1)&1431655765;return t=(858993459&t)+(t>>2&858993459),16843009*(t+(t>>4)&252645135)>>24}(t)>v)throw new nA("Symbol out of range");this.codes[r]=e;});});}buildCaches(){if(this.sortedCodes=Object.values(this.codes).sort((A,t)=>A.bitLength-t.bitLength||A.bitCode-t.bitCode),this.valuesByIndex=this.sortedCodes.map(A=>A.value),this.bitLengthsByIndex=this.sortedCodes.map(A=>A.bitLength),this.sortedCodes.length>0){let A=0;for(const t of this.sortedCodes)t.bitCode>A&&(A=t.bitCode);this.bitCodeToIndex=new Array(A+1).fill(-1);for(let A=0;A<this.sortedCodes.length;A++)this.bitCodeToIndex[this.sortedCodes[A].bitCode]=A;}}decode(A,t,r,e){return this._decode(A,t,e.coreBlock)}_decodeZeroLengthCode(){return this.sortedCodes[0].value}_decode(A,t,r){const e=t.content;let v=0,n=0;for(let A=0;A<this.sortedCodes.length;A+=1){const t=this.sortedCodes[A].bitLength,j=t-v;j>0&&(n<<=j,n|=LA(e,r,j)),v=t;const f=this.bitCodeToIndex[n]??-1;if(f>-1&&this.bitLengthsByIndex[f]===t)return this.valuesByIndex[f];for(;A+1<this.sortedCodes.length&&this.sortedCodes[A+1].bitLength===t;)A+=1;}throw new nA("Huffman symbol not found.")}},4:class extends lA{instantiateCodec;_lengthCodecCache;_dataCodecCache;constructor(A,t,r){super(A,t),this.instantiateCodec=r;}decode(A,t,r,e){const v=this._getLengthCodec().decode(A,t,r,e);if(v>0){const n=this._getDataCodec(),j=n.getBytesSubarray(r,e,v);if(j)return j;{const j=new Uint8Array(v);for(let f=0;f<v;f+=1)j[f]=n.decode(A,t,r,e);return j}}return new Uint8Array(0)}_getLengthCodec(){return this._lengthCodecCache??=this.instantiateCodec(this.parameters.lengthsEncoding,"int"),this._lengthCodecCache}_getDataCodec(){return this._dataCodecCache??=this.instantiateCodec(this.parameters.valuesEncoding,"byte"),this._dataCodecCache}},5:hA,6:class extends lA{constructor(A,t){if(super(A,t),"int"!==this.dataType)throw new vA(`${this.dataType} decoding not yet implemented by BETA codec`)}decode(A,t,r,e){return function(A,t,r,e){let{bytePosition:v,bitPosition:n}=t;if(8===r&&7===n){const r=A[v];return t.bytePosition=v+1,r-e}let j=0;for(let t=0;t<r;t++)j<<=1,j|=A[v]>>n&1,n-=1,n<0&&(v+=1,n=7);return t.bytePosition=v,t.bitPosition=n,j-e}(t.content,e.coreBlock,this.parameters.length,this.parameters.offset)}},7:class extends lA{constructor(A,t){if(super(A,t),"int"!==this.dataType)throw new vA(`${this.dataType} decoding not yet implemented by SUBEXP codec`)}decode(A,t,r,e){return function(A,t,r,e){let{bytePosition:v,bitPosition:n}=t,j=0;for(;;){const t=A[v]>>n&1;if(n-=1,n<0&&(v+=1,n=7),0===t)break;j+=1;}const f=0===j?r:j+r-1;let s=0;for(let t=0;t<f;t++)s<<=1,s|=A[v]>>n&1,n-=1,n<0&&(v+=1,n=7);return t.bytePosition=v,t.bitPosition=n,(0===j?s:1<<f|s)-e}(t.content,e.coreBlock,this.parameters.K,this.parameters.offset)}},9:class extends lA{constructor(A,t){if(super(A,t),"int"!==this.dataType)throw new vA(`${this.dataType} decoding not yet implemented by GAMMA codec`)}decode(A,t,r,e){return function(A,t,r){let{bytePosition:e,bitPosition:v}=t,n=1;for(;;){if(e>=A.length)throw new fA("read beyond end of core block; file seems truncated");const t=A[e]>>v&1;if(v-=1,v<0&&(e+=1,v=7),1===t)break;n+=1;}let j=0;const f=n-1;if(f>0)for(let t=0;t<f;t++)j<<=1,j|=A[e]>>v&1,v-=1,v<0&&(e+=1,v=7);return t.bytePosition=e,t.bitPosition=v,(j|1<<n-1)-r}(t.content,e.coreBlock,this.parameters.offset)}}};function _A(A,t){const r=(e="ignore"===t?0:A.codecId,JA[e]);var e;if(!r)throw new vA(`no codec implemented for codec ID ${A.codecId}`);return new r(A.parameters,t,_A)}const PA={BF:"int",CF:"int",RI:"int",RL:"int",AP:"int",RG:"int",MF:"int",NS:"int",NP:"int",TS:"int",NF:"int",TC:"byte",TN:"int",FN:"int",FC:"byte",FP:"int",BS:"byte",IN:"byteArray",SC:"byteArray",DL:"int",BA:"byte",BB:"byteArray",RS:"int",PD:"int",HC:"int",MQ:"int",RN:"byteArray",QS:"byte",QQ:"byteArray",TL:"int"},$A=[["C","G","T","N"],["A","G","T","N"],["A","C","T","N"],["A","C","G","N"],["A","C","G","T"]];class YA{readNamesIncluded;APdelta;referenceRequired;tagIdsDictionary;substitutionMatrix;dataSeriesCodecCache={};tagCodecCache={};tagEncoding={};dataSeriesEncoding;constructor(A){this.readNamesIncluded=A.preservation.RN??!1,this.APdelta=A.preservation.AP??!0,this.referenceRequired=A.preservation.RR??!0,this.tagIdsDictionary=A.preservation.TD,this.substitutionMatrix=function(A){const t=new Array(5);for(let r=0;r<5;r++){const e=new Array(4),v=A[r],n=$A[r];for(let A=0;A<4;A++)e[v>>6-2*A&3]=n[A];t[r]=e;}return t}(A.preservation.SM),this.dataSeriesEncoding=A.dataSeriesEncoding,this.tagEncoding=A.tagEncoding;}getCodecForTag(A){if(!this.tagCodecCache[A]){const t=this.tagEncoding[A];if(!t)throw new Error("Error, no tag encoding");this.tagCodecCache[A]=_A(t,"byteArray");}return this.tagCodecCache[A]}getTagNames(A){return this.tagIdsDictionary[A]}getCodecForDataSeries(A){let t=this.dataSeriesCodecCache[A];if(void 0===t){const r=this.dataSeriesEncoding[A];r&&(t=_A(r,PA[A]),this.dataSeriesCodecCache[A]=t);}return t}toJSON(){const A={};return Object.keys(this).forEach(t=>{t.endsWith("Cache")||(A[t]=this[t]);}),A}}const TA=new Uint8Array(0);function UA(A,t,r,e){const v=!!(e.mate||void 0!==e.mateRecordNumber&&e.mateRecordNumber!==t);if(!r.readName){const A=String(r.uniqueId);r._syntheticReadName=A,e._syntheticReadName=A;}r.mate={sequenceId:e.sequenceId,alignmentStart:e.alignmentStart,uniqueId:e.uniqueId},e.readName&&(r.mate.readName=e.readName),e.mate||void 0!==e.mateRecordNumber||(e.mate={sequenceId:r.sequenceId,alignmentStart:r.alignmentStart,uniqueId:r.uniqueId},r.readName&&(e.mate.readName=r.readName)),r.flags|=j,e.flags&s&&(r.flags|=b),r.flags&s&&(e.flags|=b),e.flags&i&&(r.flags|=o),r.flags&i&&(e.flags|=o),void 0===r.templateLength&&(v?function(A,t,r){const e=[r];let v=r;for(;void 0!==v.mateRecordNumber&&v.mateRecordNumber>=0;){const t=A[v.mateRecordNumber];if(!t)throw new nA("intra-slice mate record not found, this file seems malformed");e.push(t),v=t;}let n=e[0].alignmentStart,j=n+e[0].readLength-1;for(let A=1;A<e.length;A++){const t=e[A];t.alignmentStart<n&&(n=t.alignmentStart);const r=t.alignmentStart+t.readLength-1;r>j&&(j=r);}const f=j-n+1;f>=0&&e.forEach(A=>{if(void 0!==A.templateLength)throw new nA("mate pair group has some members that have template lengths already, this file seems malformed");A.templateLength=A.alignmentStart===n?f:-f;});}(A,0,r):function(A,t){const r=Math.min(A.alignmentStart,t.alignmentStart),e=Math.max(A.alignmentStart+A.readLength-1,t.alignmentStart+t.readLength-1)-r+1;A.templateLength=A.alignmentStart<=t.alignmentStart?e:-e,t.templateLength=t.alignmentStart<=A.alignmentStart?e:-e;}(r,e)),r.mateRecordNumber=void 0;}class zA{file;container;containerPosition;sliceSize;_headerResult;_blocksResult;_blocksContentIdIndexResult;constructor(A,t,r){this.file=A.file,this.container=A,this.containerPosition=t,this.sliceSize=r;}getHeader(){return void 0===this._headerResult&&(this._headerResult=this._fetchHeader(),this._headerResult.catch(()=>{this._headerResult=void 0;})),this._headerResult}async _fetchHeader(){const{majorVersion:A}=await this.file.getDefinition(),t=KA(A),r=await this.container.getHeader(),e=await this.file.readBlock(r._endPosition+this.containerPosition),v="MAPPED_SLICE_HEADER"===e.contentType?t.cramMappedSliceHeader.parser:"UNMAPPED_SLICE_HEADER"===e.contentType?t.cramUnmappedSliceHeader.parser:void 0;if(v){const A=m(e.content,v,0,r._endPosition);return {...e,parsedContent:A}}throw new nA(`error reading slice header block, invalid content type ${e.contentType}`)}getBlocks(){return void 0===this._blocksResult&&(this._blocksResult=this._fetchBlocks(),this._blocksResult.catch(()=>{this._blocksResult=void 0;})),this._blocksResult}async _fetchBlocks(){const A=await this.getHeader();if(this.sliceSize){const t=(await this.container.getHeader())._endPosition+this.containerPosition,r=A._endPosition,e=r-t,v=this.sliceSize-e,n=await this.file.read(v,r),j=new Array(A.parsedContent.numBlocks);let f=0;for(let A=0;A<j.length;A++){const t=await this.file.readBlockFromBuffer(n,f,r+f);j[A]=t,f=t._endPosition-r;}return j}let t=A._endPosition;const r=new Array(A.parsedContent.numBlocks);for(let A=0;A<r.length;A++){const e=await this.file.readBlock(t);r[A]=e,t=e._endPosition;}return r}async getCoreDataBlock(){return (await this.getBlocks())[0]}_getBlocksContentIdIndex(){return void 0===this._blocksContentIdIndexResult&&(this._blocksContentIdIndexResult=this._fetchBlocksContentIdIndex(),this._blocksContentIdIndexResult.catch(()=>{this._blocksContentIdIndexResult=void 0;})),this._blocksContentIdIndexResult}async _fetchBlocksContentIdIndex(){const A=await this.getBlocks(),t={};return A.forEach(A=>{"EXTERNAL_DATA"===A.contentType&&(t[A.contentId]=A);}),t}async getBlockByContentId(A){return (await this._getBlocksContentIdIndex())[A]}async getReferenceRegion(){const A=(await this.getHeader()).parsedContent;if(!wA(A))throw new Error("slice header not mapped");if(A.refSeqId<0)return;const t=await this.container.getCompressionScheme();if(void 0===t)throw new Error("compression scheme undefined");if(A.refBaseBlockId>=0){const t=await this.getBlockByContentId(A.refBaseBlockId);if(!t)throw new nA("embedded reference specified, but reference block does not exist");return {seq:B(t.content),start:A.refSeqStart,end:A.refSeqStart+A.refSeqSpan-1,span:A.refSeqSpan}}if(t.referenceRequired||this.file.fetchReferenceSequenceCallback){if(!this.file.fetchReferenceSequenceCallback)throw new Error("reference sequence not embedded, and seqFetch callback not provided, cannot fetch reference sequence");const t=await this.file.fetchReferenceSequenceCallback(A.refSeqId,A.refSeqStart,A.refSeqStart+A.refSeqSpan-1);if(t.length!==A.refSeqSpan)throw new jA("seqFetch callback returned a reference sequence of the wrong length");return {seq:t,start:A.refSeqStart,end:A.refSeqStart+A.refSeqSpan-1,span:A.refSeqSpan}}}getAllRecords(){return this.getRecords(()=>!0)}async _fetchRecords(A){const{majorVersion:t}=await this.file.getDefinition(),r=await this.container.getCompressionScheme();if(void 0===r)throw new Error("compression scheme undefined");const e=await this.getHeader(),v=await this._getBlocksContentIdIndex();if(t>1&&this.file.options.checkSequenceMD5&&wA(e.parsedContent)&&e.parsedContent.refSeqId>=0&&"0000000000000000"!==e.parsedContent.md5?.join("")){const A=await this.getReferenceRegion();if(A){const{seq:t,start:r,end:v}=A,n=function(A){return l(A.toUpperCase().replaceAll(/[^\u0021-\u007e]/g,""))}(t),j=e.parsedContent.md5?.map(A=>(A<16?"0":"")+A.toString(16)).join("");if(n!==j)throw new nA(`MD5 checksum reference mismatch for ref ${e.parsedContent.refSeqId} pos ${r}..${v}. recorded MD5: ${j}, calculated MD5: ${n}`)}}const n=await this.getCoreDataBlock(),j=new Map,f={lastAlignmentStart:wA(e.parsedContent)?e.parsedContent.refSeqStart:0,coreBlock:{bitPosition:7,bytePosition:0},externalBlocks:{getCursor(A){let t=j.get(A);return void 0===t&&(t={bitPosition:7,bytePosition:0},j.set(A,t)),t}}},s=new Set,b=new Set;function i(A,t){A&&(1===A.codecId?t?s.add(A.parameters.blockContentId):b.add(A.parameters.blockContentId):4===A.codecId?(i(A.parameters.lengthsEncoding,!0),i(A.parameters.valuesEncoding,!1)):5===A.codecId&&b.add(A.parameters.blockContentId));}for(const[A,t]of Object.entries(r.dataSeriesEncoding))i(t,"int"===PA[A]);for(const A of Object.values(r.tagEncoding))i(A,!1);for(const A of b)s.delete(A);const o=new Map;for(const A of s){const t=v[A];if(t?.content.length){const r=dA(t.content);o.set(A,{values:r,index:0});}}f.preDecodedIntBlocks=o;const a=A=>{const t=r.getCodecForDataSeries(A);if(!t)return ()=>{throw new nA(`no codec defined for ${A} data series`)};if(t instanceof kA){const A=t.parameters.blockContentId,r=o.get(A);if(r){const{values:A}=r;return ()=>A[r.index++]}const e=v[A];if(!e)return ()=>{throw new nA(`no block found with content ID ${A}`)};const n=f.externalBlocks.getCursor(A),j=e.content;return "int"===t.dataType?()=>u(j,n):()=>{if(n.bytePosition>=j.length)throw new fA("attempted to read beyond end of block. this file seems truncated.");return j[n.bytePosition++]}}if(t instanceof hA){const{blockContentId:A,stopByte:r}=t.parameters,e=v[A];if(!e)return ()=>{throw new nA(`no block found with content ID ${A}`)};const n=e.content,j=f.externalBlocks.getCursor(A);return ()=>{const A=j.bytePosition,t=n.length;let e=A;for(;e<t&&n[e]!==r;)e++;if(e>=t)throw new fA("byteArrayStop reading beyond length of data buffer?");return j.bytePosition=e+1,n.subarray(A,e)}}return ()=>t.decode(this,n,v,f)},g={BF:a("BF"),CF:a("CF"),RI:a("RI"),RL:a("RL"),AP:a("AP"),RG:a("RG"),RN:a("RN"),MF:a("MF"),NS:a("NS"),NP:a("NP"),TS:a("TS"),NF:a("NF"),TL:a("TL"),FN:a("FN"),FC:a("FC"),FP:a("FP"),DL:a("DL"),BB:a("BB"),QQ:a("QQ"),BS:a("BS"),IN:a("IN"),RS:a("RS"),PD:a("PD"),HC:a("HC"),SC:a("SC"),MQ:a("MQ"),BA:a("BA"),QS:a("QS"),TC:a("TC"),TN:a("TN")},I=r.getCodecForDataSeries("QS"),c=r.getCodecForDataSeries("BA"),C=I||c?(A,t)=>{const r="QS"===A?I:c;return r?.getBytesSubarray(v,f,t)}:void 0,E={},h=A=>{const t=r.getCodecForTag(A);return ()=>t.decode(this,n,v,f)};for(const A of Object.keys(r.tagEncoding)){const t=r.tagEncoding[A];if(4===t.codecId&&1===t.parameters.lengthsEncoding.codecId&&1===t.parameters.valuesEncoding.codecId){const r=t.parameters.lengthsEncoding.parameters.blockContentId,e=t.parameters.valuesEncoding.parameters.blockContentId,n=v[r],j=v[e];if(!n||!j){E[A]=h(A);continue}const s=j.content,b=f.externalBlocks.getCursor(e),i=o.get(r),a=n.content,g=f.externalBlocks.getCursor(r),I=i?()=>i.values[i.index++]:()=>u(a,g);E[A]=()=>{const A=I();if(0===A)return TA;const t=b.bytePosition,r=t+A;if(r>s.length)throw new fA("attempted to read beyond end of block. this file seems truncated.");return b.bytePosition=r,s.subarray(t,r)};}else E[A]=h(A);}const d=new Array(e.parsedContent.numRecords),k=function(A,t){const r=t>1?A.SC:A.IN,e=new Array(128);return e["B".charCodeAt(0)]=["B",()=>[String.fromCharCode(A.BA()),A.QS()]],e["X".charCodeAt(0)]=["X",()=>A.BS()],e["D".charCodeAt(0)]=["D",()=>A.DL()],e["I".charCodeAt(0)]=["I",()=>B(A.IN())],e["i".charCodeAt(0)]=["i",()=>String.fromCharCode(A.BA())],e["b".charCodeAt(0)]=["b",()=>B(A.BB())],e["q".charCodeAt(0)]=["q",()=>Array.from(A.QQ())],e["Q".charCodeAt(0)]=["Q",()=>A.QS()],e["H".charCodeAt(0)]=["H",()=>A.HC()],e["P".charCodeAt(0)]=["P",()=>A.PD()],e["N".charCodeAt(0)]=["N",()=>A.RS()],e["S".charCodeAt(0)]=["S",()=>B(r())],e}(g,t);for(let v=0;v<d.length;v+=1)try{d[v]=new R(HA(0,g,k,E,r,e,0,0,f,t,v,e.contentPosition+e.parsedContent.recordCounter+v+1,A,C));}catch(A){const t=A;if("CRAM_BUFFER_OVERRUN"===t.code){const A=v,r=e.parsedContent.numRecords;throw new nA(`Failed to decode all records in slice. Decoded ${A} of ${r} expected records. Buffer overrun suggests either: (1) file is truncated/corrupted, (2) compression scheme is incorrect, or (3) there's a bug in the decoder. Original error: ${t.message}`)}throw A}for(let A=0;A<d.length;A+=1){const t=d[A],{mateRecordNumber:r}=t;void 0!==r&&r>=0&&d[r]&&UA(d,A,t,d[r]);}return d}async getRecords(A,t){const r={...w,...t},e=""+(r.decodeTags?1:0),v=`${this.container.filePosition}:${this.containerPosition}:${e}`;let n=this.file.featureCache.get(v);n||(n=this._fetchRecords(r),this.file.featureCache.set(v,n));const j=(await n).filter(A);if(j.length&&this.file.fetchReferenceSequenceCallback){const A=await this.getHeader();if(wA(A.parsedContent)&&(A.parsedContent.refSeqId>=0||-2===A.parsedContent.refSeqId)){const t=A.parsedContent.refSeqId>=0?A.parsedContent.refSeqId:void 0,r=await this.container.getCompressionScheme();if(void 0===r)throw new Error("compression scheme undefined");const e={};for(const A of j){const r=void 0!==t?t:A.sequenceId;let v=e[r];v||(v={id:r,start:A.alignmentStart,end:Number.NEGATIVE_INFINITY,seq:null},e[r]=v);const n=A.alignmentStart+(A.lengthOnRef||A.readLength)-1;n>v.end&&(v.end=n),A.alignmentStart<v.start&&(v.start=A.alignmentStart);}await Promise.all(Object.values(e).map(async A=>{-1!==A.id&&A.start<=A.end&&this.file.fetchReferenceSequenceCallback&&(A.seq=await this.file.fetchReferenceSequenceCallback(A.id,A.start,A.end));}));for(const A of j){const v=e[void 0!==t?t:A.sequenceId];if(v?.seq){const t=v.seq;A.addReferenceSequence({...v,seq:t},r);}}}}return j}}class VA{file;filePosition;_headerResult;_compressionHeaderBlockResult;_compressionSchemeResult;constructor(A,t){this.file=A,this.filePosition=t;}getHeader(){return void 0===this._headerResult&&(this._headerResult=this._fetchHeader(),this._headerResult.catch(()=>{this._headerResult=void 0;})),this._headerResult}_fetchHeader(){return this._readContainerHeader(this.filePosition)}async getCompressionHeaderBlock(){return void 0===this._compressionHeaderBlockResult&&(this._compressionHeaderBlockResult=this._fetchCompressionHeaderBlock(),this._compressionHeaderBlockResult.catch(()=>{this._compressionHeaderBlockResult=void 0;})),this._compressionHeaderBlockResult}async _fetchCompressionHeaderBlock(){if(!(await this.getHeader()).numRecords)return null;const{majorVersion:A}=await this.file.getDefinition(),t=KA(A),r=await this.getFirstBlock();if("COMPRESSION_HEADER"!==r.contentType)throw new nA(`invalid content type ${r.contentType} in compression header block`);const e=m(r.content,t.cramCompressionHeader.parser,0,r.contentPosition);return {...r,parsedContent:e}}async getFirstBlock(){const A=await this.getHeader();return this.file.readBlock(A._endPosition)}async getCompressionScheme(){return void 0===this._compressionSchemeResult&&(this._compressionSchemeResult=this._fetchCompressionScheme(),this._compressionSchemeResult.catch(()=>{this._compressionSchemeResult=void 0;})),this._compressionSchemeResult}async _fetchCompressionScheme(){const A=await this.getCompressionHeaderBlock();if(A)return new YA(A.parsedContent)}getSlice(A,t){return new zA(this,A,t)}async _readContainerHeader(A){const{majorVersion:t}=await this.file.getDefinition(),r=KA(t),{cramContainerHeader1:e,cramContainerHeader2:v}=r,n=m(await this.file.read(e.maxLength,A),e.parser),j=-128&(f=n.numLandmarks)?-16384&f?-2097152&f?-268435456&f?5:4:3:2:1;var f;const s=m(await this.file.read(v.maxLength(n.numLandmarks),A+n._size-j),v.parser);return this.file.validateChecksums&&void 0!==s.crc32&&await this.file.checkCrc32(A,n._size+s._size-j-4,s.crc32,`container header beginning at position ${A}`),{...n,...s,_size:n._size+s._size-j,_endPosition:n._size+s._size-j+A}}}class XA{exports;memory;ptr;bufSize;inStart;outStart;mem8;mem32;constructor(A){this.exports=A.exports,this.memory=this.exports.memory,this.ptr=this.exports.create_context(),this._refresh(),this.bufSize=this.mem32[0],this.inStart=this.mem32[1]-this.ptr,this.outStart=this.mem32[4]-this.ptr;}supplyInput(A){this._refresh(),this.mem8.subarray(this.inStart,this.inStart+this.bufSize).set(A,0),this.exports.supply_input(this.ptr,A.byteLength);}getNextOutput(){const A=this.exports.get_next_output(this.ptr);if(this._refresh(),0!==A&&1!==A)throw new Error(`get_next_output failed with error code ${A}`);return {outChunk:this.mem8.slice(this.outStart,this.outStart+this.mem32[5]),finished:1===A}}dispose(){this.exports.destroy_context(this.ptr);}_refresh(){const A=this.memory.buffer;A!==this.mem8?.buffer&&(this.mem8=new Uint8Array(A,this.ptr),this.mem32=new Uint32Array(A,this.ptr));}}let WA,ZA;const At=new Uint8Array(0);let tt;class rt{file;validateChecksums;fetchReferenceSequenceCallback;options;featureCache;header;_sectionParsers;_definitionResult;_samHeaderResult;constructor(A){if(this.file=CA(A.url,A.path,A.filehandle),this.validateChecksums=A.validateChecksums??!1,this.fetchReferenceSequenceCallback=A.seqFetch,this.options={checkSequenceMD5:A.checkSequenceMD5,cacheSize:A.cacheSize??2e4},this.featureCache=new AA({maxSize:this.options.cacheSize}),void 0===tt&&(tt=68===new Uint8Array(new Uint32Array([287454020]).buffer)[0]),!tt)throw new Error("Detected big-endian machine, may be unable to run")}read(A,t){return this.file.read(A,t)}async _getSectionParsers(){if(!this._sectionParsers){const{majorVersion:A}=await this.getDefinition();this._sectionParsers=KA(A);}return this._sectionParsers}async getDefinition(){return void 0===this._definitionResult&&(this._definitionResult=this._fetchDefinition(),this._definitionResult.catch(()=>{this._definitionResult=void 0;})),this._definitionResult}async _fetchDefinition(){const{maxLength:A,parser:t}=QA(),r=t(await this.file.read(A,0)).value;if("CRAM"!==r.magic)throw new Error("Not a CRAM file, does not match magic string");if(2!==r.majorVersion&&3!==r.majorVersion)throw new vA(`CRAM version ${r.majorVersion} not supported`);return r}async getSamHeader(){return void 0===this._samHeaderResult&&(this._samHeaderResult=this._fetchSamHeader(),this._samHeaderResult.catch(()=>{this._samHeaderResult=void 0;})),this._samHeaderResult}async _fetchSamHeader(){const A=await this.getContainerById(0);if(!A)throw new nA("file contains no containers");const t=(await A.getFirstBlock()).content,r=new DataView(t.buffer,t.byteOffset,t.byteLength).getInt32(0,!0),e=B(t.subarray(4,4+r));return this.header=e,function(A){const t=A.split(/\r?\n/),r=[];for(const A of t){const[t,...e]=A.split(/\t/);t&&r.push({tag:t.slice(1),data:e.map(A=>{const t=A.indexOf(":");return -1!==t?{tag:A.slice(0,t),value:A.slice(t+1)}:{tag:A,value:""}})});}return r}(e)}async getHeaderText(){return await this.getSamHeader(),this.header}async*iterContainers(){let A=(await this._getSectionParsers()).cramFileDefinition.maxLength,t=0;for(;;){const r=this.getContainerAtPosition(A),e=await r.getHeader();if(yield r,0===t){A=e._endPosition;for(let t=0;t<e.numBlocks;t++)A=(await this.readBlock(A))._endPosition;}else A+=e._size+e.length;t++;}}async getContainerById(A){let t=0;for await(const r of this.iterContainers()){if(t===A)return r;t++;}}async checkCrc32(A,t,r,e){const v=await this.file.read(t,A),n=rA(v)>>>0;if(n!==r)throw new nA(`crc mismatch in ${e}: recorded CRC32 = ${r}, but calculated CRC32 = ${n}`)}async containerCount(){let A=0;try{for await(const t of this.iterContainers())A+=1;}catch(t){A--;}return A}getContainerAtPosition(A){return new VA(this,A)}async readBlockHeader(A){const{cramBlockHeader:t}=await this._getSectionParsers();return m(await this.file.read(t.maxLength,A),t.parser,0,A)}async _parseSection(A,t,r=A.maxLength,e){const v=m(e??await this.file.read(r,t),A.parser,0,t);if(v._size!==r)throw new nA(`section read error: requested size ${r} does not equal parsed size ${v._size}`);return v}async _uncompress(A,t,r){let e;if("gzip"===A)e=await EA(t);else if("bzip2"===A)e=await(v=t,n=r,aA(v,"bz2_uncompress",(A,t,r)=>A._bz2_uncompress(t,v.length,n,r),!0));else if("lzma"===A)e=await async function(A){ZA||await(WA||(WA=async function(){const A="data:application/wasm;base64,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ACABQX9qIgENAAsgAkJ/hSECCyACC8oQAgx/An4CQAJAIAAoAiRFDQAgACgCACECDAELQQAhAiAAQQA6ACggAEIANwMAIABCADcDGCAAQcgAakEAQeQAEIaAgIAAGiAAQawBakEMNgIACyAAIAEoAgQiAzYCECAAQeAAaiEEIABByABqIQUgAEG2AWohBiAAQbABaiEHIABBqAFqIQggASgCECEJAkACQAJAAkADQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCACDgoBAgAEBQYHCAkKDwsgASgCACEKIAAoAqgBIQIgACgCrAEhCyABKAIEIQwgASgCCCENDAILIAcgACgCqAEiDGogASgCACABKAIEIgJqIAEoAgggAmsiAiAAKAKsASAMayIMIAIgDEkbIgIQh4CAgAAaIAEgASgCBCACajYCBEEAIQwgAEEAIAAoAqgBIAJqIgIgAiAAKAKsASILRhs2AqgBIAIgC0cNESAAQQE2AgACQCAHQaiIgIAAQQYQhICAgABFDQBBBSEMDBILIAZBAkEAEI2AgIAAIAAoALgBRw0QQQYhDCAGLQAADREgACAALQC3ASICNgIgIAJBBEsNEUEBIAJ0QRNxRQ0RCyABKAIEIgwgASgCCCINRg0OAkAgASgCACIKIAxqLQAAIgsNACAAIAw2AhAgASAMQQFqNgIEQQYhAgwMC0EAIQIgAEEANgKoASAAQQI2AgAgACALQQJ0QQRqIgs2AqwBIAAgCzYCQAsgByACaiAKIAxqIA0gDGsiDCALIAJrIgIgDCACSRsiAhCHgICAABogASABKAIEIAJqNgIEQQAhDCAAQQAgACgCqAEgAmoiAiACIAAoAqwBIgtGGzYCqAEgAiALRw0PIAAgAkF8aiICNgKsAUEHIQwgByACQQAQjYCAgAAgByAAKAKsASICaigAAEcNDyAAQQI2AqgBIAAtALEBIgtBP3ENDAJAAkAgC0HAAHFFDQAgACAHIAggAhCRgICAAEEBRw0RIAAgACkDCDcDMCAAKAKsASECIAAtALEBIQsMAQsgAEJ/NwMwC0J/IQ4CQCALwEF/Sg0AIAAgByAIIAIQkYCAgABBAUcNECAAKAKsASECIAApAwghDgsgACAONwM4IAIgACgCqAEiC2tBAkkNDyAAIAtBAWoiCjYCqAEgCCALakEI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AA8LIAEgA0EBaiIFNgIEAkAgASgCACADai0AACAAKQMYIAAoAgQiA62Ip0H/AXFGDQBBBw8LIAAgA0EIaiIGNgIEIAUhAyAGIAJJDQALIABBADYCBCAAQgA3AxhBAQtvAQF/QQchAQJAIABBugFqLwAAQdm0AUcNACAAQbQBakEGQQAQjYCAgAAgAEGwAWooAABHDQAgAEGAAWopAwBCAoggADUAtAFSDQAgAEG4AWotAAANAEEBQQcgACgCICAAQbkBai0AAEYbIQELIAELwAIBA38CQAJAAkAgACgCJA0AIABBADoAKCAAQQA2AgBBASECDAELAkAgACgCAEEKRw0AQQAhAwwCC0ECIQMMAQtBASEDCwJAAkADQAJAAkACQAJAIAMOAwABAwMLIAEoAgQiAyABKAIIIgRGDQQgASgCACEFAkADQCAFIANqLQAADQEgASADQQFqIgM2AgQgACAAKAIEQQFqQQNxNgIEIAQgA0YNBgwACwsCQCAAKAIERQ0AQQcPCyAAKAIkRQ0BIABBADoAKCAAQQA2AgBBASEDDAMLIABCADcDGCAAQQA2AgQgAEHIAGpBAEHkABCGgICAABogAEGsAWpBDDYCAAtBAiEDDAELIAAgARCQgICAACIDQQFHDQIgAEEKNgIAQQAhAwwACwsCQCACDQBBAA8LQQdBASAAKAIEGyEDCyADC3UBAX8CQEG4CRCAgICAACICRQ0AIAIgADYCJCACIAAgARCbgICAACIANgKwCQJAIABFDQAgAkEAOgAoIAJCADcDACACQgA3AxggAkHIAGpBAEHkABCGgICAABogAkGsAWpBDDYCACACDwsgAhCCgICAAAtBAAseAAJAIABFDQAgACgCsAkQnYCAgAAgABCCgICAAAsL3RABCn8gAEHo3QFqIQIgAEHUAGohAyAAQRxqIgRBCGohBQJAAkADQCAAKAJAIQYCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgASgCBCIHIAEoAghJDQAgBkEHRg0BDBELIAYOCQECAwQFBgcACQ4LIAAoAkwhBgwHC0EBIQYgASAHQQFqNgIEIAEoAgAgB2otAAAiB0UNCAJAAkAgB0HfAUsNACAHQQFHDQELIABBgAI7AVACQCAAKAI8DQAgACABKAIMIAEoAhAiBmo2AhggACABKAIUIAZr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".replace("data:application/wasm;base64,",""),t=atob(A),r=t.length,e=new Uint8Array(r);for(let A=0;A<r;A++)e[A]=t.charCodeAt(A);const v=await WebAssembly.instantiate(e.buffer,{});ZA=v.instance;}()));const t=new XA(ZA),r=[];let e=0,v=!1;try{for(;;){if(t.mem32[2]===t.mem32[3])if(e<A.length){const r=Math.min(t.bufSize,A.length-e);t.supplyInput(A.subarray(e,e+r)),e+=r;}else {if(v)throw new Error("XZ decompression error: unexpected end of input");t.supplyInput(At),v=!0;}const n=t.getNextOutput();if(n.outChunk.length>0&&r.push(n.outChunk),t.mem32[5]=0,n.finished)break}if(1===r.length)return r[0];const n=r.reduce((A,t)=>A+t.length,0),j=new Uint8Array(n);let f=0;for(const A of r)j.set(A,f),f+=A.length;return j}finally{t.dispose();}}(t);else if("rans"===A)e=await function(A){return aA(A,"rans_uncompress",(t,r,e)=>t._rans_uncompress(r,A.length,e),!0)}(t);else if("rans4x16"===A)e=await function(A){return aA(A,"rans_uncompress_4x16",(t,r,e)=>t._rans_uncompress_4x16(r,A.length,e))}(t);else if("arith"===A)e=await function(A){return aA(A,"arith_uncompress",(t,r,e)=>t._arith_uncompress(r,A.length,e))}(t);else if("fqzcomp"===A)e=await async function(A){const t=await oA(),r=t._malloc(4);try{return await aA(A,"fqz_decompress",(t,e,v)=>t._fqz_decompress(e,A.length,v,r))}finally{t._free(r);}}(t);else {if("tok3"!==A)throw new vA(`${A} decompression not yet implemented`);e=await function(A){return aA(A,"tok3_decode_names",(t,r,e)=>t._tok3_decode_names(r,A.length,e))}(t);}var v,n;if(e.length!==r)throw new nA(`${A} decompression produced ${e.length} bytes, expected ${r}`);return e}async readBlock(A){const{majorVersion:t}=await this.getDefinition(),{cramBlockHeader:r,cramBlockCrc32:e}=await this._getSectionParsers(),v=m(await this.file.read(r.maxLength,A),r.parser,0,A),n=v._size+v.compressedSize+(t>=3?e.maxLength:0),j=await this.file.read(n,A);return this.readBlockFromBuffer(j,0,A)}async readBlockFromBuffer(A,t,r){const{majorVersion:e}=await this.getDefinition(),v=await this._getSectionParsers(),{cramBlockHeader:n}=v,j=m(A.subarray(t,t+n.maxLength),n.parser,0,r),f=j._endPosition,s=t+j._size,b=A.subarray(s,s+j.compressedSize),i=0===j.uncompressedSize?new Uint8Array(0):"raw"!==j.compressionMethod?await this._uncompress(j.compressionMethod,b,j.uncompressedSize):b,o={...j,_endPosition:f,contentPosition:f,content:i};if(e>=3){const r=s+j.compressedSize,e=m(A.subarray(r,r+v.cramBlockCrc32.maxLength),v.cramBlockCrc32.parser,0,f+j.compressedSize);if(o.crc32=e.crc32,this.validateChecksums){const r=A.subarray(t,t+j._size+j.compressedSize),v=rA(r)>>>0;if(v!==e.crc32)throw new nA(`crc mismatch in block data: recorded CRC32 = ${e.crc32}, but calculated CRC32 = ${v}`)}o._endPosition=e._endPosition,o._size=o.compressedSize+v.cramBlockCrc32.maxLength;}else o._endPosition=f+o.compressedSize,o._size=o.compressedSize;return o}}function et(A,t){const[r,e,v,n,j,f]=t,s=r;A[s]||(A[s]=[]),A[s].push({start:e,span:v,containerStart:n,sliceStart:j,sliceBytes:f});}class vt{parseIndexP;filehandle;constructor(A){this.filehandle=CA(A.url,A.path,A.filehandle);}async parseIndex(){const A={},t=await async function(A){return 31===A[0]&&139===A[1]?EA(A):A}(await this.filehandle.readFile()),r=new DataView(t.buffer,t.byteOffset,t.byteLength);if(t.length>4&&21578050===r.getUint32(0,!0))throw new nA("invalid .crai index file. note: file appears to be a .bai index. this is technically legal but please open a github issue if you need support");let e=[],v="";for(const r of t)if(r>=48&&r<=57||!v&&45===r)v+=String.fromCharCode(r);else if(9===r)e.push(Number.parseInt(v,10)),v="";else if(10===r)e.push(Number.parseInt(v,10)),v="",et(A,e),e=[];else if(13!==r&&32!==r)throw new nA("invalid .crai index file");v&&e.push(Number.parseInt(v,10)),6===e.length&&et(A,e);for(const t of Object.values(A))t?.sort((A,t)=>A.start-t.start||A.span-t.span);return A}getIndex(){return this.parseIndexP||(this.parseIndexP=this.parseIndex().catch(A=>{throw this.parseIndexP=void 0,A})),this.parseIndexP}async hasDataForReferenceSequence(A){return !!(await this.getIndex())[A]}async getEntriesForRange(A,t,r){const e=(await this.getIndex())[A];return e?e.filter(A=>A.start<=r&&A.start+A.span>t):[]}}function nt(A){const t=A.readName;if(void 0===t)throw new Error("readName undefined");return t}class jt{cram;index;constructor(A){this.cram=A.cram??new rt({url:A.cramUrl,path:A.cramPath,filehandle:A.cramFilehandle,seqFetch:A.seqFetch,checkSequenceMD5:A.checkSequenceMD5,validateChecksums:A.validateChecksums,cacheSize:A.cacheSize}),this.index=A.index;}async getRecordsForRange(A,t,r,e={}){const v=e.viewAsPairs??!1,n=e.pairAcrossChr??!1,j=e.maxInsertSize??2e5,f=e.onProgress,s={decodeTags:e.decodeTags},b=A,i=await this.index.getEntriesForRange(b,t,r);let o=0;for(const A of i)o+=A.sliceBytes;let a=0;f?.(0,o);let g=(await Promise.all(i.map(e=>this.getRecordsInSlice(e,e=>e.sequenceId===A&&(void 0===e.lengthOnRef?e.alignmentStart>=t&&e.alignmentStart<=r:e.alignmentStart<=r&&e.alignmentStart+e.lengthOnRef-1>t),s).then(A=>(a+=e.sliceBytes,f?.(a,o),A))))).flat();if(v){const A={},t=new Set;for(const r of g){const e=nt(r);A[e]=(A[e]??0)+1,t.add(r.uniqueId);}const r=new Set(Object.keys(A).filter(t=>1===A[t])),e=[];for(const A of g){const t=nt(A);r.has(t)&&A.mate&&(A.mate.sequenceId===b||n)&&Math.abs(A.alignmentStart-A.mate.alignmentStart)<j&&e.push(this.index.getEntriesForRange(A.mate.sequenceId,A.mate.alignmentStart,A.mate.alignmentStart+1));}const v=await Promise.all(e),f=new Map;for(const A of v.flat())f.set(`${A.containerStart}:${A.sliceStart}:${A.sliceBytes}`,A);const s=[...f.values()].map(A=>this.getRecordsInSlice(A,()=>!0).then(A=>{const e=[];for(const v of A){const A=nt(v);r.has(A)&&!t.has(v.uniqueId)&&e.push(v);}return e})),i=await Promise.all(s);g=g.concat(i.flat());}return g}getRecordsInSlice({containerStart:A,sliceStart:t,sliceBytes:r},e,v){return this.cram.getContainerAtPosition(A).getSlice(t,r).getRecords(e,v)}hasDataForReferenceSequence(A){return this.index.hasDataForReferenceSequence(A)}}})(),gmodCRAM=e;})();
|
|
52558
|
+
var gmodCRAM$1 = gmodCRAM;
|
|
52060
52559
|
|
|
52061
52560
|
class FileHandler {
|
|
52062
52561
|
|
|
@@ -52174,7 +52673,7 @@
|
|
|
52174
52673
|
this.browser = browser;
|
|
52175
52674
|
this.genome = genome;
|
|
52176
52675
|
|
|
52177
|
-
this.cramFile = new gmodCRAM.CramFile({
|
|
52676
|
+
this.cramFile = new gmodCRAM$1.CramFile({
|
|
52178
52677
|
filehandle: config.fileHandle ? config.fileHandle : new FileHandler(config.url, config),
|
|
52179
52678
|
//url: config.url,
|
|
52180
52679
|
seqFetch: config.seqFetch || seqFetch.bind(this),
|
|
@@ -52182,9 +52681,9 @@
|
|
|
52182
52681
|
});
|
|
52183
52682
|
|
|
52184
52683
|
const indexFileHandle = config.indexFileHandle ? config.indexFileHandle : new FileHandler(config.indexURL, config);
|
|
52185
|
-
this.indexedCramFile = new gmodCRAM.IndexedCramFile({
|
|
52684
|
+
this.indexedCramFile = new gmodCRAM$1.IndexedCramFile({
|
|
52186
52685
|
cram: this.cramFile,
|
|
52187
|
-
index: new gmodCRAM.CraiIndex({
|
|
52686
|
+
index: new gmodCRAM$1.CraiIndex({
|
|
52188
52687
|
//url: config.indexURL
|
|
52189
52688
|
filehandle: indexFileHandle
|
|
52190
52689
|
}),
|
|
@@ -52309,6 +52808,9 @@
|
|
|
52309
52808
|
|
|
52310
52809
|
const alignment = decodeCramRecord(record, header.chrNames);
|
|
52311
52810
|
|
|
52811
|
+
// Convert qual to regular array -- this was a breaking change somewhere between 5.X and 8.3.0
|
|
52812
|
+
if(alignment.qual) alignment.qual = Array.from(alignment.qual);
|
|
52813
|
+
|
|
52312
52814
|
if (this.filter.pass(alignment)) {
|
|
52313
52815
|
alignmentContainer.push(alignment);
|
|
52314
52816
|
}
|
|
@@ -76662,6 +77164,9 @@ ${indent}columns: ${matrix.columns}
|
|
|
76662
77164
|
indexURL: r.getAttribute("index"),
|
|
76663
77165
|
order: idx
|
|
76664
77166
|
};
|
|
77167
|
+
if (r.hasAttribute("format")) {
|
|
77168
|
+
config.format = r.getAttribute("format");
|
|
77169
|
+
}
|
|
76665
77170
|
resourceMap.set(config.url, config);
|
|
76666
77171
|
if (!hasTrackElements) {
|
|
76667
77172
|
tracks.push(config);
|
|
@@ -76749,6 +77254,13 @@ ${indent}columns: ${matrix.columns}
|
|
|
76749
77254
|
|
|
76750
77255
|
config.name = track.getAttribute("name");
|
|
76751
77256
|
|
|
77257
|
+
if(track.hasAttribute("type")) {
|
|
77258
|
+
config.type = track.getAttribute("type");
|
|
77259
|
+
}
|
|
77260
|
+
if(track.hasAttribute("format")) {
|
|
77261
|
+
config.format = track.getAttribute("format");
|
|
77262
|
+
}
|
|
77263
|
+
|
|
76752
77264
|
const color = track.getAttribute("color");
|
|
76753
77265
|
if (color) {
|
|
76754
77266
|
config.color = "rgb(" + color + ")";
|
|
@@ -77060,7 +77572,7 @@ ${indent}columns: ${matrix.columns}
|
|
|
77060
77572
|
})
|
|
77061
77573
|
}
|
|
77062
77574
|
|
|
77063
|
-
const _version = "3.8.
|
|
77575
|
+
const _version = "3.8.3";
|
|
77064
77576
|
function version() {
|
|
77065
77577
|
return _version
|
|
77066
77578
|
}
|