From 582f536845628ffb8132aaed1885ee535fcf08ad Mon Sep 17 00:00:00 2001
From: zhaojs <349234519@qq.com>
Date: 星期四, 27 四月 2023 10:44:51 +0800
Subject: [PATCH] no message

---
 unpackage/dist/dev/mp-weixin/common/vendor.js | 1275 ++++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 1,027 insertions(+), 248 deletions(-)

diff --git a/unpackage/dist/dev/mp-weixin/common/vendor.js b/unpackage/dist/dev/mp-weixin/common/vendor.js
index 13b1eab..281a283 100644
--- a/unpackage/dist/dev/mp-weixin/common/vendor.js
+++ b/unpackage/dist/dev/mp-weixin/common/vendor.js
@@ -14,6 +14,38 @@
   }
   return expectsLowerCase ? (val) => !!map[val.toLowerCase()] : (val) => !!map[val];
 }
+function normalizeStyle(value) {
+  if (isArray$1(value)) {
+    const res = {};
+    for (let i = 0; i < value.length; i++) {
+      const item = value[i];
+      const normalized = isString$1(item) ? parseStringStyle(item) : normalizeStyle(item);
+      if (normalized) {
+        for (const key in normalized) {
+          res[key] = normalized[key];
+        }
+      }
+    }
+    return res;
+  } else if (isString$1(value)) {
+    return value;
+  } else if (isObject$2(value)) {
+    return value;
+  }
+}
+const listDelimiterRE = /;(?![^(]*\))/g;
+const propertyDelimiterRE = /:([^]+)/;
+const styleCommentRE = /\/\*.*?\*\//gs;
+function parseStringStyle(cssText) {
+  const ret = {};
+  cssText.replace(styleCommentRE, "").split(listDelimiterRE).forEach((item) => {
+    if (item) {
+      const tmp = item.split(propertyDelimiterRE);
+      tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());
+    }
+  });
+  return ret;
+}
 function normalizeClass(value) {
   let res = "";
   if (isString$1(value)) {
@@ -25,7 +57,7 @@
         res += normalized + " ";
       }
     }
