@parcel/utils 2.9.2 → 2.9.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/lib/index.js CHANGED
@@ -156,7 +156,7 @@ const $304f14c7e435813f$var$isObject = (val)=>val && typeof val === "object" &&
156
156
  isIgnored = $304f14c7e435813f$var$picomatch(opts.ignore, ignoreOpts, returnState);
157
157
  }
158
158
  const matcher = (input, returnObject = false)=>{
159
- const { isMatch: isMatch , match: match , output: output } = $304f14c7e435813f$var$picomatch.test(input, regex, options, {
159
+ const { isMatch: isMatch, match: match, output: output } = $304f14c7e435813f$var$picomatch.test(input, regex, options, {
160
160
  glob: glob,
161
161
  posix: posix
162
162
  });
@@ -201,7 +201,7 @@ const $304f14c7e435813f$var$isObject = (val)=>val && typeof val === "object" &&
201
201
  * @param {RegExp} `regex`
202
202
  * @return {Object} Returns an object with matching info.
203
203
  * @api public
204
- */ $304f14c7e435813f$var$picomatch.test = (input, regex, options, { glob: glob , posix: posix } = {})=>{
204
+ */ $304f14c7e435813f$var$picomatch.test = (input, regex, options, { glob: glob, posix: posix } = {})=>{
205
205
  if (typeof input !== "string") throw new TypeError("Expected input to be a string");
206
206
  if (input === "") return {
207
207
  isMatch: false,
@@ -947,7 +947,7 @@ var $7XmS6 = parcelRequire("7XmS6");
947
947
  var $5MQDC = parcelRequire("5MQDC");
948
948
  /**
949
949
  * Constants
950
- */ const { MAX_LENGTH: $fd5d6f248e5b4a63$var$MAX_LENGTH , POSIX_REGEX_SOURCE: $fd5d6f248e5b4a63$var$POSIX_REGEX_SOURCE , REGEX_NON_SPECIAL_CHARS: $fd5d6f248e5b4a63$var$REGEX_NON_SPECIAL_CHARS , REGEX_SPECIAL_CHARS_BACKREF: $fd5d6f248e5b4a63$var$REGEX_SPECIAL_CHARS_BACKREF , REPLACEMENTS: $fd5d6f248e5b4a63$var$REPLACEMENTS } = $7XmS6;
950
+ */ const { MAX_LENGTH: $fd5d6f248e5b4a63$var$MAX_LENGTH, POSIX_REGEX_SOURCE: $fd5d6f248e5b4a63$var$POSIX_REGEX_SOURCE, REGEX_NON_SPECIAL_CHARS: $fd5d6f248e5b4a63$var$REGEX_NON_SPECIAL_CHARS, REGEX_SPECIAL_CHARS_BACKREF: $fd5d6f248e5b4a63$var$REGEX_SPECIAL_CHARS_BACKREF, REPLACEMENTS: $fd5d6f248e5b4a63$var$REPLACEMENTS } = $7XmS6;
951
951
  /**
952
952
  * Helpers
953
953
  */ const $fd5d6f248e5b4a63$var$expandRange = (args, options)=>{
@@ -993,7 +993,7 @@ var $5MQDC = parcelRequire("5MQDC");
993
993
  // create constants based on platform, for windows or posix
994
994
  const PLATFORM_CHARS = $7XmS6.globChars(win32);
995
995
  const EXTGLOB_CHARS = $7XmS6.extglobChars(PLATFORM_CHARS);
996
- const { DOT_LITERAL: DOT_LITERAL , PLUS_LITERAL: PLUS_LITERAL , SLASH_LITERAL: SLASH_LITERAL , ONE_CHAR: ONE_CHAR , DOTS_SLASH: DOTS_SLASH , NO_DOT: NO_DOT , NO_DOT_SLASH: NO_DOT_SLASH , NO_DOTS_SLASH: NO_DOTS_SLASH , QMARK: QMARK , QMARK_NO_DOT: QMARK_NO_DOT , STAR: STAR , START_ANCHOR: START_ANCHOR } = PLATFORM_CHARS;
996
+ const { DOT_LITERAL: DOT_LITERAL, PLUS_LITERAL: PLUS_LITERAL, SLASH_LITERAL: SLASH_LITERAL, ONE_CHAR: ONE_CHAR, DOTS_SLASH: DOTS_SLASH, NO_DOT: NO_DOT, NO_DOT_SLASH: NO_DOT_SLASH, NO_DOTS_SLASH: NO_DOTS_SLASH, QMARK: QMARK, QMARK_NO_DOT: QMARK_NO_DOT, STAR: STAR, START_ANCHOR: START_ANCHOR } = PLATFORM_CHARS;
997
997
  const globstar = (opts)=>{
998
998
  return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`;
999
999
  };
@@ -1767,7 +1767,7 @@ var $5MQDC = parcelRequire("5MQDC");
1767
1767
  input = $fd5d6f248e5b4a63$var$REPLACEMENTS[input] || input;
1768
1768
  const win32 = $5MQDC.isWindows(options);
1769
1769
  // create constants based on platform, for windows or posix
1770
- const { DOT_LITERAL: DOT_LITERAL , SLASH_LITERAL: SLASH_LITERAL , ONE_CHAR: ONE_CHAR , DOTS_SLASH: DOTS_SLASH , NO_DOT: NO_DOT , NO_DOTS: NO_DOTS , NO_DOTS_SLASH: NO_DOTS_SLASH , STAR: STAR , START_ANCHOR: START_ANCHOR } = $7XmS6.globChars(win32);
1770
+ const { DOT_LITERAL: DOT_LITERAL, SLASH_LITERAL: SLASH_LITERAL, ONE_CHAR: ONE_CHAR, DOTS_SLASH: DOTS_SLASH, NO_DOT: NO_DOT, NO_DOTS: NO_DOTS, NO_DOTS_SLASH: NO_DOTS_SLASH, STAR: STAR, START_ANCHOR: START_ANCHOR } = $7XmS6.globChars(win32);
1771
1771
  const nodot = opts.dot ? NO_DOTS : NO_DOT;
1772
1772
  const slashDot = opts.dot ? NO_DOTS_SLASH : NO_DOT;
1773
1773
  const capture = opts.capture ? "" : "?:";
@@ -30183,7 +30183,7 @@ function $07628d57aabb0c0b$var$splitToPatterns(min, max, tok, options) {
30183
30183
  function $07628d57aabb0c0b$var$filterPatterns(arr, comparison, prefix, intersection, options) {
30184
30184
  let result = [];
30185
30185
  for (let ele of arr){
30186
- let { string: string } = ele;
30186
+ let { string: string } = ele;
30187
30187
  // only push if _both_ are negative...
30188
30188
  if (!intersection && !$07628d57aabb0c0b$var$contains(comparison, "string", string)) result.push(prefix + string);
30189
30189
  // or _both_ are positive
@@ -31508,7 +31508,7 @@ function $16c73921a8454263$var$expandBraceExpansion(pattern) {
31508
31508
  }
31509
31509
  $16c73921a8454263$exports.expandBraceExpansion = $16c73921a8454263$var$expandBraceExpansion;
31510
31510
  function $16c73921a8454263$var$getPatternParts(pattern, options) {
31511
- let { parts: parts } = $971e5d0cad67a09a$exports.scan(pattern, Object.assign(Object.assign({}, options), {
31511
+ let { parts: parts } = $971e5d0cad67a09a$exports.scan(pattern, Object.assign(Object.assign({}, options), {
31512
31512
  parts: true
31513
31513
  }));
31514
31514
  /**
@@ -33983,7 +33983,7 @@ $199fa68899b4a814$exports = (flag, argv = process.argv)=>{
33983
33983
  };
33984
33984
 
33985
33985
 
33986
- const { env: $66d9750644ce4a3a$var$env } = process;
33986
+ const { env: $66d9750644ce4a3a$var$env } = process;
33987
33987
  let $66d9750644ce4a3a$var$forceColor;
33988
33988
  if ($199fa68899b4a814$exports("no-color") || $199fa68899b4a814$exports("no-colors") || $199fa68899b4a814$exports("color=false") || $199fa68899b4a814$exports("color=never")) $66d9750644ce4a3a$var$forceColor = 0;
33989
33989
  else if ($199fa68899b4a814$exports("color") || $199fa68899b4a814$exports("colors") || $199fa68899b4a814$exports("color=true") || $199fa68899b4a814$exports("color=always")) $66d9750644ce4a3a$var$forceColor = 1;
@@ -34072,7 +34072,7 @@ function $007fe08032bb1964$var$parseVersion(versionString) {
34072
34072
  };
34073
34073
  }
34074
34074
  function $007fe08032bb1964$var$supportsHyperlink(stream) {
34075
- const { env: env } = process;
34075
+ const { env: env } = process;
34076
34076
  if ("FORCE_HYPERLINK" in env) return !(env.FORCE_HYPERLINK.length > 0 && parseInt(env.FORCE_HYPERLINK, 10) === 0);
34077
34077
  if ($199fa68899b4a814$exports("no-hyperlink") || $199fa68899b4a814$exports("no-hyperlinks") || $199fa68899b4a814$exports("hyperlink=false") || $199fa68899b4a814$exports("hyperlink=never")) return false;
34078
34078
  if ($199fa68899b4a814$exports("hyperlink=true") || $199fa68899b4a814$exports("hyperlink=always")) return true;
@@ -34106,7 +34106,7 @@ $007fe08032bb1964$exports = {
34106
34106
  };
34107
34107
 
34108
34108
 
34109
- const $77226306a1863103$var$terminalLink = (text, url, { target: target = "stdout" , ...options } = {})=>{
34109
+ const $77226306a1863103$var$terminalLink = (text, url, { target: target = "stdout", ...options } = {})=>{
34110
34110
  if (!$007fe08032bb1964$exports[target]) {
34111
34111
  // If the fallback has been explicitly disabled, don't modify the text itself.
34112
34112
  if (options.fallback === false) return text;
@@ -34124,7 +34124,7 @@ $77226306a1863103$exports.stderr.isSupported = $007fe08032bb1964$exports.stderr;
34124
34124
 
34125
34125
 
34126
34126
  async function $f02d6a9d30f55938$export$2e2bcd8739ae039(diagnostic, options, terminalWidth) {
34127
- let { origin: origin , message: message , stack: stack , codeFrames: codeFrames , hints: hints , skipFormatting: skipFormatting , documentationURL: documentationURL } = diagnostic;
34127
+ let { origin: origin, message: message, stack: stack, codeFrames: codeFrames, hints: hints, skipFormatting: skipFormatting, documentationURL: documentationURL } = diagnostic;
34128
34128
  let result = {
34129
34129
  message: (0, ($parcel$interopDefault($8C1kk$parcelmarkdownansi)))(`**${origin !== null && origin !== void 0 ? origin : "unknown"}**: `) + (skipFormatting ? message : (0, ($parcel$interopDefault($8C1kk$parcelmarkdownansi)))(message)),
34130
34130
  stack: "",
@@ -34219,7 +34219,7 @@ class $b0fd219fea43bcac$export$2e2bcd8739ae039 {
34219
34219
  run() {
34220
34220
  if (this._runPromise != null) return this._runPromise;
34221
34221
  if (this._queue.length === 0) return Promise.resolve([]);
34222
- let { deferred: deferred , promise: promise } = (0, $75952a43539cb60f$export$93f345b3f0dd27e7)();
34222
+ let { deferred: deferred, promise: promise } = (0, $75952a43539cb60f$export$93f345b3f0dd27e7)();
34223
34223
  this._deferred = deferred;
34224
34224
  this._runPromise = promise;
34225
34225
  while(this._queue.length && this._numRunning < this._maxConcurrent)this._next();
@@ -34480,7 +34480,7 @@ function $4ca1027d34905147$var$validateSchema(schema, data) {
34480
34480
  })));
34481
34481
  }
34482
34482
  if (schemaNode.properties) {
34483
- let { additionalProperties: additionalProperties = true } = schemaNode;
34483
+ let { additionalProperties: additionalProperties = true } = schemaNode;
34484
34484
  // $FlowFixMe type was already checked
34485
34485
  for(let k in dataNode){
34486
34486
  if (invalidProps && invalidProps.includes(k)) continue;
@@ -34586,19 +34586,19 @@ $4ca1027d34905147$var$validateSchema.diagnostic = function(schema, data, origin,
34586
34586
  let keys = errors.map((e)=>{
34587
34587
  let message;
34588
34588
  if (e.type === "enum") {
34589
- let { actualValue: actualValue } = e;
34589
+ let { actualValue: actualValue } = e;
34590
34590
  let expectedValues = e.expectedValues.map(String);
34591
34591
  let likely = actualValue != null ? $4ca1027d34905147$export$2115c2c0a84eef61(expectedValues, String(actualValue)) : [];
34592
34592
  if (likely.length > 0) message = `Did you mean ${likely.map((v)=>JSON.stringify(v)).join(", ")}?`;
34593
34593
  else if (expectedValues.length > 0) message = `Possible values: ${expectedValues.map((v)=>JSON.stringify(v)).join(", ")}`;
34594
34594
  else message = "Unexpected value";
34595
34595
  } else if (e.type === "forbidden-prop") {
34596
- let { prop: prop , expectedProps: expectedProps , actualProps: actualProps } = e;
34596
+ let { prop: prop, expectedProps: expectedProps, actualProps: actualProps } = e;
34597
34597
  let likely = $4ca1027d34905147$export$2115c2c0a84eef61(expectedProps, prop).filter((v)=>!actualProps.includes(v));
34598
34598
  if (likely.length > 0) message = `Did you mean ${likely.map((v)=>JSON.stringify(v)).join(", ")}?`;
34599
34599
  else message = "Unexpected property";
34600
34600
  } else if (e.type === "missing-prop") {
34601
- let { prop: prop , actualProps: actualProps } = e;
34601
+ let { prop: prop, actualProps: actualProps } = e;
34602
34602
  let likely = $4ca1027d34905147$export$2115c2c0a84eef61(actualProps, prop);
34603
34603
  if (likely.length > 0) {
34604
34604
  message = `Did you mean ${JSON.stringify(prop)}?`;
@@ -34631,7 +34631,7 @@ $4ca1027d34905147$var$validateSchema.diagnostic = function(schema, data, origin,
34631
34631
  filePath: (_data_filePath = data.filePath) !== null && _data_filePath !== void 0 ? _data_filePath : undefined,
34632
34632
  language: "json",
34633
34633
  code: code,
34634
- codeHighlights: (0, $8C1kk$parceldiagnostic.generateJSONCodeHighlights)(map, keys.map(({ key: key , type: type , message: message })=>({
34634
+ codeHighlights: (0, $8C1kk$parceldiagnostic.generateJSONCodeHighlights)(map, keys.map(({ key: key, type: type, message: message })=>({
34635
34635
  key: ((_data_prependKey = data.prependKey) !== null && _data_prependKey !== void 0 ? _data_prependKey : "") + key,
34636
34636
  type: type,
34637
34637
  message: message != null ? (0, $8C1kk$parceldiagnostic.escapeMarkdown)(message) : message
@@ -34790,7 +34790,7 @@ const $618f8c1de80a427f$var$localXdgOpenPath = $8C1kk$path.join($618f8c1de80a427
34790
34790
  // Convert a path from WSL format to Windows format:
34791
34791
  // `/mnt/c/Program Files/Example/MyApp.exe` → `C:\Program Files\Example\MyApp.exe`
34792
34792
  const $618f8c1de80a427f$var$wslToWindowsPath = async (path)=>{
34793
- const { stdout: stdout } = await $618f8c1de80a427f$var$pExecFile("wslpath", [
34793
+ const { stdout: stdout } = await $618f8c1de80a427f$var$pExecFile("wslpath", [
34794
34794
  "-w",
34795
34795
  path
34796
34796
  ]);
@@ -36843,7 +36843,7 @@ async function $6aebdac47db0459e$export$6643be4f4e63e994(fs, moduleName, dir) {
36843
36843
  }
36844
36844
  return (0, $4ca1027d34905147$export$2115c2c0a84eef61)(potentialModules.sort(), moduleName).slice(0, 2);
36845
36845
  }
36846
- async function $6aebdac47db0459e$var$findAllFilesUp({ fs: fs , dir: dir , root: root , basedir: basedir , maxlength: maxlength , collected: collected , leadingDotSlash: leadingDotSlash = true , includeDirectories: includeDirectories = true }) {
36846
+ async function $6aebdac47db0459e$var$findAllFilesUp({ fs: fs, dir: dir, root: root, basedir: basedir, maxlength: maxlength, collected: collected, leadingDotSlash: leadingDotSlash = true, includeDirectories: includeDirectories = true }) {
36847
36847
  let dirContent = (await fs.readdir(dir)).sort();
36848
36848
  return Promise.all(dirContent.map(async (item)=>{
36849
36849
  let fullPath = (0, ($parcel$interopDefault($8C1kk$path))).join(dir, item);
@@ -37054,13 +37054,13 @@ async function $0e887a49fdd81cad$export$3b1983e9896f988b(options) {
37054
37054
  let server;
37055
37055
  if (!options.https) server = (0, ($parcel$interopDefault($8C1kk$http))).createServer(options.listener);
37056
37056
  else if (options.https === true) {
37057
- let { cert: cert , key: key } = await (0, $c6cbdbdbaf0fafc1$export$2e2bcd8739ae039)(options.outputFS, options.cacheDir, options.host);
37057
+ let { cert: cert, key: key } = await (0, $c6cbdbdbaf0fafc1$export$2e2bcd8739ae039)(options.outputFS, options.cacheDir, options.host);
37058
37058
  server = (0, ($parcel$interopDefault($8C1kk$https))).createServer({
37059
37059
  cert: cert,
37060
37060
  key: key
37061
37061
  }, options.listener);
37062
37062
  } else {
37063
- let { cert: cert , key: key } = await (0, $186980c178984fd2$export$2e2bcd8739ae039)(options.inputFS, options.https);
37063
+ let { cert: cert, key: key } = await (0, $186980c178984fd2$export$2e2bcd8739ae039)(options.inputFS, options.https);
37064
37064
  server = (0, ($parcel$interopDefault($8C1kk$https))).createServer({
37065
37065
  cert: cert,
37066
37066
  key: key
@@ -37102,7 +37102,7 @@ async function $0e887a49fdd81cad$export$3b1983e9896f988b(options) {
37102
37102
 
37103
37103
 
37104
37104
 
37105
- function $bc66accb63b05e9a$export$d0d0105f44defc19({ bundle: bundle , bundleGraph: bundleGraph , contents: contents , map: map , getReplacement: getReplacement = (s)=>s , relative: relative = true }) {
37105
+ function $bc66accb63b05e9a$export$d0d0105f44defc19({ bundle: bundle, bundleGraph: bundleGraph, contents: contents, map: map, getReplacement: getReplacement = (s)=>s, relative: relative = true }) {
37106
37106
  let replacements = new Map();
37107
37107
  let urlDependencies = [];
37108
37108
  bundle.traverse((node)=>{
@@ -37133,7 +37133,7 @@ function $bc66accb63b05e9a$export$d0d0105f44defc19({ bundle: bundle , bundleGrap
37133
37133
  }
37134
37134
  return $bc66accb63b05e9a$var$performReplacement(replacements, contents, map);
37135
37135
  }
37136
- async function $bc66accb63b05e9a$export$f074a8f9bef628fd({ bundle: bundle , bundleGraph: bundleGraph , contents: contents , map: map , getInlineReplacement: getInlineReplacement , getInlineBundleContents: getInlineBundleContents }) {
37136
+ async function $bc66accb63b05e9a$export$f074a8f9bef628fd({ bundle: bundle, bundleGraph: bundleGraph, contents: contents, map: map, getInlineReplacement: getInlineReplacement, getInlineBundleContents: getInlineBundleContents }) {
37137
37137
  let replacements = new Map();
37138
37138
  let dependencies = [];
37139
37139
  bundle.traverse((node)=>{
@@ -37155,7 +37155,7 @@ async function $bc66accb63b05e9a$export$f074a8f9bef628fd({ bundle: bundle , bund
37155
37155
  }
37156
37156
  return $bc66accb63b05e9a$var$performReplacement(replacements, contents, map);
37157
37157
  }
37158
- function $bc66accb63b05e9a$export$a22ef0cbdf8abc95({ dependency: dependency , fromBundle: fromBundle , toBundle: toBundle , relative: relative , getReplacement: getReplacement }) {
37158
+ function $bc66accb63b05e9a$export$a22ef0cbdf8abc95({ dependency: dependency, fromBundle: fromBundle, toBundle: toBundle, relative: relative, getReplacement: getReplacement }) {
37159
37159
  var _dependency_meta;
37160
37160
  let to;
37161
37161
  let orig = (0, ($parcel$interopDefault($8C1kk$url))).parse(dependency.specifier);
@@ -37183,7 +37183,7 @@ function $bc66accb63b05e9a$export$a22ef0cbdf8abc95({ dependency: dependency , fr
37183
37183
  }
37184
37184
  function $bc66accb63b05e9a$var$performReplacement(replacements, contents, map) {
37185
37185
  let finalContents = contents;
37186
- for (let { from: from , to: to } of replacements.values())// Perform replacement
37186
+ for (let { from: from, to: to } of replacements.values())// Perform replacement
37187
37187
  finalContents = finalContents.split(from).join(to);
37188
37188
  return {
37189
37189
  contents: finalContents,
@@ -37498,18 +37498,18 @@ async function $46fc74961fdcfe31$export$c500fecaca54de65(filename, contents, opt
37498
37498
  }
37499
37499
  }
37500
37500
  function $46fc74961fdcfe31$export$2fed780245c466c1(loc, originalMap) {
37501
- let { filePath: filePath , start: { line: startLine , column: startCol } , end: { line: endLine , column: endCol } } = loc;
37501
+ let { filePath: filePath, start: { line: startLine, column: startCol }, end: { line: endLine, column: endCol } } = loc;
37502
37502
  let lineDiff = endLine - startLine;
37503
37503
  let colDiff = endCol - startCol;
37504
37504
  let start = originalMap.findClosestMapping(startLine, startCol - 1);
37505
37505
  let end = originalMap.findClosestMapping(endLine, endCol - 1);
37506
37506
  if (start === null || start === void 0 ? void 0 : start.original) {
37507
37507
  if (start.source) filePath = start.source;
37508
- ({ line: startLine , column: startCol } = start.original);
37508
+ ({ line: startLine, column: startCol } = start.original);
37509
37509
  startCol++; // source map columns are 0-based
37510
37510
  }
37511
37511
  if (end === null || end === void 0 ? void 0 : end.original) {
37512
- ({ line: endLine , column: endCol } = end.original);
37512
+ ({ line: endLine, column: endCol } = end.original);
37513
37513
  endCol++; // source map columns are 0-based
37514
37514
  if (endLine < startLine) {
37515
37515
  endLine = startLine;
@@ -37548,7 +37548,7 @@ const $2c32463ab90dab73$var$BIGINT_ONE = 1n;
37548
37548
  let $2c32463ab90dab73$var$numberToBigInt = (v)=>BigInt(v);
37549
37549
  let $2c32463ab90dab73$var$bitUnion = (a, b)=>a | b;
37550
37550
  class $2c32463ab90dab73$export$33dc8f3f7b9e35df {
37551
- constructor({ initial: initial , items: items , lookup: lookup }){
37551
+ constructor({ initial: initial, items: items, lookup: lookup }){
37552
37552
  if (initial instanceof $2c32463ab90dab73$export$33dc8f3f7b9e35df) this._value = initial === null || initial === void 0 ? void 0 : initial._value;
37553
37553
  else if (initial) this._value = initial;
37554
37554
  else this._value = $2c32463ab90dab73$var$BIGINT_ZERO;
@@ -37629,7 +37629,7 @@ var $f709bcec854d2334$exports = {};
37629
37629
  "use strict";
37630
37630
  var $55a853fa49f658b3$exports = {};
37631
37631
  "use strict";
37632
- $55a853fa49f658b3$exports = ({ onlyFirst: onlyFirst = false } = {})=>{
37632
+ $55a853fa49f658b3$exports = ({ onlyFirst: onlyFirst = false } = {})=>{
37633
37633
  const pattern = [
37634
37634
  "[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)",
37635
37635
  "(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"