-  } else if (isObject$1(value)) {
+  } else if (isObject$2(value)) {
     for (const name2 in value) {
       if (value[name2]) {
         res += name2 + " ";
@@ -35,7 +67,7 @@
   return res.trim();
 }
 const toDisplayString = (val) => {
-  return isString$1(val) ? val : val == null ? "" : isArray$1(val) || isObject$1(val) && (val.toString === objectToString || !isFunction$1(val.toString)) ? JSON.stringify(val, replacer, 2) : String(val);
+  return isString$1(val) ? val : val == null ? "" : isArray$1(val) || isObject$2(val) && (val.toString === objectToString || !isFunction$1(val.toString)) ? JSON.stringify(val, replacer, 2) : String(val);
 };
 const replacer = (_key, val) => {
   if (val && val.__v_isRef) {
@@ -51,7 +83,7 @@
     return {
       [`Set(${val.size})`]: [...val.values()]
     };
-  } else if (isObject$1(val) && !isArray$1(val) && !isPlainObject$1(val)) {
+  } else if (isObject$2(val) && !isArray$1(val) && !isPlainObject$1(val)) {
     return String(val);
   }
   return val;
@@ -79,9 +111,9 @@
 const isFunction$1 = (val) => typeof val === "function";
 const isString$1 = (val) => typeof val === "string";
 const isSymbol = (val) => typeof val === "symbol";
-const isObject$1 = (val) => val !== null && typeof val === "object";
-const isPromise = (val) => {
-  return isObject$1(val) && isFunction$1(val.then) && isFunction$1(val.catch);
+const isObject$2 = (val) => val !== null && typeof val === "object";
+const isPromise$1 = (val) => {
+  return isObject$2(val) && isFunction$1(val.then) && isFunction$1(val.catch);
 };
 const objectToString = Object.prototype.toString;
 const toTypeString = (value) => objectToString.call(value);
@@ -466,7 +498,7 @@
       valid = value instanceof type;
     }
   } else if (expectedType === "Object") {
-    valid = isObject$1(value);
+    valid = isObject$2(value);
   } else if (expectedType === "Array") {
     valid = isArray$1(value);
   } else {
@@ -606,7 +638,7 @@
       promise = Promise.resolve(wrapperHook(hook, params));
     } else {
       const res = hook(data, params);
-      if (isPromise(res)) {
+      if (isPromise$1(res)) {
         promise = Promise.resolve(res);
       }
       if (res === false) {
@@ -701,8 +733,8 @@
     if (hasCallback(args)) {
       return wrapperReturnValue(name2, invokeApi(name2, fn, args, rest));
     }
-    return wrapperReturnValue(name2, handlePromise(new Promise((resolve, reject) => {
-      invokeApi(name2, fn, extend$1(args, { success: resolve, fail: reject }), rest);
+    return wrapperReturnValue(name2, handlePromise(new Promise((resolve2, reject) => {
+      invokeApi(name2, fn, extend$1(args, { success: resolve2, fail: reject }), rest);
     })));
   };
 }
@@ -994,7 +1026,7 @@
   getPushCidCallbacks.length = 0;
 }
 const API_GET_PUSH_CLIENT_ID = "getPushClientId";
-const getPushClientId = defineAsyncApi(API_GET_PUSH_CLIENT_ID, (_, { resolve, reject }) => {
+const getPushClientId = defineAsyncApi(API_GET_PUSH_CLIENT_ID, (_, { resolve: resolve2, reject }) => {
   Promise.resolve().then(() => {
     if (typeof enabled === "undefined") {
       enabled = false;
@@ -1003,7 +1035,7 @@
     }
     getPushCidCallbacks.push((cid2, errMsg) => {
       if (cid2) {
-        resolve({ cid: cid2 });
+        resolve2({ cid: cid2 });
       } else {
         reject(errMsg);
       }
@@ -1068,9 +1100,9 @@
     if (isFunction$1(options.success) || isFunction$1(options.fail) || isFunction$1(options.complete)) {
       return wrapperReturnValue(name2, invokeApi(name2, api, options, rest));
     }
-    return wrapperReturnValue(name2, handlePromise(new Promise((resolve, reject) => {
+    return wrapperReturnValue(name2, handlePromise(new Promise((resolve2, reject) => {
       invokeApi(name2, api, extend$1({}, options, {
-        success: resolve,
+        success: resolve2,
         fail: reject
       }), rest);
     })));
@@ -1225,7 +1257,7 @@
   let _SDKVersion = SDKVersion;
   const hostLanguage = language.replace(/_/g, "-");
   const parameters = {
-    appId: "__UNI__93C40D8",
+    appId: "__UNI__81F2BDD",
     appName: "crm_app",
     appVersion: "1.0.0",
     appVersionCode: "100",
@@ -1369,7 +1401,7 @@
       hostName: _hostName,
       hostSDKVersion: SDKVersion,
       hostTheme: theme,
-      appId: "__UNI__93C40D8",
+      appId: "__UNI__81F2BDD",
       appName: "crm_app",
       appVersion: "1.0.0",
       appVersionCode: "100",
@@ -1614,6 +1646,9 @@
       this._active = false;
     }
   }
+}
+function effectScope(detached) {
+  return new EffectScope(detached);
 }
 function recordEffectScope(effect, scope = activeEffectScope) {
   if (scope && scope.active) {
@@ -1900,7 +1935,7 @@
   return obj.hasOwnProperty(key);
 }
 function createGetter(isReadonly2 = false, shallow = false) {
-  return function get2(target, key, receiver) {
+  return function get3(target, key, receiver) {
     if (key === "__v_isReactive") {
       return !isReadonly2;
     } else if (key === "__v_isReadonly") {
@@ -1932,7 +1967,7 @@
     if (isRef(res)) {
       return targetIsArray && isIntegerKey(key) ? res : res.value;
     }
-    if (isObject$1(res)) {
+    if (isObject$2(res)) {
       return isReadonly2 ? readonly(res) : reactive(res);
     }
     return res;
@@ -2079,7 +2114,7 @@
 function set$2(key, value) {
   value = toRaw(value);
   const target = toRaw(this);
-  const { has: has2, get: get2 } = getProto(target);
+  const { has: has2, get: get3 } = getProto(target);
   let hadKey = has2.call(target, key);
   if (!hadKey) {
     key = toRaw(key);
@@ -2087,7 +2122,7 @@
   } else {
     checkIdentityKeys(target, has2, key);
   }
-  const oldValue = get2.call(target, key);
+  const oldValue = get3.call(target, key);
   target.set(key, value);
   if (!hadKey) {
     trigger(target, "add", key, value);
@@ -2098,7 +2133,7 @@
 }
 function deleteEntry(key) {
   const target = toRaw(this);
-  const { has: has2, get: get2 } = getProto(target);
+  const { has: has2, get: get3 } = getProto(target);
   let hadKey = has2.call(target, key);
   if (!hadKey) {
     key = toRaw(key);
@@ -2106,7 +2141,7 @@
   } else {
     checkIdentityKeys(target, has2, key);
   }
-  const oldValue = get2 ? get2.call(target, key) : void 0;
+  const oldValue = get3 ? get3.call(target, key) : void 0;
   const result = target.delete(key);
   if (hadKey) {
     trigger(target, "delete", key, void 0, oldValue);
@@ -2348,7 +2383,7 @@
   return createReactiveObject(target, true, shallowReadonlyHandlers, shallowReadonlyCollectionHandlers, shallowReadonlyMap);
 }
 function createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) {
-  if (!isObject$1(target)) {
+  if (!isObject$2(target)) {
     {
       console.warn(`value cannot be made reactive: ${String(target)}`);
     }
@@ -2399,6 +2434,9 @@
     /* ReactiveFlags.IS_SHALLOW */
   ]);
 }
+function isProxy(value) {
+  return isReactive(value) || isReadonly(value);
+}
 function toRaw(observed) {
   const raw = observed && observed[
     "__v_raw"
@@ -2410,8 +2448,8 @@
   def(value, "__v_skip", true);
   return value;
 }
-const toReactive = (value) => isObject$1(value) ? reactive(value) : value;
-const toReadonly = (value) => isObject$1(value) ? readonly(value) : value;
+const toReactive = (value) => isObject$2(value) ? reactive(value) : value;
+const toReadonly = (value) => isObject$2(value) ? readonly(value) : value;
 function trackRefValue(ref2) {
   if (shouldTrack && activeEffect) {
     ref2 = toRaw(ref2);
@@ -2768,7 +2806,7 @@
 function callWithAsyncErrorHandling(fn, instance, type, args) {
   if (isFunction$1(fn)) {
     const res = callWithErrorHandling(fn, instance, type, args);
-    if (res && isPromise(res)) {
+    if (res && isPromise$1(res)) {
       res.catch((err) => {
         handleError(err, instance, type);
       });
@@ -2834,8 +2872,8 @@
 let currentFlushPromise = null;
 const RECURSION_LIMIT = 100;
 function nextTick$1(fn) {
-  const p = currentFlushPromise || resolvedPromise;
-  return fn ? p.then(this ? fn.bind(this) : fn) : p;
+  const p2 = currentFlushPromise || resolvedPromise;
+  return fn ? p2.then(this ? fn.bind(this) : fn) : p2;
 }
 function findInsertionIndex(id) {
   let start = flushIndex + 1;
@@ -3171,7 +3209,7 @@
     }
   }
   if (!raw && !hasExtends) {
-    if (isObject$1(comp)) {
+    if (isObject$2(comp)) {
       cache.set(comp, null);
     }
     return null;
@@ -3181,7 +3219,7 @@
   } else {
     extend$1(normalized, raw);
   }
-  if (isObject$1(comp)) {
+  if (isObject$2(comp)) {
     cache.set(comp, normalized);
   }
   return normalized;
@@ -3248,8 +3286,8 @@
       warn(`watch() "deep" option is only respected when using the watch(source, callback, options?) signature.`);
     }
   }
-  const warnInvalidSource = (s) => {
-    warn(`Invalid watch source: `, s, `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.`);
+  const warnInvalidSource = (s2) => {
+    warn(`Invalid watch source: `, s2, `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.`);
   };
   const instance = getCurrentScope() === (currentInstance === null || currentInstance === void 0 ? void 0 : currentInstance.scope) ? currentInstance : null;
   let getter;
@@ -3263,21 +3301,21 @@
     deep = true;
   } else if (isArray$1(source)) {
     isMultiSource = true;
-    forceTrigger = source.some((s) => isReactive(s) || isShallow(s));
-    getter = () => source.map((s) => {
-      if (isRef(s)) {
-        return s.value;
-      } else if (isReactive(s)) {
-        return traverse(s);
-      } else if (isFunction$1(s)) {
+    forceTrigger = source.some((s2) => isReactive(s2) || isShallow(s2));
+    getter = () => source.map((s2) => {
+      if (isRef(s2)) {
+        return s2.value;
+      } else if (isReactive(s2)) {
+        return traverse(s2);
+      } else if (isFunction$1(s2)) {
         return callWithErrorHandling(
-          s,
+          s2,
           instance,
           2
           /* ErrorCodes.WATCH_GETTER */
         );
       } else {
-        warnInvalidSource(s);
+        warnInvalidSource(s2);
       }
     });
   } else if (isFunction$1(source)) {
@@ -3408,7 +3446,7 @@
   };
 }
 function traverse(value, seen) {
-  if (!isObject$1(value) || value[
+  if (!isObject$2(value) || value[
     "__v_skip"
     /* ReactiveFlags.SKIP */
   ]) {
@@ -3552,6 +3590,46 @@
   if (isBuiltInDirective(name2)) {
     warn("Do not use built-in directive ids as custom directive id: " + name2);
   }
+}
+const COMPONENTS = "components";
+function resolveComponent(name2, maybeSelfReference) {
+  return resolveAsset(COMPONENTS, name2, true, maybeSelfReference) || name2;
+}
+function resolveAsset(type, name2, warnMissing = true, maybeSelfReference = false) {
+  const instance = currentRenderingInstance || currentInstance;
+  if (instance) {
+    const Component2 = instance.type;
+    if (type === COMPONENTS) {
+      const selfName = getComponentName(
+        Component2,
+        false
+        /* do not include inferred name to avoid breaking existing code */
+      );
+      if (selfName && (selfName === name2 || selfName === camelize(name2) || selfName === capitalize(camelize(name2)))) {
+        return Component2;
+      }
+    }
+    const res = (
+      // local registration
+      // check instance[type] first which is resolved for options API
+      resolve(instance[type] || Component2[type], name2) || // global registration
+      resolve(instance.appContext[type], name2)
+    );
+    if (!res && maybeSelfReference) {
+      return Component2;
+    }
+    if (warnMissing && !res) {
+      const extra = type === COMPONENTS ? `
+If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``;
+      warn(`Failed to resolve ${type.slice(0, -1)}: ${name2}${extra}`);
+    }
+    return res;
+  } else {
+    warn(`resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().`);
+  }
+}
+function resolve(registry, name2) {
+  return registry && (registry[name2] || registry[camelize(name2)] || registry[capitalize(camelize(name2))]);
 }
 const getPublicInstance = (i) => {
   if (!i)
@@ -3849,10 +3927,10 @@
       warn(`The data option must be a function. Plain object usage is no longer supported.`);
     }
     const data = dataOptions.call(publicThis, publicThis);
-    if (isPromise(data)) {
+    if (isPromise$1(data)) {
       warn(`data() returned a Promise - note data() cannot be async; If you intend to perform data fetching before component renders, use async setup() + <Suspense>.`);
     }
-    if (!isObject$1(data)) {
+    if (!isObject$2(data)) {
       warn(`data() should return an object.`);
     } else {
       instance.data = reactive(data);
@@ -3875,15 +3953,15 @@
   if (computedOptions) {
     for (const key in computedOptions) {
       const opt = computedOptions[key];
-      const get2 = isFunction$1(opt) ? opt.bind(publicThis, publicThis) : isFunction$1(opt.get) ? opt.get.bind(publicThis, publicThis) : NOOP;
-      if (get2 === NOOP) {
+      const get3 = isFunction$1(opt) ? opt.bind(publicThis, publicThis) : isFunction$1(opt.get) ? opt.get.bind(publicThis, publicThis) : NOOP;
+      if (get3 === NOOP) {
         warn(`Computed property "${key}" has no getter.`);
       }
       const set2 = !isFunction$1(opt) && isFunction$1(opt.set) ? opt.set.bind(publicThis) : () => {
         warn(`Write operation failed: computed property "${key}" is readonly.`);
       };
       const c = computed({
-        get: get2,
+        get: get3,
         set: set2
       });
       Object.defineProperty(ctx, key, {
@@ -3920,11 +3998,11 @@
       );
     }
   }
-  function registerLifecycleHook(register, hook) {
+  function registerLifecycleHook(register2, hook) {
     if (isArray$1(hook)) {
-      hook.forEach((_hook) => register(_hook.bind(publicThis)));
+      hook.forEach((_hook) => register2(_hook.bind(publicThis)));
     } else if (hook) {
-      register(hook.bind(publicThis));
+      register2(hook.bind(publicThis));
     }
   }
   registerLifecycleHook(onBeforeMount, beforeMount);
@@ -3973,7 +4051,7 @@
   for (const key in injectOptions) {
     const opt = injectOptions[key];
     let injected;
-    if (isObject$1(opt)) {
+    if (isObject$2(opt)) {
       if ("default" in opt) {
         injected = inject(
           opt.from || key,
@@ -4023,7 +4101,7 @@
     }
   } else if (isFunction$1(raw)) {
     watch(getter, raw.bind(publicThis));
-  } else if (isObject$1(raw)) {
+  } else if (isObject$2(raw)) {
     if (isArray$1(raw)) {
       raw.forEach((r) => createWatcher(r, ctx, publicThis, key));
     } else {
@@ -4057,7 +4135,7 @@
     }
     mergeOptions(resolved, base, optionMergeStrategies);
   }
-  if (isObject$1(base)) {
+  if (isObject$2(base)) {
     cache.set(base, resolved);
   }
   return resolved;
@@ -4372,7 +4450,7 @@
     }
   }
   if (!raw && !hasExtends) {
-    if (isObject$1(comp)) {
+    if (isObject$2(comp)) {
       cache.set(comp, EMPTY_ARR);
     }
     return EMPTY_ARR;
@@ -4388,7 +4466,7 @@
       }
     }
   } else if (raw) {
-    if (!isObject$1(raw)) {
+    if (!isObject$2(raw)) {
       warn(`invalid props options`, raw);
     }
     for (const key in raw) {
@@ -4415,7 +4493,7 @@
     }
   }
   const res = [normalized, needCastKeys];
-  if (isObject$1(comp)) {
+  if (isObject$2(comp)) {
     cache.set(comp, res);
   }
   return res;
@@ -4491,7 +4569,7 @@
       valid = value instanceof type;
     }
   } else if (expectedType === "Object") {
-    valid = isObject$1(value);
+    valid = isObject$2(value);
   } else if (expectedType === "Array") {
     valid = isArray$1(value);
   } else if (expectedType === "null") {
@@ -4562,7 +4640,7 @@
     if (!isFunction$1(rootComponent)) {
       rootComponent = Object.assign({}, rootComponent);
     }
-    if (rootProps != null && !isObject$1(rootProps)) {
+    if (rootProps != null && !isObject$2(rootProps)) {
       warn(`root props passed to app.mount() must be an object.`);
       rootProps = null;
     }
@@ -4693,6 +4771,12 @@
 const Static = Symbol("Static");
 function isVNode(value) {
   return value ? value.__v_isVNode === true : false;
+}
+const InternalObjectKey = `__vInternal`;
+function guardReactiveProps(props) {
+  if (!props)
+    return null;
+  return isProxy(props) || InternalObjectKey in props ? extend$1({}, props) : props;
 }
 const emptyAppContext = createAppContext();
 let uid = 0;
@@ -4847,7 +4931,7 @@
     const setupResult = callWithErrorHandling(setup, instance, 0, [shallowReadonly(instance.props), setupContext]);
     resetTracking();
     unsetCurrentInstance();
-    if (isPromise(setupResult)) {
+    if (isPromise$1(setupResult)) {
       setupResult.then(unsetCurrentInstance, unsetCurrentInstance);
       {
         warn(`setup() returned a Promise, but the version of Vue you are using does not support it yet.`);
@@ -4864,7 +4948,7 @@
     {
       instance.render = setupResult;
     }
-  } else if (isObject$1(setupResult)) {
+  } else if (isObject$2(setupResult)) {
     if (isVNode(setupResult)) {
       warn(`setup() should not return VNodes directly - return a render function instead.`);
     }
@@ -5136,8 +5220,8 @@
       _resolve(instance.proxy);
     }
   });
-  return new Promise((resolve) => {
-    _resolve = resolve;
+  return new Promise((resolve2) => {
+    _resolve = resolve2;
   });
 }
 function clone$2(src, seen) {
@@ -5267,7 +5351,7 @@
   }
 }
 function toSkip(value) {
-  if (isObject$1(value)) {
+  if (isObject$2(value)) {
     markRaw(value);
   }
   return value;
@@ -5455,8 +5539,8 @@
     mpInstance.setData(diffData);
   }
 }
-function toggleRecurse({ effect, update }, allowed) {
-  effect.allowRecurse = update.allowRecurse = allowed;
+function toggleRecurse({ effect, update: update3 }, allowed) {
+  effect.allowRecurse = update3.allowRecurse = allowed;
 }
 function setupRenderEffect(instance) {
   const updateScopedSlots = componentUpdateScopedSlotsFn.bind(instance);
@@ -5511,24 +5595,24 @@
     instance.scope
     // track it in component's effect scope
   );
-  const update = instance.update = effect.run.bind(effect);
-  update.id = instance.uid;
+  const update3 = instance.update = effect.run.bind(effect);
+  update3.id = instance.uid;
   toggleRecurse(instance, true);
   {
     effect.onTrack = instance.rtc ? (e2) => invokeArrayFns$1(instance.rtc, e2) : void 0;
     effect.onTrigger = instance.rtg ? (e2) => invokeArrayFns$1(instance.rtg, e2) : void 0;
-    update.ownerInstance = instance;
+    update3.ownerInstance = instance;
   }
-  update();
+  update3();
 }
 function unmountComponent(instance) {
-  const { bum, scope, update, um } = instance;
+  const { bum, scope, update: update3, um } = instance;
   if (bum) {
     invokeArrayFns$1(bum);
   }
   scope.stop();
-  if (update) {
-    update.active = false;
+  if (update3) {
+    update3.active = false;
   }
   if (um) {
     queuePostRenderEffect(um);
@@ -5730,6 +5814,11 @@
   }
 }
 const propsCaches = /* @__PURE__ */ Object.create(null);
+function renderProps(props) {
+  const { uid: uid2, __counter } = getCurrentInstance();
+  const propsId = (propsCaches[uid2] || (propsCaches[uid2] = [])).push(guardReactiveProps(props)) - 1;
+  return uid2 + "," + propsId + "," + __counter;
+}
 function pruneComponentPropsCache(uid2) {
   delete propsCaches[uid2];
 }
@@ -5803,7 +5892,7 @@
       setTimeout(invoke);
     } else {
       const res = invoke();
-      if (e2.type === "input" && (isArray$1(res) || isPromise(res))) {
+      if (e2.type === "input" && (isArray$1(res) || isPromise$1(res))) {
         return;
       }
       return res;
@@ -5875,7 +5964,7 @@
     for (let i = 0; i < source; i++) {
       ret[i] = renderItem(i + 1, i, i);
     }
-  } else if (isObject$1(source)) {
+  } else if (isObject$2(source)) {
     if (source[Symbol.iterator]) {
       ret = Array.from(source, (item, i) => renderItem(item, i, i));
     } else {
@@ -5891,11 +5980,29 @@
   }
   return ret;
 }
+function stringifyStyle(value) {
+  if (isString$1(value)) {
+    return value;
+  }
+  return stringify(normalizeStyle(value));
+}
+function stringify(styles) {
+  let ret = "";
+  if (!styles || isString$1(styles)) {
+    return ret;
+  }
+  for (const key in styles) {
+    ret += `${key.startsWith(`--`) ? key : hyphenate(key)}:${styles[key]};`;
+  }
+  return ret;
+}
 const o = (value, key) => vOn(value, key);
 const f = (source, renderItem) => vFor(source, renderItem);
+const s = (value) => stringifyStyle(value);
 const e = (target, ...sources) => extend$1(target, ...sources);
 const n = (value) => normalizeClass(value);
 const t = (val) => toDisplayString(val);
+const p = (props) => renderProps(props);
 function createApp$1(rootComponent, rootProps = null) {
   rootComponent && (rootComponent.mpType = "app");
   return createVueApp(rootComponent, rootProps).use(plugin);
@@ -6489,7 +6596,7 @@
   };
   if (isArray$1(vueOptions.mixins)) {
     vueOptions.mixins.forEach((item) => {
-      if (isObject$1(item.options)) {
+      if (isObject$2(item.options)) {
         extend$1(options, item.options);
       }
     });
@@ -6811,7 +6918,7 @@
 function isRegExp(x) {
   return x instanceof RegExp;
 }
-function isObject(x) {
+function isObject$1(x) {
   return !!(x && typeof x === "object" && x.constructor === Object && !isComplex(x) && !isFraction(x));
 }
 function isNull(x) {
@@ -7004,7 +7111,7 @@
     throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
   }
   var normalCompletion = true, didErr = false, err;
-  return { s: function s() {
+  return { s: function s2() {
     it = it.call(o2);
   }, n: function n3() {
     var step = it.next();
@@ -7310,15 +7417,15 @@
   }
   function stringifyParams(params) {
     var separator = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : ",";
-    return params.map(function(p) {
-      return p.name;
+    return params.map(function(p2) {
+      return p2.name;
     }).join(separator);
   }
   function parseParam(param) {
     var restParam = param.indexOf("...") === 0;
     var types = !restParam ? param : param.length > 3 ? param.slice(3) : "any";
-    var typeDefs = types.split("|").map(function(s) {
-      return findType(s.trim());
+    var typeDefs = types.split("|").map(function(s2) {
+      return findType(s2.trim());
     });
     var hasAny = false;
     var paramName = restParam ? "..." : "";
@@ -7772,8 +7879,8 @@
   }
   function compileArgsPreprocessing(params, fn) {
     var fnConvert = fn;
-    if (params.some(function(p) {
-      return p.hasConversion;
+    if (params.some(function(p2) {
+      return p2.hasConversion;
     })) {
       var restParam = hasRestParam(params);
       var compiledConversions = params.map(compileArgConversion);
@@ -8037,8 +8144,8 @@
             name: spName,
             fn: functionIndex
           });
-          if (sp.every(function(p) {
-            return !p.hasConversion;
+          if (sp.every(function(p2) {
+            return !p2.hasConversion;
           })) {
             signaturesMap[spName] = functionIndex;
           }
@@ -8056,20 +8163,20 @@
     }
     preliminarySignatures.sort(compareSignatures);
     var resolvedFunctions = resolveReferences(originalFunctions, signaturesMap, theTypedFn);
-    var s;
-    for (s in signaturesMap) {
-      if (Object.prototype.hasOwnProperty.call(signaturesMap, s)) {
-        signaturesMap[s] = resolvedFunctions[signaturesMap[s]];
+    var s2;
+    for (s2 in signaturesMap) {
+      if (Object.prototype.hasOwnProperty.call(signaturesMap, s2)) {
+        signaturesMap[s2] = resolvedFunctions[signaturesMap[s2]];
       }
     }
     var signatures = [];
     var internalSignatureMap = /* @__PURE__ */ new Map();
     for (var _i3 = 0, _preliminarySignature = preliminarySignatures; _i3 < _preliminarySignature.length; _i3++) {
-      s = _preliminarySignature[_i3];
-      if (!internalSignatureMap.has(s.name)) {
-        s.fn = resolvedFunctions[s.fn];
-        signatures.push(s);
-        internalSignatureMap.set(s.name, s);
+      s2 = _preliminarySignature[_i3];
+      if (!internalSignatureMap.has(s2.name)) {
+        s2.fn = resolvedFunctions[s2.fn];
+        signatures.push(s2);
+        internalSignatureMap.set(s2.name, s2);
       }
     }
     var ok0 = signatures[0] && signatures[0].params.length <= 2 && !hasRestParam(signatures[0].params);
@@ -8111,11 +8218,11 @@
     var len5 = ok5 ? signatures[5].params.length : -1;
     var iStart = allOk ? 6 : 0;
     var iEnd = signatures.length;
-    var tests = signatures.map(function(s2) {
-      return s2.test;
+    var tests = signatures.map(function(s3) {
+      return s3.test;
     });
-    var fns = signatures.map(function(s2) {
-      return s2.implementation;
+    var fns = signatures.map(function(s3) {
+      return s3.implementation;
     });
     var generic = function generic2() {
       for (var _i5 = iStart; _i5 < iEnd; _i5++) {
@@ -8183,8 +8290,8 @@
     return Array.prototype.concat.apply([], arr.map(callback));
   }
   function referTo() {
-    var references = initial(arguments).map(function(s) {
-      return stringifyParams(parseSignature(s));
+    var references = initial(arguments).map(function(s2) {
+      return stringifyParams(parseSignature(s2));
     });
     var callback = last(arguments);
     if (typeof callback !== "function") {
@@ -8530,17 +8637,17 @@
   var splitValue = splitNumber(value);
   var rounded = typeof precision === "number" ? roundDigits(splitValue, splitValue.exponent + 1 + precision) : splitValue;
   var c = rounded.coefficients;
-  var p = rounded.exponent + 1;
-  var pp = p + (precision || 0);
+  var p2 = rounded.exponent + 1;
+  var pp = p2 + (precision || 0);
   if (c.length < pp) {
     c = c.concat(zeros(pp - c.length));
   }
-  if (p < 0) {
-    c = zeros(-p + 1).concat(c);
-    p = 1;
+  if (p2 < 0) {
+    c = zeros(-p2 + 1).concat(c);
+    p2 = 1;
   }
-  if (p < c.length) {
-    c.splice(p, 0, p === 0 ? "0." : ".");
+  if (p2 < c.length) {
+    c.splice(p2, 0, p2 === 0 ? "0." : ".");
   }
   return rounded.sign + c.join("");
 }
@@ -8863,12 +8970,12 @@
 IndexError.prototype.name = "IndexError";
 IndexError.prototype.isIndexError = true;
 function arraySize(x) {
-  var s = [];
+  var s2 = [];
   while (Array.isArray(x)) {
-    s.push(x.length);
+    s2.push(x.length);
     x = x[0];
   }
-  return s;
+  return s2;
 }
 function _validate(array, size2, dim) {
   var i;
@@ -9021,16 +9128,16 @@
   return tmpArray;
 }
 function unsqueeze(array, dims, outer, size2) {
-  var s = size2 || arraySize(array);
+  var s2 = size2 || arraySize(array);
   if (outer) {
     for (var i = 0; i < outer; i++) {
       array = [array];
-      s.unshift(1);
+      s2.unshift(1);
     }
   }
   array = _unsqueeze(array, dims, 0);
-  while (s.length < dims) {
-    s.push(1);
+  while (s2.length < dims) {
+    s2.push(1);
   }
   return array;
 }
@@ -9240,7 +9347,7 @@
     // what to differentiate over must (currently) be a variable.
     {
       name: "identifier",
-      test: (s) => isString && /^(?:[A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE3F\uDE40\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2\uDF02\uDF04-\uDF10\uDF12-\uDF33\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883\uD885-\uD887][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2F\uDC41-\uDC46]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD32\uDD50-\uDD52\uDD55\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD837[\uDF00-\uDF1E\uDF25-\uDF2A]|\uD838[\uDC30-\uDC6D\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDCD0-\uDCEB\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF39\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A\uDF50-\uDFFF]|\uD888[\uDC00-\uDFAF])(?:[0-9A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE3F\uDE40\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2\uDF02\uDF04-\uDF10\uDF12-\uDF33\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883\uD885-\uD887][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2F\uDC41-\uDC46]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD32\uDD50-\uDD52\uDD55\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD837[\uDF00-\uDF1E\uDF25-\uDF2A]|\uD838[\uDC30-\uDC6D\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDCD0-\uDCEB\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF39\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A\uDF50-\uDFFF]|\uD888[\uDC00-\uDFAF])*$/.test(s)
+      test: (s2) => isString && /^(?:[A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE3F\uDE40\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2\uDF02\uDF04-\uDF10\uDF12-\uDF33\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883\uD885-\uD887][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2F\uDC41-\uDC46]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD32\uDD50-\uDD52\uDD55\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD837[\uDF00-\uDF1E\uDF25-\uDF2A]|\uD838[\uDC30-\uDC6D\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDCD0-\uDCEB\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF39\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A\uDF50-\uDFFF]|\uD888[\uDC00-\uDFAF])(?:[0-9A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE3F\uDE40\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2\uDF02\uDF04-\uDF10\uDF12-\uDF33\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883\uD885-\uD887][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2F\uDC41-\uDC46]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD32\uDD50-\uDD52\uDD55\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD837[\uDF00-\uDF1E\uDF25-\uDF2A]|\uD838[\uDC30-\uDC6D\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDCD0-\uDCEB\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF39\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A\uDF50-\uDFFF]|\uD888[\uDC00-\uDFAF])*$/.test(s2)
     },
     {
       name: "string",
@@ -9376,7 +9483,7 @@
     },
     {
       name: "Object",
-      test: isObject
+      test: isObject$1
     }
     // order 'Object' last, it matches on other classes too
   ]);
@@ -9695,28 +9802,28 @@
   return finalise(quadrant == 2 || quadrant == 3 ? x.neg() : x, pr, rm, true);
 };
 P.cubeRoot = P.cbrt = function() {
-  var e2, m, n3, r, rep, s, sd, t2, t3, t3plusx, x = this, Ctor = x.constructor;
+  var e2, m, n3, r, rep, s2, sd, t2, t3, t3plusx, x = this, Ctor = x.constructor;
   if (!x.isFinite() || x.isZero())
     return new Ctor(x);
   external = false;
-  s = x.s * mathpow(x.s * x, 1 / 3);
-  if (!s || Math.abs(s) == 1 / 0) {
+  s2 = x.s * mathpow(x.s * x, 1 / 3);
+  if (!s2 || Math.abs(s2) == 1 / 0) {
     n3 = digitsToString(x.d);
     e2 = x.e;
-    if (s = (e2 - n3.length + 1) % 3)
-      n3 += s == 1 || s == -2 ? "0" : "00";
-    s = mathpow(n3, 1 / 3);
+    if (s2 = (e2 - n3.length + 1) % 3)
+      n3 += s2 == 1 || s2 == -2 ? "0" : "00";
+    s2 = mathpow(n3, 1 / 3);
     e2 = mathfloor((e2 + 1) / 3) - (e2 % 3 == (e2 < 0 ? -1 : 2));
-    if (s == 1 / 0) {
+    if (s2 == 1 / 0) {
       n3 = "5e" + e2;
     } else {
-      n3 = s.toExponential();
+      n3 = s2.toExponential();
       n3 = n3.slice(0, n3.indexOf("e") + 1) + e2;
     }
     r = new Ctor(n3);
     r.s = x.s;
   } else {
-    r = new Ctor(s.toString());
+    r = new Ctor(s2.toString());
   }
   sd = (e2 = Ctor.precision) + 3;
   for (; ; ) {
@@ -10276,27 +10383,27 @@
   return finalise(quadrant > 2 ? x.neg() : x, pr, rm, true);
 };
 P.squareRoot = P.sqrt = function() {
-  var m, n3, sd, r, rep, t2, x = this, d = x.d, e2 = x.e, s = x.s, Ctor = x.constructor;
-  if (s !== 1 || !d || !d[0]) {
-    return new Ctor(!s || s < 0 && (!d || d[0]) ? NaN : d ? x : 1 / 0);
+  var m, n3, sd, r, rep, t2, x = this, d = x.d, e2 = x.e, s2 = x.s, Ctor = x.constructor;
+  if (s2 !== 1 || !d || !d[0]) {
+    return new Ctor(!s2 || s2 < 0 && (!d || d[0]) ? NaN : d ? x : 1 / 0);
   }
   external = false;
-  s = Math.sqrt(+x);
-  if (s == 0 || s == 1 / 0) {
+  s2 = Math.sqrt(+x);
+  if (s2 == 0 || s2 == 1 / 0) {
     n3 = digitsToString(d);
     if ((n3.length + e2) % 2 == 0)
       n3 += "0";
-    s = Math.sqrt(n3);
+    s2 = Math.sqrt(n3);
     e2 = mathfloor((e2 + 1) / 2) - (e2 < 0 || e2 % 2);
-    if (s == 1 / 0) {
+    if (s2 == 1 / 0) {
       n3 = "5e" + e2;
     } else {
-      n3 = s.toExponential();
+      n3 = s2.toExponential();
       n3 = n3.slice(0, n3.indexOf("e") + 1) + e2;
     }
     r = new Ctor(n3);
   } else {
-    r = new Ctor(s.toString());
+    r = new Ctor(s2.toString());
   }
   sd = (e2 = Ctor.precision) + 3;
   for (; ; ) {
@@ -10517,7 +10624,7 @@
   return toStringBinary(this, 8, sd, rm);
 };
 P.toPower = P.pow = function(y) {
-  var e2, k, pr, r, rm, s, x = this, Ctor = x.constructor, yn = +(y = new Ctor(y));
+  var e2, k, pr, r, rm, s2, x = this, Ctor = x.constructor, yn = +(y = new Ctor(y));
   if (!x.d || !y.d || !x.d[0] || !y.d[0])
     return new Ctor(mathpow(+x, yn));
   x = new Ctor(x);
@@ -10532,21 +10639,21 @@
     r = intPow(Ctor, x, k, pr);
     return y.s < 0 ? new Ctor(1).div(r) : finalise(r, pr, rm);
   }
-  s = x.s;
-  if (s < 0) {
+  s2 = x.s;
+  if (s2 < 0) {
     if (e2 < y.d.length - 1)
       return new Ctor(NaN);
     if ((y.d[e2] & 1) == 0)
-      s = 1;
+      s2 = 1;
     if (x.e == 0 && x.d[0] == 1 && x.d.length == 1) {
-      x.s = s;
+      x.s = s2;
       return x;
     }
   }
   k = mathpow(+x, yn);
   e2 = k == 0 || !isFinite(k) ? mathfloor(yn * (Math.log("0." + digitsToString(x.d)) / Math.LN10 + x.e + 1)) : new Ctor(k + "").e;
   if (e2 > Ctor.maxE + 1 || e2 < Ctor.minE - 1)
-    return new Ctor(e2 > 0 ? s / 0 : 0);
+    return new Ctor(e2 > 0 ? s2 / 0 : 0);
   external = false;
   Ctor.rounding = x.s = 1;
   k = Math.min(12, (e2 + "").length);
@@ -10561,7 +10668,7 @@
       }
     }
   }
-  r.s = s;
+  r.s = s2;
   external = true;
   Ctor.rounding = rm;
   return finalise(r, pr, rm);
@@ -11249,7 +11356,7 @@
   return x;
 }
 function parseOther(x, str) {
-  var base, Ctor, divisor, i, isFloat, len, p, xd, xe;
+  var base, Ctor, divisor, i, isFloat, len, p2, xd, xe;
   if (str.indexOf("_") > -1) {
     str = str.replace(/(\d)_(?=\d)/g, "$1");
     if (isDecimal.test(str))
@@ -11273,7 +11380,7 @@
   }
   i = str.search(/p/i);
   if (i > 0) {
-    p = +str.slice(i + 1);
+    p2 = +str.slice(i + 1);
     str = str.substring(2, i);
   } else {
     str = str.slice(2);
@@ -11298,8 +11405,8 @@
   external = false;
   if (isFloat)
     x = divide$1(x, divisor, len * 4);
-  if (p)
-    x = x.times(Math.abs(p) < 54 ? mathpow(2, p) : Decimal.pow(2, p));
+  if (p2)
+    x = x.times(Math.abs(p2) < 54 ? mathpow(2, p2) : Decimal.pow(2, p2));
   external = true;
   return x;
 }
@@ -11542,7 +11649,7 @@
 function config2(obj) {
   if (!obj || typeof obj !== "object")
     throw Error(decimalError + "Object expected");
-  var i, p, v, useDefaults = obj.defaults === true, ps = [
+  var i, p2, v, useDefaults = obj.defaults === true, ps = [
     "precision",
     1,
     MAX_DIGITS,
@@ -11566,30 +11673,30 @@
     9
   ];
   for (i = 0; i < ps.length; i += 3) {
-    if (p = ps[i], useDefaults)
-      this[p] = DEFAULTS[p];
-    if ((v = obj[p]) !== void 0) {
+    if (p2 = ps[i], useDefaults)
+      this[p2] = DEFAULTS[p2];
+    if ((v = obj[p2]) !== void 0) {
       if (mathfloor(v) === v && v >= ps[i + 1] && v <= ps[i + 2])
-        this[p] = v;
+        this[p2] = v;
       else
-        throw Error(invalidArgument + p + ": " + v);
+        throw Error(invalidArgument + p2 + ": " + v);
     }
   }
-  if (p = "crypto", useDefaults)
-    this[p] = DEFAULTS[p];
-  if ((v = obj[p]) !== void 0) {
+  if (p2 = "crypto", useDefaults)
+    this[p2] = DEFAULTS[p2];
+  if ((v = obj[p2]) !== void 0) {
     if (v === true || v === false || v === 0 || v === 1) {
       if (v) {
         if (typeof crypto != "undefined" && crypto && (crypto.getRandomValues || crypto.randomBytes)) {
-          this[p] = true;
+          this[p2] = true;
         } else {
           throw Error(cryptoUnavailable);
         }
       } else {
-        this[p] = false;
+        this[p2] = false;
       }
     } else {
-      throw Error(invalidArgument + p + ": " + v);
+      throw Error(invalidArgument + p2 + ": " + v);
     }
   }
   return this;
@@ -11601,7 +11708,7 @@
   return new this(x).cosh();
 }
 function clone(obj) {
-  var i, p, ps;
+  var i, p2, ps;
   function Decimal2(v) {
     var e2, i2, t2, x = this;
     if (!(x instanceof Decimal2))
@@ -11738,8 +11845,8 @@
     if (obj.defaults !== true) {
       ps = ["precision", "rounding", "toExpNeg", "toExpPos", "maxE", "minE", "modulo", "crypto"];
       for (i = 0; i < ps.length; )
-        if (!obj.hasOwnProperty(p = ps[i++]))
-          obj[p] = this[p];
+        if (!obj.hasOwnProperty(p2 = ps[i++]))
+          obj[p2] = this[p2];
     }
   }
   Decimal2.config(obj);
@@ -13092,11 +13199,11 @@
       "n": 0,
       "d": 1
     };
-    function assign(n3, s) {
+    function assign(n3, s2) {
       if (isNaN(n3 = parseInt(n3, 10))) {
         throw Fraction2["InvalidParameter"];
       }
-      return n3 * s;
+      return n3 * s2;
     }
     function newFraction(n3, d) {
       if (d === 0) {
@@ -13114,13 +13221,13 @@
       var factors = {};
       var n3 = num;
       var i = 2;
-      var s = 4;
-      while (s <= n3) {
+      var s2 = 4;
+      while (s2 <= n3) {
         while (n3 % i === 0) {
           n3 /= i;
           factors[i] = (factors[i] || 0) + 1;
         }
-        s += 1 + 2 * i++;
+        s2 += 1 + 2 * i++;
       }
       if (n3 !== num) {
         if (n3 > 1)
@@ -13131,7 +13238,7 @@
       return factors;
     }
     var parse = function(p1, p2) {
-      var n3 = 0, d = 1, s = 1;
+      var n3 = 0, d = 1, s2 = 1;
       var v = 0, w = 0, x = 0, y = 1, z = 1;
       var A = 0, B = 1;
       var C = 1, D = 1;
@@ -13142,7 +13249,7 @@
       else if (p2 !== void 0) {
         n3 = p1;
         d = p2;
-        s = n3 * d;
+        s2 = n3 * d;
         if (n3 % 1 !== 0 || d % 1 !== 0) {
           throw Fraction2["NonIntegerParameter"];
         }
@@ -13161,12 +13268,12 @@
             } else {
               throw Fraction2["InvalidParameter"];
             }
-            s = n3 * d;
+            s2 = n3 * d;
             break;
           }
           case "number": {
             if (p1 < 0) {
-              s = p1;
+              s2 = p1;
               p1 = -p1;
             }
             if (p1 % 1 === 0) {
@@ -13218,41 +13325,41 @@
             if (B === null)
               throw Fraction2["InvalidParameter"];
             if (B[A] === "-") {
-              s = -1;
+              s2 = -1;
               A++;
             } else if (B[A] === "+") {
               A++;
             }
             if (B.length === A + 1) {
-              w = assign(B[A++], s);
+              w = assign(B[A++], s2);
             } else if (B[A + 1] === "." || B[A] === ".") {
               if (B[A] !== ".") {
-                v = assign(B[A++], s);
+                v = assign(B[A++], s2);
               }
               A++;
               if (A + 1 === B.length || B[A + 1] === "(" && B[A + 3] === ")" || B[A + 1] === "'" && B[A + 3] === "'") {
-                w = assign(B[A], s);
+                w = assign(B[A], s2);
                 y = Math.pow(10, B[A].length);
                 A++;
               }
               if (B[A] === "(" && B[A + 2] === ")" || B[A] === "'" && B[A + 2] === "'") {
-                x = assign(B[A + 1], s);
+                x = assign(B[A + 1], s2);
                 z = Math.pow(10, B[A + 1].length) - 1;
                 A += 3;
               }
             } else if (B[A + 1] === "/" || B[A + 1] === ":") {
-              w = assign(B[A], s);
+              w = assign(B[A], s2);
               y = assign(B[A + 2], 1);
               A += 3;
             } else if (B[A + 3] === "/" && B[A + 1] === " ") {
-              v = assign(B[A], s);
-              w = assign(B[A + 2], s);
+              v = assign(B[A], s2);
+              w = assign(B[A + 2], s2);
               y = assign(B[A + 4], 1);
               A += 5;
             }
             if (B.length <= A) {
               d = y * z;
-              s = /* void */
+              s2 = /* void */
               n3 = x + d * v + z * w;
               break;
             }
@@ -13263,7 +13370,7 @@
       if (d === 0) {
         throw Fraction2["DivisionByZero"];
       }
-      P2["s"] = s < 0 ? -1 : 1;
+      P2["s"] = s2 < 0 ? -1 : 1;
       P2["n"] = Math.abs(n3);
       P2["d"] = Math.abs(d);
     };
@@ -13569,12 +13676,12 @@
         var thisABS = this["abs"]();
         var cont = thisABS["toContinued"]();
         for (var i = 1; i < cont.length; i++) {
-          var s = newFraction(cont[i - 1], 1);
+          var s2 = newFraction(cont[i - 1], 1);
           for (var k = i - 2; k >= 0; k--) {
-            s = s["inverse"]()["add"](cont[k]);
+            s2 = s2["inverse"]()["add"](cont[k]);
           }
-          if (s["sub"](thisABS)["abs"]().valueOf() < eps) {
-            return s["mul"](this["s"]);
+          if (s2["sub"](thisABS)["abs"]().valueOf() < eps) {
+            return s2["mul"](this["s"]);
           }
         }
         return this;
@@ -14139,8 +14246,8 @@
   };
   DenseMatrix2.prototype.rows = function() {
     var result = [];
-    var s = this.size();
-    if (s.length !== 2) {
+    var s2 = this.size();
+    if (s2.length !== 2) {
       throw new TypeError("Rows can only be returned for a 2D matrix.");
     }
     var data = this._data;
@@ -14152,8 +14259,8 @@
   DenseMatrix2.prototype.columns = function() {
     var _this = this;
     var result = [];
-    var s = this.size();
-    if (s.length !== 2) {
+    var s2 = this.size();
+    if (s2.length !== 2) {
       throw new TypeError("Rows can only be returned for a 2D matrix.");
     }
     var data = this._data;
@@ -14161,7 +14268,7 @@
       var col = data.map((row) => [row[i2]]);
       result.push(new DenseMatrix2(col, _this._datatype));
     };
-    for (var i = 0; i < s[1]; i++) {
+    for (var i = 0; i < s2[1]; i++) {
       _loop(i);
     }
     return result;
@@ -14219,14 +14326,14 @@
     if (size2.length !== 2) {
       throw new Error("Only two dimensions matrix are supported");
     }
-    size2 = size2.map(function(s) {
-      if (isBigNumber(s)) {
-        s = s.toNumber();
+    size2 = size2.map(function(s2) {
+      if (isBigNumber(s2)) {
+        s2 = s2.toNumber();
       }
-      if (!isNumber(s) || !isInteger$1(s) || s < 1) {
+      if (!isNumber(s2) || !isInteger$1(s2) || s2 < 1) {
         throw new Error("Size values must be positive integers");
       }
-      return s;
+      return s2;
     });
     if (k) {
       if (isBigNumber(k)) {
@@ -14845,10 +14952,10 @@
         for (j = 0; j < c; j++) {
           matrix2._ptr[j] = matrix2._ptr[j] + n3;
           k = matrix2._ptr[j + 1] + n3;
-          var p = 0;
-          for (i = r; i < rows; i++, p++) {
-            matrix2._values.splice(k + p, 0, value);
-            matrix2._index.splice(k + p, 0, i);
+          var p2 = 0;
+          for (i = r; i < rows; i++, p2++) {
+            matrix2._values.splice(k + p2, 0, value);
+            matrix2._index.splice(k + p2, 0, i);
             n3++;
           }
         }
@@ -15156,14 +15263,14 @@
     if (size2.length !== 2) {
       throw new Error("Only two dimensions matrix are supported");
     }
-    size2 = size2.map(function(s) {
-      if (isBigNumber(s)) {
-        s = s.toNumber();
+    size2 = size2.map(function(s2) {
+      if (isBigNumber(s2)) {
+        s2 = s2.toNumber();
       }
-      if (!isNumber(s) || !isInteger$1(s) || s < 1) {
+      if (!isNumber(s2) || !isInteger$1(s2) || s2 < 1) {
         throw new Error("Size values must be positive integers");
       }
-      return s;
+      return s2;
     });
     if (k) {
       if (isBigNumber(k)) {
@@ -15575,12 +15682,12 @@
     typed: typed2,
     equalScalar: equalScalar2
   } = _ref;
-  return function matAlgo11xS0s(s, b, callback, inverse) {
-    var avalues = s._values;
-    var aindex = s._index;
-    var aptr = s._ptr;
-    var asize = s._size;
-    var adt = s._datatype;
+  return function matAlgo11xS0s(s2, b, callback, inverse) {
+    var avalues = s2._values;
+    var aindex = s2._index;
+    var aptr = s2._ptr;
+    var asize = s2._size;
+    var adt = s2._datatype;
     if (!avalues) {
       throw new Error("Cannot perform operation on Pattern Sparse Matrix and Scalar value");
     }
@@ -15612,7 +15719,7 @@
       }
     }
     cptr[columns] = cindex.length;
-    return s.createSparseMatrix({
+    return s2.createSparseMatrix({
       values: cvalues,
       index: cindex,
       ptr: cptr,
@@ -15628,12 +15735,12 @@
     typed: typed2,
     DenseMatrix: DenseMatrix2
   } = _ref;
-  return function matAlgo12xSfs(s, b, callback, inverse) {
-    var avalues = s._values;
-    var aindex = s._index;
-    var aptr = s._ptr;
-    var asize = s._size;
-    var adt = s._datatype;
+  return function matAlgo12xSfs(s2, b, callback, inverse) {
+    var avalues = s2._values;
+    var aindex = s2._index;
+    var aptr = s2._ptr;
+    var asize = s2._size;
+    var adt = s2._datatype;
     if (!avalues) {
       throw new Error("Cannot perform operation on Pattern Sparse Matrix and Scalar value");
     }
@@ -15698,15 +15805,15 @@
       datatype: dt
     });
   };
-  function _iterate(f2, level, s, n3, av, bv, inverse) {
+  function _iterate(f2, level, s2, n3, av, bv, inverse) {
     var cv = [];
-    if (level === s.length - 1) {
+    if (level === s2.length - 1) {
       for (var i = 0; i < n3; i++) {
         cv[i] = inverse ? f2(bv, av[i]) : f2(av[i], bv);
       }
     } else {
       for (var j = 0; j < n3; j++) {
-        cv[j] = _iterate(f2, level + 1, s, s[level + 1], av[j], bv, inverse);
+        cv[j] = _iterate(f2, level + 1, s2, s2[level + 1], av[j], bv, inverse);
       }
     }
     return cv;
@@ -15876,12 +15983,12 @@
     typed: typed2,
     DenseMatrix: DenseMatrix2
   } = _ref;
-  return function matAlgo10xSids(s, b, callback, inverse) {
-    var avalues = s._values;
-    var aindex = s._index;
-    var aptr = s._ptr;
-    var asize = s._size;
-    var adt = s._datatype;
+  return function matAlgo10xSids(s2, b, callback, inverse) {
+    var avalues = s2._values;
+    var aindex = s2._index;
+    var aptr = s2._ptr;
+    var asize = s2._size;
+    var adt = s2._datatype;
     if (!avalues) {
       throw new Error("Cannot perform operation on Pattern Sparse Matrix and Scalar value");
     }
@@ -15939,11 +16046,11 @@
     if (asize.length !== bsize.length) {
       throw new DimensionError(asize.length, bsize.length);
     }
-    for (var s = 0; s < asize.length; s++) {
-      if (asize[s] !== bsize[s]) {
+    for (var s2 = 0; s2 < asize.length; s2++) {
+      if (asize[s2] !== bsize[s2]) {
         throw new RangeError("Dimension mismatch. Matrix A (" + asize + ") must match Matrix B (" + bsize + ")");
       }
-      csize[s] = asize[s];
+      csize[s2] = asize[s2];
     }
     var dt;
     var cf = callback;
@@ -15958,15 +16065,15 @@
       datatype: dt
     });
   };
-  function _iterate(f2, level, s, n3, av, bv) {
+  function _iterate(f2, level, s2, n3, av, bv) {
     var cv = [];
-    if (level === s.length - 1) {
+    if (level === s2.length - 1) {
       for (var i = 0; i < n3; i++) {
         cv[i] = f2(av[i], bv[i]);
       }
     } else {
       for (var j = 0; j < n3; j++) {
-        cv[j] = _iterate(f2, level + 1, s, s[level + 1], av[j], bv[j]);
+        cv[j] = _iterate(f2, level + 1, s2, s2[level + 1], av[j], bv[j]);
       }
     }
     return cv;
@@ -16612,9 +16719,9 @@
         }
       }
     }
-    for (var p1 = cindex.length, p = 0; p < p1; p++) {
-      var ic = cindex[p];
-      cvalues[p] = x[ic];
+    for (var p1 = cindex.length, p2 = 0; p2 < p1; p2++) {
+      var ic = cindex[p2];
+      cvalues[p2] = x[ic];
     }
     cptr[1] = cindex.length;
     return a.createSparseMatrix({
@@ -16680,9 +16787,9 @@
           }
         }
       }
-      for (var p0 = cptr[jb], p1 = cindex.length, p = p0; p < p1; p++) {
-        var ic = cindex[p];
-        cvalues[p] = x[ic];
+      for (var p0 = cptr[jb], p1 = cindex.length, p2 = p0; p2 < p1; p2++) {
+        var ic = cindex[p2];
+        cvalues[p2] = x[ic];
       }
     }
     cptr[bcolumns] = cindex.length;
@@ -16748,9 +16855,9 @@
         }
       }
       if (values) {
-        for (var p0 = cptr[jb], p1 = cindex.length, p = p0; p < p1; p++) {
-          var ic = cindex[p];
-          cvalues[p] = x[ic];
+        for (var p0 = cptr[jb], p1 = cindex.length, p2 = p0; p2 < p1; p2++) {
+          var ic = cindex[p2];
+          cvalues[p2] = x[ic];
         }
       }
     }
@@ -17442,7 +17549,7 @@
     }
   });
   function _inv(mat, rows, cols) {
-    var r, s, f2, value, temp;
+    var r, s2, f2, value, temp;
     if (rows === 1) {
       value = mat[0][0];
       if (value === 0) {
@@ -17492,20 +17599,20 @@
           if (r !== c) {
             if (Ar[c] !== 0) {
               f2 = divideScalar2(unaryMinus2(Ar[c]), Ac[c]);
-              for (s = c; s < cols; s++) {
-                Ar[s] = addScalar2(Ar[s], multiply2(f2, Ac[s]));
+              for (s2 = c; s2 < cols; s2++) {
+                Ar[s2] = addScalar2(Ar[s2], multiply2(f2, Ac[s2]));
               }
-              for (s = 0; s < cols; s++) {
-                Br[s] = addScalar2(Br[s], multiply2(f2, Bc[s]));
+              for (s2 = 0; s2 < cols; s2++) {
+                Br[s2] = addScalar2(Br[s2], multiply2(f2, Bc[s2]));
               }
             }
           } else {
             f2 = Ac[c];
-            for (s = c; s < cols; s++) {
-              Ar[s] = divideScalar2(Ar[s], f2);
+            for (s2 = c; s2 < cols; s2++) {
+              Ar[s2] = divideScalar2(Ar[s2], f2);
             }
-            for (s = 0; s < cols; s++) {
-              Br[s] = divideScalar2(Br[s], f2);
+            for (s2 = 0; s2 < cols; s2++) {
+              Br[s2] = divideScalar2(Br[s2], f2);
             }
           }
         }
@@ -17701,6 +17808,675 @@
   multiply,
   typed
 });
+/*!
+ * vuex v4.1.0
+ * (c) 2022 Evan You
+ * @license MIT
+ */
+var storeKey = "store";
+function forEachValue(obj, fn) {
+  Object.keys(obj).forEach(function(key) {
+    return fn(obj[key], key);
+  });
+}
+function isObject(obj) {
+  return obj !== null && typeof obj === "object";
+}
+function isPromise(val) {
+  return val && typeof val.then === "function";
+}
+function assert(condition, msg) {
+  if (!condition) {
+    throw new Error("[vuex] " + msg);
+  }
+}
+function partial(fn, arg) {
+  return function() {
+    return fn(arg);
+  };
+}
+function genericSubscribe(fn, subs, options) {
+  if (subs.indexOf(fn) < 0) {
+    options && options.prepend ? subs.unshift(fn) : subs.push(fn);
+  }
+  return function() {
+    var i = subs.indexOf(fn);
+    if (i > -1) {
+      subs.splice(i, 1);
+    }
+  };
+}
+function resetStore(store, hot) {
+  store._actions = /* @__PURE__ */ Object.create(null);
+  store._mutations = /* @__PURE__ */ Object.create(null);
+  store._wrappedGetters = /* @__PURE__ */ Object.create(null);
+  store._modulesNamespaceMap = /* @__PURE__ */ Object.create(null);
+  var state = store.state;
+  installModule(store, state, [], store._modules.root, true);
+  resetStoreState(store, state, hot);
+}
+function resetStoreState(store, state, hot) {
+  var oldState = store._state;
+  var oldScope = store._scope;
+  store.getters = {};
+  store._makeLocalGettersCache = /* @__PURE__ */ Object.create(null);
+  var wrappedGetters = store._wrappedGetters;
+  var computedObj = {};
+  var computedCache = {};
+  var scope = effectScope(true);
+  scope.run(function() {
+    forEachValue(wrappedGetters, function(fn, key) {
+      computedObj[key] = partial(fn, store);
+      computedCache[key] = computed(function() {
+        return computedObj[key]();
+      });
+      Object.defineProperty(store.getters, key, {
+        get: function() {
+          return computedCache[key].value;
+        },
+        enumerable: true
+        // for local getters
+      });
+    });
+  });
+  store._state = reactive({
+    data: state
+  });
+  store._scope = scope;
+  if (store.strict) {
+    enableStrictMode(store);
+  }
+  if (oldState) {
+    if (hot) {
+      store._withCommit(function() {
+        oldState.data = null;
+      });
+    }
+  }
+  if (oldScope) {
+    oldScope.stop();
+  }
+}
+function installModule(store, rootState, path, module2, hot) {
+  var isRoot = !path.length;
+  var namespace = store._modules.getNamespace(path);
+  if (module2.namespaced) {
+    if (store._modulesNamespaceMap[namespace] && true) {
+      console.error("[vuex] duplicate namespace " + namespace + " for the namespaced module " + path.join("/"));
+    }
+    store._modulesNamespaceMap[namespace] = module2;
+  }
+  if (!isRoot && !hot) {
+    var parentState = getNestedState(rootState, path.slice(0, -1));
+    var moduleName = path[path.length - 1];
+    store._withCommit(function() {
+      {
+        if (moduleName in parentState) {
+          console.warn(
+            '[vuex] state field "' + moduleName + '" was overridden by a module with the same name at "' + path.join(".") + '"'
+          );
+        }
+      }
+      parentState[moduleName] = module2.state;
+    });
+  }
+  var local = module2.context = makeLocalContext(store, namespace, path);
+  module2.forEachMutation(function(mutation, key) {
+    var namespacedType = namespace + key;
+    registerMutation(store, namespacedType, mutation, local);
+  });
+  module2.forEachAction(function(action, key) {
+    var type = action.root ? key : namespace + key;
+    var handler = action.handler || action;
+    registerAction(store, type, handler, local);
+  });
+  module2.forEachGetter(function(getter, key) {
+    var namespacedType = namespace + key;
+    registerGetter(store, namespacedType, getter, local);
+  });
+  module2.forEachChild(function(child, key) {
+    installModule(store, rootState, path.concat(key), child, hot);
+  });
+}
+function makeLocalContext(store, namespace, path) {
+  var noNamespace = namespace === "";
+  var local = {
+    dispatch: noNamespace ? store.dispatch : function(_type, _payload, _options) {
+      var args = unifyObjectStyle(_type, _payload, _options);
+      var payload = args.payload;
+      var options = args.options;
+      var type = args.type;
+      if (!options || !options.root) {
+        type = namespace + type;
+        if (!store._actions[type]) {
+          console.error("[vuex] unknown local action type: " + args.type + ", global type: " + type);
+          return;
+        }
+      }
+      return store.dispatch(type, payload);
+    },
+    commit: noNamespace ? store.commit : function(_type, _payload, _options) {
+      var args = unifyObjectStyle(_type, _payload, _options);
+      var payload = args.payload;
+      var options = args.options;
+      var type = args.type;
+      if (!options || !options.root) {
+        type = namespace + type;
+        if (!store._mutations[type]) {
+          console.error("[vuex] unknown local mutation type: " + args.type + ", global type: " + type);
+          return;
+        }
+      }
+      store.commit(type, payload, options);
+    }
+  };
+  Object.defineProperties(local, {
+    getters: {
+      get: noNamespace ? function() {
+        return store.getters;
+      } : function() {
+        return makeLocalGetters(store, namespace);
+      }
+    },
+    state: {
+      get: function() {
+        return getNestedState(store.state, path);
+      }
+    }
+  });
+  return local;
+}
+function makeLocalGetters(store, namespace) {
+  if (!store._makeLocalGettersCache[namespace]) {
+    var gettersProxy = {};
+    var splitPos = namespace.length;
+    Object.keys(store.getters).forEach(function(type) {
+      if (type.slice(0, splitPos) !== namespace) {
+        return;
+      }
+      var localType = type.slice(splitPos);
+      Object.defineProperty(gettersProxy, localType, {
+        get: function() {
+          return store.getters[type];
+        },
+        enumerable: true
+      });
+    });
+    store._makeLocalGettersCache[namespace] = gettersProxy;
+  }
+  return store._makeLocalGettersCache[namespace];
+}
+function registerMutation(store, type, handler, local) {
+  var entry = store._mutations[type] || (store._mutations[type] = []);
+  entry.push(function wrappedMutationHandler(payload) {
+    handler.call(store, local.state, payload);
+  });
+}
+function registerAction(store, type, handler, local) {
+  var entry = store._actions[type] || (store._actions[type] = []);
+  entry.push(function wrappedActionHandler(payload) {
+    var res = handler.call(store, {
+      dispatch: local.dispatch,
+      commit: local.commit,
+      getters: local.getters,
+      state: local.state,
+      rootGetters: store.getters,
+      rootState: store.state
+    }, payload);
+    if (!isPromise(res)) {
+      res = Promise.resolve(res);
+    }
+    if (store._devtoolHook) {
+      return res.catch(function(err) {
+        store._devtoolHook.emit("vuex:error", err);
+        throw err;
+      });
+    } else {
+      return res;
+    }
+  });
+}
+function registerGetter(store, type, rawGetter, local) {
+  if (store._wrappedGetters[type]) {
+    {
+      console.error("[vuex] duplicate getter key: " + type);
+    }
+    return;
+  }
+  store._wrappedGetters[type] = function wrappedGetter(store2) {
+    return rawGetter(
+      local.state,
+      // local state
+      local.getters,
+      // local getters
+      store2.state,
+      // root state
+      store2.getters
+      // root getters
+    );
+  };
+}
+function enableStrictMode(store) {
+  watch(function() {
+    return store._state.data;
+  }, function() {
+    {
+      assert(store._committing, "do not mutate vuex store state outside mutation handlers.");
+    }
+  }, { deep: true, flush: "sync" });
+}
+function getNestedState(state, path) {
+  return path.reduce(function(state2, key) {
+    return state2[key];
+  }, state);
+}
+function unifyObjectStyle(type, payload, options) {
+  if (isObject(type) && type.type) {
+    options = payload;
+    payload = type;
+    type = type.type;
+  }
+  {
+    assert(typeof type === "string", "expects string as the type, but found " + typeof type + ".");
+  }
+  return { type, payload, options };
+}
+var Module = function Module2(rawModule, runtime) {
+  this.runtime = runtime;
+  this._children = /* @__PURE__ */ Object.create(null);
+  this._rawModule = rawModule;
+  var rawState = rawModule.state;
+  this.state = (typeof rawState === "function" ? rawState() : rawState) || {};
+};
+var prototypeAccessors$1 = { namespaced: { configurable: true } };
+prototypeAccessors$1.namespaced.get = function() {
+  return !!this._rawModule.namespaced;
+};
+Module.prototype.addChild = function addChild(key, module2) {
+  this._children[key] = module2;
+};
+Module.prototype.removeChild = function removeChild(key) {
+  delete this._children[key];
+};
+Module.prototype.getChild = function getChild(key) {
+  return this._children[key];
+};
+Module.prototype.hasChild = function hasChild(key) {
+  return key in this._children;
+};
+Module.prototype.update = function update(rawModule) {
+  this._rawModule.namespaced = rawModule.namespaced;
+  if (rawModule.actions) {
+    this._rawModule.actions = rawModule.actions;
+  }
+  if (rawModule.mutations) {
+    this._rawModule.mutations = rawModule.mutations;
+  }
+  if (rawModule.getters) {
+    this._rawModule.getters = rawModule.getters;
+  }
+};
+Module.prototype.forEachChild = function forEachChild(fn) {
+  forEachValue(this._children, fn);
+};
+Module.prototype.forEachGetter = function forEachGetter(fn) {
+  if (this._rawModule.getters) {
+    forEachValue(this._rawModule.getters, fn);
+  }
+};
+Module.prototype.forEachAction = function forEachAction(fn) {
+  if (this._rawModule.actions) {
+    forEachValue(this._rawModule.actions, fn);
+  }
+};
+Module.prototype.forEachMutation = function forEachMutation(fn) {
+  if (this._rawModule.mutations) {
+    forEachValue(this._rawModule.mutations, fn);
+  }
+};
+Object.defineProperties(Module.prototype, prototypeAccessors$1);
+var ModuleCollection = function ModuleCollection2(rawRootModule) {
+  this.register([], rawRootModule, false);
+};
+ModuleCollection.prototype.get = function get2(path) {
+  return path.reduce(function(module2, key) {
+    return module2.getChild(key);
+  }, this.root);
+};
+ModuleCollection.prototype.getNamespace = function getNamespace(path) {
+  var module2 = this.root;
+  return path.reduce(function(namespace, key) {
+    module2 = module2.getChild(key);
+    return namespace + (module2.namespaced ? key + "/" : "");
+  }, "");
+};
+ModuleCollection.prototype.update = function update$1(rawRootModule) {
+  update2([], this.root, rawRootModule);
+};
+ModuleCollection.prototype.register = function register(path, rawModule, runtime) {
+  var this$1$1 = this;
+  if (runtime === void 0)
+    runtime = true;
+  {
+    assertRawModule(path, rawModule);
+  }
+  var newModule = new Module(rawModule, runtime);
+  if (path.length === 0) {
+    this.root = newModule;
+  } else {
+    var parent = this.get(path.slice(0, -1));
+    parent.addChild(path[path.length - 1], newModule);
+  }
+  if (rawModule.modules) {
+    forEachValue(rawModule.modules, function(rawChildModule, key) {
+      this$1$1.register(path.concat(key), rawChildModule, runtime);
+    });
+  }
+};
+ModuleCollection.prototype.unregister = function unregister(path) {
+  var parent = this.get(path.slice(0, -1));
+  var key = path[path.length - 1];
+  var child = parent.getChild(key);
+  if (!child) {
+    {
+      console.warn(
+        "[vuex] trying to unregister module '" + key + "', which is not registered"
+      );
+    }
+    return;
+  }
+  if (!child.runtime) {
+    return;
+  }
+  parent.removeChild(key);
+};
+ModuleCollection.prototype.isRegistered = function isRegistered(path) {
+  var parent = this.get(path.slice(0, -1));
+  var key = path[path.length - 1];
+  if (parent) {
+    return parent.hasChild(key);
+  }
+  return false;
+};
+function update2(path, targetModule, newModule) {
+  {
+    assertRawModule(path, newModule);
+  }
+  targetModule.update(newModule);
+  if (newModule.modules) {
+    for (var key in newModule.modules) {
+      if (!targetModule.getChild(key)) {
+        {
+          console.warn(
+            "[vuex] trying to add a new module '" + key + "' on hot reloading, manual reload is needed"
+          );
+        }
+        return;
+      }
+      update2(
+        path.concat(key),
+        targetModule.getChild(key),
+        newModule.modules[key]
+      );
+    }
+  }
+}
+var functionAssert = {
+  assert: function(value) {
+    return typeof value === "function";
+  },
+  expected: "function"
+};
+var objectAssert = {
+  assert: function(value) {
+    return typeof value === "function" || typeof value === "object" && typeof value.handler === "function";
+  },
+  expected: 'function or object with "handler" function'
+};
+var assertTypes = {
+  getters: functionAssert,
+  mutations: functionAssert,
+  actions: objectAssert
+};
+function assertRawModule(path, rawModule) {
+  Object.keys(assertTypes).forEach(function(key) {
+    if (!rawModule[key]) {
+      return;
+    }
+    var assertOptions = assertTypes[key];
+    forEachValue(rawModule[key], function(value, type) {
+      assert(
+        assertOptions.assert(value),
+        makeAssertionMessage(path, key, type, value, assertOptions.expected)
+      );
+    });
+  });
+}
+function makeAssertionMessage(path, key, type, value, expected) {
+  var buf = key + " should be " + expected + ' but "' + key + "." + type + '"';
+  if (path.length > 0) {
+    buf += ' in module "' + path.join(".") + '"';
+  }
+  buf += " is " + JSON.stringify(value) + ".";
+  return buf;
+}
+var Store = function Store2(options) {
+  var this$1$1 = this;
+  if (options === void 0)
+    options = {};
+  {
+    assert(typeof Promise !== "undefined", "vuex requires a Promise polyfill in this browser.");
+    assert(this instanceof Store2, "store must be called with the new operator.");
+  }
+  var plugins = options.plugins;
+  if (plugins === void 0)
+    plugins = [];
+  var strict = options.strict;
+  if (strict === void 0)
+    strict = false;
+  var devtools2 = options.devtools;
+  this._committing = false;
+  this._actions = /* @__PURE__ */ Object.create(null);
+  this._actionSubscribers = [];
+  this._mutations = /* @__PURE__ */ Object.create(null);
+  this._wrappedGetters = /* @__PURE__ */ Object.create(null);
+  this._modules = new ModuleCollection(options);
+  this._modulesNamespaceMap = /* @__PURE__ */ Object.create(null);
+  this._subscribers = [];
+  this._makeLocalGettersCache = /* @__PURE__ */ Object.create(null);
+  this._scope = null;
+  this._devtools = devtools2;
+  var store = this;
+  var ref2 = this;
+  var dispatch2 = ref2.dispatch;
+  var commit2 = ref2.commit;
+  this.dispatch = function boundDispatch(type, payload) {
+    return dispatch2.call(store, type, payload);
+  };
+  this.commit = function boundCommit(type, payload, options2) {
+    return commit2.call(store, type, payload, options2);
+  };
+  this.strict = strict;
+  var state = this._modules.root.state;
+  installModule(this, state, [], this._modules.root);
+  resetStoreState(this, state);
+  plugins.forEach(function(plugin2) {
+    return plugin2(this$1$1);
+  });
+};
+var prototypeAccessors = { state: { configurable: true } };
+Store.prototype.install = function install(app, injectKey) {
+  app.provide(injectKey || storeKey, this);
+  app.config.globalProperties.$store = this;
+  this._devtools !== void 0 ? this._devtools : true;
+};
+prototypeAccessors.state.get = function() {
+  return this._state.data;
+};
+prototypeAccessors.state.set = function(v) {
+  {
+    assert(false, "use store.replaceState() to explicit replace store state.");
+  }
+};
+Store.prototype.commit = function commit(_type, _payload, _options) {
+  var this$1$1 = this;
+  var ref2 = unifyObjectStyle(_type, _payload, _options);
+  var type = ref2.type;
+  var payload = ref2.payload;
+  var options = ref2.options;
+  var mutation = { type, payload };
+  var entry = this._mutations[type];
+  if (!entry) {
+    {
+      console.error("[vuex] unknown mutation type: " + type);
+    }
+    return;
+  }
+  this._withCommit(function() {
+    entry.forEach(function commitIterator(handler) {
+      handler(payload);
+    });
+  });
+  this._subscribers.slice().forEach(function(sub2) {
+    return sub2(mutation, this$1$1.state);
+  });
+  if (options && options.silent) {
+    console.warn(
+      "[vuex] mutation type: " + type + ". Silent option has been removed. Use the filter functionality in the vue-devtools"
+    );
+  }
+};
+Store.prototype.dispatch = function dispatch(_type, _payload) {
+  var this$1$1 = this;
+  var ref2 = unifyObjectStyle(_type, _payload);
+  var type = ref2.type;
+  var payload = ref2.payload;
+  var action = { type, payload };
+  var entry = this._actions[type];
+  if (!entry) {
+    {
+      console.error("[vuex] unknown action type: " + type);
+    }
+    return;
+  }
+  try {
+    this._actionSubscribers.slice().filter(function(sub2) {
+      return sub2.before;
+    }).forEach(function(sub2) {
+      return sub2.before(action, this$1$1.state);
+    });
+  } catch (e2) {
+    {
+      console.warn("[vuex] error in before action subscribers: ");
+      console.error(e2);
+    }
+  }
+  var result = entry.length > 1 ? Promise.all(entry.map(function(handler) {
+    return handler(payload);
+  })) : entry[0](payload);
+  return new Promise(function(resolve2, reject) {
+    result.then(function(res) {
+      try {
+        this$1$1._actionSubscribers.filter(function(sub2) {
+          return sub2.after;
+        }).forEach(function(sub2) {
+          return sub2.after(action, this$1$1.state);
+        });
+      } catch (e2) {
+        {
+          console.warn("[vuex] error in after action subscribers: ");
+          console.error(e2);
+        }
+      }
+      resolve2(res);
+    }, function(error) {
+      try {
+        this$1$1._actionSubscribers.filter(function(sub2) {
+          return sub2.error;
+        }).forEach(function(sub2) {
+          return sub2.error(action, this$1$1.state, error);
+        });
+      } catch (e2) {
+        {
+          console.warn("[vuex] error in error action subscribers: ");
+          console.error(e2);
+        }
+      }
+      reject(error);
+    });
+  });
+};
+Store.prototype.subscribe = function subscribe(fn, options) {
+  return genericSubscribe(fn, this._subscribers, options);
+};
+Store.prototype.subscribeAction = function subscribeAction(fn, options) {
+  var subs = typeof fn === "function" ? { before: fn } : fn;
+  return genericSubscribe(subs, this._actionSubscribers, options);
+};
+Store.prototype.watch = function watch$1(getter, cb, options) {
+  var this$1$1 = this;
+  {
+    assert(typeof getter === "function", "store.watch only accepts a function.");
+  }
+  return watch(function() {
+    return getter(this$1$1.state, this$1$1.getters);
+  }, cb, Object.assign({}, options));
+};
+Store.prototype.replaceState = function replaceState(state) {
+  var this$1$1 = this;
+  this._withCommit(function() {
+    this$1$1._state.data = state;
+  });
+};
+Store.prototype.registerModule = function registerModule(path, rawModule, options) {
+  if (options === void 0)
+    options = {};
+  if (typeof path === "string") {
+    path = [path];
+  }
+  {
+    assert(Array.isArray(path), "module path must be a string or an Array.");
+    assert(path.length > 0, "cannot register the root module by using registerModule.");
+  }
+  this._modules.register(path, rawModule);
+  installModule(this, this.state, path, this._modules.get(path), options.preserveState);
+  resetStoreState(this, this.state);
+};
+Store.prototype.unregisterModule = function unregisterModule(path) {
+  var this$1$1 = this;
+  if (typeof path === "string") {
+    path = [path];
+  }
+  {
+    assert(Array.isArray(path), "module path must be a string or an Array.");
+  }
+  this._modules.unregister(path);
+  this._withCommit(function() {
+    var parentState = getNestedState(this$1$1.state, path.slice(0, -1));
+    delete parentState[path[path.length - 1]];
+  });
+  resetStore(this);
+};
+Store.prototype.hasModule = function hasModule(path) {
+  if (typeof path === "string") {
+    path = [path];
+  }
+  {
+    assert(Array.isArray(path), "module path must be a string or an Array.");
+  }
+  return this._modules.isRegistered(path);
+};
+Store.prototype.hotUpdate = function hotUpdate(newOptions) {
+  this._modules.update(newOptions);
+  resetStore(this, true);
+};
+Store.prototype._withCommit = function _withCommit(fn) {
+  var committing = this._committing;
+  this._committing = true;
+  fn();
+  this._committing = committing;
+};
+Object.defineProperties(Store.prototype, prototypeAccessors);
 exports._export_sfc = _export_sfc;
 exports.add = add;
 exports.bignumber = bignumber;
@@ -17712,5 +18488,8 @@
 exports.multiply = multiply;
 exports.n = n;
 exports.o = o;
+exports.p = p;
+exports.resolveComponent = resolveComponent;
+exports.s = s;
 exports.subtract = subtract;
 exports.t = t;

--
Gitblit v1.9.3