From 2422e5f1db622ea3c2bb5185bf00a95528e47062 Mon Sep 17 00:00:00 2001 From: Robert Kozik Date: Tue, 12 Mar 2024 20:20:44 +0100 Subject: [PATCH] update expensify-common version (#226) --- parser/index.ts | 2 +- parser/package-lock.json | 44 ++++++++++----------- parser/package.json | 2 +- parser/patches/expensify-common+1.0.0.patch | 42 ++++++++++++-------- parser/react-native-live-markdown-parser.js | 8 ++-- src/MarkdownTextInput.web.tsx | 1 - 6 files changed, 53 insertions(+), 46 deletions(-) diff --git a/parser/index.ts b/parser/index.ts index 08496071..d05c5c6b 100644 --- a/parser/index.ts +++ b/parser/index.ts @@ -157,7 +157,7 @@ function parseTreeToTextAndRanges(tree: StackItem): [string, Range[]] { appendSyntax(')'); } } else { - throw new Error(`Unknown tag: {node.tag}`); + throw new Error(`Unknown tag: ${node.tag}`); } } } diff --git a/parser/package-lock.json b/parser/package-lock.json index da104838..1c4b54f7 100644 --- a/parser/package-lock.json +++ b/parser/package-lock.json @@ -10,7 +10,7 @@ "hasInstallScript": true, "license": "ISC", "dependencies": { - "expensify-common": "git+ssh://git@github.com/Expensify/expensify-common.git#a8ed0f8e1be3a1e09016e07a74cfd13c85bbc167", + "expensify-common": "git+ssh://git@github.com/Expensify/expensify-common.git#77d0b150ba6bfbe7a64b3c3e30b65592b2e58c4a", "patch-package": "^8.0.0", "underscore": "^1.13.6" }, @@ -1869,9 +1869,9 @@ "dev": true }, "node_modules/classnames": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.4.0.tgz", - "integrity": "sha512-lWxiIlphgAhTLN657pwU/ofFxsUTOWc2CRIFeoV5st0MGRJHStUnWIUJgDHxjUO/F0mXzGufXIM4Lfu/8h+MpA==" + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.0.tgz", + "integrity": "sha512-FQuRlyKinxrb5gwJlfVASbSrDlikDJ07426TrfPsdGLvtochowmkbnSFdQGJ2aoXrSetq5KqGV9emvWpy+91xA==" }, "node_modules/clipboard": { "version": "2.0.11", @@ -2213,11 +2213,11 @@ }, "node_modules/expensify-common": { "version": "1.0.0", - "resolved": "git+ssh://git@github.com/Expensify/expensify-common.git#a8ed0f8e1be3a1e09016e07a74cfd13c85bbc167", - "integrity": "sha512-3d/JHWgeS+LFPRahCAXdLwnBYQk4XUYybtgCm7VsdmMDtCeGUTksLsEY7F1Zqm+ULqZjmCtYwAi8IPKy0fsSOw==", + "resolved": "git+ssh://git@github.com/Expensify/expensify-common.git#77d0b150ba6bfbe7a64b3c3e30b65592b2e58c4a", + "integrity": "sha512-x8W172bdClKzuTj2J1Bf2ZZy8Bdcbj9M6AZ/jedSxd48oRl4p/pFVoAfOfIi7UuRFhrg01SE03qHnseYTPqcKQ==", "license": "MIT", "dependencies": { - "classnames": "2.4.0", + "classnames": "2.5.0", "clipboard": "2.0.11", "html-entities": "^2.4.0", "jquery": "3.6.0", @@ -2226,7 +2226,7 @@ "prop-types": "15.8.1", "react": "16.12.0", "react-dom": "16.12.0", - "semver": "^7.5.2", + "semver": "^7.6.0", "simply-deferred": "git+https://github.com/Expensify/simply-deferred.git#77a08a95754660c7bd6e0b6979fdf84e8e831bf5", "ua-parser-js": "^1.0.37", "underscore": "1.13.6" @@ -3977,9 +3977,9 @@ "integrity": "sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA==" }, "node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -5811,9 +5811,9 @@ "dev": true }, "classnames": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.4.0.tgz", - "integrity": "sha512-lWxiIlphgAhTLN657pwU/ofFxsUTOWc2CRIFeoV5st0MGRJHStUnWIUJgDHxjUO/F0mXzGufXIM4Lfu/8h+MpA==" + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.0.tgz", + "integrity": "sha512-FQuRlyKinxrb5gwJlfVASbSrDlikDJ07426TrfPsdGLvtochowmkbnSFdQGJ2aoXrSetq5KqGV9emvWpy+91xA==" }, "clipboard": { "version": "2.0.11", @@ -6067,11 +6067,11 @@ } }, "expensify-common": { - "version": "git+ssh://git@github.com/Expensify/expensify-common.git#a8ed0f8e1be3a1e09016e07a74cfd13c85bbc167", - "integrity": "sha512-3d/JHWgeS+LFPRahCAXdLwnBYQk4XUYybtgCm7VsdmMDtCeGUTksLsEY7F1Zqm+ULqZjmCtYwAi8IPKy0fsSOw==", - "from": "expensify-common@git+ssh://git@github.com/Expensify/expensify-common.git#a8ed0f8e1be3a1e09016e07a74cfd13c85bbc167", + "version": "git+ssh://git@github.com/Expensify/expensify-common.git#77d0b150ba6bfbe7a64b3c3e30b65592b2e58c4a", + "integrity": "sha512-x8W172bdClKzuTj2J1Bf2ZZy8Bdcbj9M6AZ/jedSxd48oRl4p/pFVoAfOfIi7UuRFhrg01SE03qHnseYTPqcKQ==", + "from": "expensify-common@git+ssh://git@github.com/Expensify/expensify-common.git#77d0b150ba6bfbe7a64b3c3e30b65592b2e58c4a", "requires": { - "classnames": "2.4.0", + "classnames": "2.5.0", "clipboard": "2.0.11", "html-entities": "^2.4.0", "jquery": "3.6.0", @@ -6080,7 +6080,7 @@ "prop-types": "15.8.1", "react": "16.12.0", "react-dom": "16.12.0", - "semver": "^7.5.2", + "semver": "^7.6.0", "simply-deferred": "git+https://github.com/Expensify/simply-deferred.git#77a08a95754660c7bd6e0b6979fdf84e8e831bf5", "ua-parser-js": "^1.0.37", "underscore": "1.13.6" @@ -7383,9 +7383,9 @@ "integrity": "sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA==" }, "semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "requires": { "lru-cache": "^6.0.0" }, diff --git a/parser/package.json b/parser/package.json index 477e67e9..b06925af 100644 --- a/parser/package.json +++ b/parser/package.json @@ -20,7 +20,7 @@ "typescript": "^5.3.3" }, "dependencies": { - "expensify-common": "git+ssh://git@github.com/Expensify/expensify-common.git#a8ed0f8e1be3a1e09016e07a74cfd13c85bbc167", + "expensify-common": "git+ssh://git@github.com/Expensify/expensify-common.git#77d0b150ba6bfbe7a64b3c3e30b65592b2e58c4a", "patch-package": "^8.0.0", "underscore": "^1.13.6" } diff --git a/parser/patches/expensify-common+1.0.0.patch b/parser/patches/expensify-common+1.0.0.patch index 92923bfd..95b1c9a4 100644 --- a/parser/patches/expensify-common+1.0.0.patch +++ b/parser/patches/expensify-common+1.0.0.patch @@ -1,18 +1,26 @@ diff --git a/node_modules/expensify-common/lib/CONST.jsx b/node_modules/expensify-common/lib/CONST.jsx -index 4225717..0ae0962 100644 +index a8efadf..8b7ca6d 100644 --- a/node_modules/expensify-common/lib/CONST.jsx +++ b/node_modules/expensify-common/lib/CONST.jsx -@@ -351,7 +351,7 @@ export const CONST = { +@@ -356,14 +356,14 @@ export const CONST = { * * @type RegExp */ - EMOJIS: /[\p{Extended_Pictographic}\u200d\u{1f1e6}-\u{1f1ff}\u{1f3fb}-\u{1f3ff}\u{e0020}-\u{e007f}\u20E3\uFE0F]|[#*0-9]\uFE0F?\u20E3/gu, + EMOJIS: /[\u200d\u{1f1e6}-\u{1f1ff}\u{1f3fb}-\u{1f3ff}\u{e0020}-\u{e007f}\u20E3\uFE0F]|[#*0-9]\uFE0F?\u20E3/gu, + + /** + * Regex matching an text containing an Emoji that can be a single emoji or made up by some different emojis + * + * @type RegExp + */ +- EMOJI_RULE: /[\p{Extended_Pictographic}](\u200D[\p{Extended_Pictographic}]|[\u{1F3FB}-\u{1F3FF}]|[\u{E0020}-\u{E007F}]|\uFE0F|\u20E3)*|[\u{1F1E6}-\u{1F1FF}]{2}|[#*0-9]\uFE0F?\u20E3/gu, ++ EMOJI_RULE: /^(?!x)x/gu, }, REPORT: { diff --git a/node_modules/expensify-common/lib/ExpensiMark.js b/node_modules/expensify-common/lib/ExpensiMark.js -index 4e149ca..c94b383 100644 +index f835d84..c65d2c6 100644 --- a/node_modules/expensify-common/lib/ExpensiMark.js +++ b/node_modules/expensify-common/lib/ExpensiMark.js @@ -7,8 +7,8 @@ const MARKDOWN_LINK_REGEX = new RegExp(`\\[([^\\][]*(?:\\[[^\\][]*][^\\][]*)*)]\ @@ -26,16 +34,16 @@ index 4e149ca..c94b383 100644 /** * The list of regex replacements to do on a comment. Check the link regex is first so links are processed * before other delimiters -@@ -457,7 +457,7 @@ export default class ExpensiMark { - * @type {Object[]} +@@ -489,7 +489,7 @@ export default class ExpensiMark { + * @type {Number} */ - this.shouldKeepWhitespaceRules = this.rules.filter(rule => !this.whitespaceRulesToDisable.includes(rule.name)).map(rule => rule.name); + this.currentQuoteDepth = 0; - } + }, /** * Replaces markdown with html elements -@@ -503,7 +503,7 @@ export default class ExpensiMark { +@@ -535,7 +535,7 @@ export default class ExpensiMark { } return replacedText; @@ -44,7 +52,7 @@ index 4e149ca..c94b383 100644 /** * Checks matched URLs for validity and replace valid links with html elements -@@ -610,7 +610,7 @@ export default class ExpensiMark { +@@ -642,7 +642,7 @@ export default class ExpensiMark { } return replacedText; @@ -53,7 +61,7 @@ index 4e149ca..c94b383 100644 /** * Checks matched Emails for validity and replace valid links with html elements -@@ -649,7 +649,7 @@ export default class ExpensiMark { +@@ -681,7 +681,7 @@ export default class ExpensiMark { replacedText = replacedText.concat(textToCheck.substr(startIndex)); } return replacedText; @@ -62,7 +70,7 @@ index 4e149ca..c94b383 100644 /** * replace block element with '\n' if : -@@ -689,7 +689,7 @@ export default class ExpensiMark { +@@ -721,7 +721,7 @@ export default class ExpensiMark { }); return joinedText; @@ -71,7 +79,7 @@ index 4e149ca..c94b383 100644 /** * Replaces HTML with markdown -@@ -716,7 +716,7 @@ export default class ExpensiMark { +@@ -748,7 +748,7 @@ export default class ExpensiMark { generatedMarkdown = generatedMarkdown.replace(rule.regex, rule.replacement); }); return Str.htmlDecode(this.replaceBlockElementWithNewLine(generatedMarkdown)); @@ -80,7 +88,7 @@ index 4e149ca..c94b383 100644 /** * Convert HTML to text -@@ -735,7 +735,7 @@ export default class ExpensiMark { +@@ -767,7 +767,7 @@ export default class ExpensiMark { // We use 'htmlDecode' instead of 'unescape' to replace entities like ' ' replacedText = Str.htmlDecode(replacedText); return replacedText; @@ -89,7 +97,7 @@ index 4e149ca..c94b383 100644 /** * Modify text for Quotes replacing chevrons with html elements -@@ -798,7 +798,7 @@ export default class ExpensiMark { +@@ -830,7 +830,7 @@ export default class ExpensiMark { replacedText = textToCheck; } return replacedText; @@ -98,7 +106,7 @@ index 4e149ca..c94b383 100644 /** * Format the content of blockquote if the text matches the regex or else just return the original text -@@ -819,7 +819,7 @@ export default class ExpensiMark { +@@ -851,7 +851,7 @@ export default class ExpensiMark { return replacement(textToFormat); } return textToCheck; @@ -107,7 +115,7 @@ index 4e149ca..c94b383 100644 /** * Check if the input text includes only the open or the close tag of an element. -@@ -858,7 +858,7 @@ export default class ExpensiMark { +@@ -890,7 +890,7 @@ export default class ExpensiMark { // If there are any tags left in the stack, they're unclosed return tagStack.length !== 0; @@ -116,7 +124,7 @@ index 4e149ca..c94b383 100644 /** * @param {String} comment -@@ -880,7 +880,7 @@ export default class ExpensiMark { +@@ -912,7 +912,7 @@ export default class ExpensiMark { console.warn('Error parsing url in ExpensiMark.extractLinksInMarkdownComment', {error: e}); return undefined; } @@ -125,7 +133,7 @@ index 4e149ca..c94b383 100644 /** * Compares two markdown comments and returns a list of the links removed in a new comment. -@@ -895,3 +895,5 @@ export default class ExpensiMark { +@@ -927,3 +927,5 @@ export default class ExpensiMark { return linksInOld === undefined || linksInNew === undefined ? [] : _.difference(linksInOld, linksInNew); } } diff --git a/parser/react-native-live-markdown-parser.js b/parser/react-native-live-markdown-parser.js index 07483982..74c2968c 100644 --- a/parser/react-native-live-markdown-parser.js +++ b/parser/react-native-live-markdown-parser.js @@ -11,10 +11,10 @@ __p+='`),c}),n+=`'; `,s="obj";n=`var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');}; `+n+`return __p; `;var i;try{i=new Function(s,"_",n)}catch(c){throw c.source=n,c}var l=function(c){return i.call(this,c,f)};return l.source="function("+s+`){ -`+n+"}",l}function je(r,e,t){e=_(e);var a=e.length;if(!a)return A(t)?t.call(r):t;for(var o=0;o1)b(i,e-1,t,a),o=a.length;else for(var l=0,c=i.length;le?(a&&(clearTimeout(a),a=null),i=p,s=r.apply(o,n),a||(o=n=null)):!a&&t.trailing!==!1&&(a=setTimeout(l,u)),s};return c.cancel=function(){clearTimeout(a),i=0,a=o=n=null},c}function nt(r,e,t){var a,o,n,s,i,l=function(){var p=X()-o;e>p?a=setTimeout(l,e-p):(a=null,t||(s=r.apply(i,n)),a||(n=i=null))},c=h(function(p){return i=this,n=p,o=X(),a||(a=setTimeout(l,e),t&&(s=r.apply(i,n))),s});return c.cancel=function(){clearTimeout(a),a=n=i=null},c}function it(r,e){return V(e,r)}function j(r){return function(){return!r.apply(this,arguments)}}function st(){var r=arguments,e=r.length-1;return function(){for(var t=e,a=r[e].apply(this,arguments);t--;)a=r[t].call(this,a);return a}}function lt(r,e){return function(){if(--r<1)return e.apply(this,arguments)}}function qr(r,e){var t;return function(){return--r>0&&(t=e.apply(this,arguments)),r<=1&&(e=null),t}}var fa=V(qr,2);function _r(r,e,t){e=E(e,t);for(var a=g(r),o,n=0,s=a.length;n0?0:o-1;n>=0&&n0?s=n>=0?n:Math.max(n+i,s):i=n>=0?Math.min(n+1,i):n+i+1;else if(t&&n&&i)return n=t(a,o),a[n]===o?n:-1;if(o!==o)return n=e(G.call(a,s,i),Or),n>=0?n+s:-1;for(n=r>0?s:i-1;n>=0&&n0?0:i-1;for(n||(o=t[s?s[l]:l],l+=r);l>=0&&l=3;return e(t,P(a,n,4),o,s)}}var de=kr(1);var ut=kr(-1);function B(r,e,t){var a=[];return e=E(e,t),T(r,function(o,n,s){e(o,n,s)&&a.push(o)}),a}function pt(r,e,t){return B(r,j(E(e)),t)}function Ee(r,e,t){e=E(e,t);for(var a=!S(r)&&g(r),o=(a||r).length,n=0;n=0}var da=h(function(r,e,t){var a,o;return A(e)?o=e:(e=_(e),a=e.slice(0,-1),e=e[e.length-1]),C(r,function(n){var s=o;if(!s){if(a&&a.length&&(n=J(n,a)),n==null)return;s=n[e]}return s==null?s:s.apply(n,t)})});function rr(r,e){return C(r,Q(e))}function mt(r,e){return B(r,F(e))}function Hr(r,e,t){var a=-1/0,o=-1/0,n,s;if(e==null||typeof e=="number"&&typeof r[0]!="object"&&r!=null){r=S(r)?r:M(r);for(var i=0,l=r.length;ia&&(a=n)}else e=E(e,t),T(r,function(c,p,u){s=e(c,p,u),(s>o||s===-1/0&&a===-1/0)&&(a=c,o=s)});return a}function ft(r,e,t){var a=1/0,o=1/0,n,s;if(e==null||typeof e=="number"&&typeof r[0]!="object"&&r!=null){r=S(r)?r:M(r);for(var i=0,l=r.length;ii||s===void 0)return 1;if(s1&&(a=P(a,e[1])),e=q(r)):(a=ht,e=b(e,!1,!1),r=Object(r));for(var o=0,n=e.length;o1&&(a=e[1])):(e=C(b(e,!1,!1),String),t=function(o,n){return!y(e,n)}),Ae(r,t,a)});function Yr(r,e,t){return G.call(r,0,Math.max(0,r.length-(e==null||t?1:e)))}function $r(r,e,t){return r==null||r.length<1?e==null||t?void 0:[]:e==null||t?r[0]:Yr(r,r.length-e)}function er(r,e,t){return G.call(r,e==null||t?1:e)}function At(r,e,t){return r==null||r.length<1?e==null||t?void 0:[]:e==null||t?r[r.length-1]:er(r,Math.max(0,r.length-e))}function Nt(r){return B(r,Boolean)}function St(r,e){return b(r,e,!1)}var Ne=h(function(r,e){return e=b(e,!0,!0),B(r,function(t){return!y(e,t)})});var Ra=h(function(r,e){return Ne(r,e)});function mr(r,e,t,a){Ir(e)||(a=t,t=e,e=!1),t!=null&&(t=E(t,a));for(var o=[],n=[],s=0,i=N(r);snew Date(2019,1,1)?.545:.58,MAX_TRIAL_BONUS_DAYS:42,COUNTRY:{US:"US",AU:"AU",UK:"UK",NZ:"NZ"},CURRENCIES:{US:"USD",AU:"AUD",UK:"GBP",NZ:"NZD"},STATES:{AK:{stateISO:"AK",stateName:"Alaska"},AL:{stateISO:"AL",stateName:"Alabama"},AR:{stateISO:"AR",stateName:"Arkansas"},AZ:{stateISO:"AZ",stateName:"Arizona"},CA:{stateISO:"CA",stateName:"California"},CO:{stateISO:"CO",stateName:"Colorado"},CT:{stateISO:"CT",stateName:"Connecticut"},DE:{stateISO:"DE",stateName:"Delaware"},FL:{stateISO:"FL",stateName:"Florida"},GA:{stateISO:"GA",stateName:"Georgia"},HI:{stateISO:"HI",stateName:"Hawaii"},IA:{stateISO:"IA",stateName:"Iowa"},ID:{stateISO:"ID",stateName:"Idaho"},IL:{stateISO:"IL",stateName:"Illinois"},IN:{stateISO:"IN",stateName:"Indiana"},KS:{stateISO:"KS",stateName:"Kansas"},KY:{stateISO:"KY",stateName:"Kentucky"},LA:{stateISO:"LA",stateName:"Louisiana"},MA:{stateISO:"MA",stateName:"Massachusetts"},MD:{stateISO:"MD",stateName:"Maryland"},ME:{stateISO:"ME",stateName:"Maine"},MI:{stateISO:"MI",stateName:"Michigan"},MN:{stateISO:"MN",stateName:"Minnesota"},MO:{stateISO:"MO",stateName:"Missouri"},MS:{stateISO:"MS",stateName:"Mississippi"},MT:{stateISO:"MT",stateName:"Montana"},NC:{stateISO:"NC",stateName:"North Carolina"},ND:{stateISO:"ND",stateName:"North Dakota"},NE:{stateISO:"NE",stateName:"Nebraska"},NH:{stateISO:"NH",stateName:"New Hampshire"},NJ:{stateISO:"NJ",stateName:"New Jersey"},NM:{stateISO:"NM",stateName:"New Mexico"},NV:{stateISO:"NV",stateName:"Nevada"},NY:{stateISO:"NY",stateName:"New York"},OH:{stateISO:"OH",stateName:"Ohio"},OK:{stateISO:"OK",stateName:"Oklahoma"},OR:{stateISO:"OR",stateName:"Oregon"},PA:{stateISO:"PA",stateName:"Pennsylvania"},PR:{stateISO:"PR",stateName:"Puerto Rico"},RI:{stateISO:"RI",stateName:"Rhode Island"},SC:{stateISO:"SC",stateName:"South Carolina"},SD:{stateISO:"SD",stateName:"South Dakota"},TN:{stateISO:"TN",stateName:"Tennessee"},TX:{stateISO:"TX",stateName:"Texas"},UT:{stateISO:"UT",stateName:"Utah"},VA:{stateISO:"VA",stateName:"Virginia"},VT:{stateISO:"VT",stateName:"Vermont"},WA:{stateISO:"WA",stateName:"Washington"},WI:{stateISO:"WI",stateName:"Wisconsin"},WV:{stateISO:"WV",stateName:"West Virginia"},WY:{stateISO:"WY",stateName:"Wyoming"},DC:{stateISO:"DC",stateName:"District Of Columbia"}},SPECIAL_CHARS_TO_REMOVE:"$*.+!(,=",REG_EXP:{DOMAIN:/^[\w-\.]*\.\w{2,}$/,EMAIL_PART:zr,FREE_NAME:/^[^\r\n\t]{1,256}$/,MASKED_CARD:/^\d{0,6}[X]+\d{4,7}$/,EMAIL:new RegExp(`^${zr}$`,"i"),EXTRACT_EMAIL:new RegExp(zr,"gi"),EMAIL_SEARCH:new RegExp(zr,"gi"),HYPERLINK:new RegExp("^(?:(?:(?:https?|ftp):)?\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z0-9\\u00a1-\\uffff][a-z0-9\\u00a1-\\uffff_-]{0,62})?[a-z0-9\\u00a1-\\uffff]\\.)+(?:[a-z\\u00a1-\\uffff]{2,}\\.?))(?::\\d{2,5})?(?:[/?#]\\S*)?$","i"),MARKDOWN_EMAIL:zr,EMOJIS:/[\u200d\u{1f1e6}-\u{1f1ff}\u{1f3fb}-\u{1f3ff}\u{e0020}-\u{e007f}\u20E3\uFE0F]|[#*0-9]\uFE0F?\u20E3/gu},REPORT:{LIMIT_PRINT_PDF:250,ACH_LIMIT:2e6,ACH_DEFAULT_DAYS:4,TITLE_FORMULA:"{report:title}",MAX_AGE_SAME_COMMENT:300,SMARTREPORT_AGENT_EMAIL:"smartreports@expensify.com"},URL:{FORUM_ROOT:"https://community.expensify.com/",RECEIPTS:{DEVELOPMENT:"https://www.expensify.com.dev/receipts/",STAGING:"https://staging.expensify.com/receipts/",PRODUCTION:"https://www.expensify.com/receipts/"},CLOUDFRONT:"https://d2k5nsl2zxldvw.cloudfront.net",CLOUDFRONT_IMG:"https://d2k5nsl2zxldvw.cloudfront.net/images/",CLOUDFRONT_FILES:"https://d2k5nsl2zxldvw.cloudfront.net/files/",EXPENSIFY_SYNC_MANAGER:"quickbooksdesktop/Expensify_QuickBooksDesktop_Setup_2300802.exe",USEDOT_ROOT:"https://use.expensify.com/",ITUNES_SUBSCRIPTION:"https://buy.itunes.apple.com/WebObjects/MZFinance.woa/wa/manageSubscriptions"},DATE:{FORMAT_STRING:"yyyy-MM-dd",FORMAT_STRING_PRETTY:"MMM d, yyyy",MOMENT_FORMAT_STRING:fo,MOMENT_DATE_TIME:"YYYY-MM-DD HH:mm",MOMENT_DATE_TIME_PRETTY:"MMM DD YYYY h:mma",MOMENT_DATE_TIME_TIMEZONE:"YYYY-MM-DDTHH:mm:ssZ",MOMENT_US_DATE:"MMM D, YYYY",MOMENT_US_DATE_LONG:"MMMM D, YYYY",MOMENT_US_MONTH_YEAR_LONG:"MMMM YYYY",TIMEZONE_OFFSET_MS:new Date().getTimezoneOffset()*6e4,SHORT_MONTH_SHORT_DAY:"MMM d",LONG_YEAR_MONTH_DAY_24_TIME:"yyyy-MM-dd HH:mm:ss",SHORT_MONTH_DAY_LOCAL_TIME:"MMM D [at] LT",SHORT_MONTH_DAY_YEAR_LOCAL_TIME:"MMM D, YYYY [at] LT"},FUNC_DIE_MESSAGE:"Aborting JavaScript execution",EMAIL_DELIVERY_FAILURE_VALIDITY:1209600,BILL_PROCESSING_PARTNER_NAME:"expensify.cash",BILL_PROCESSING_EMAIL_DOMAIN:"expensify.cash",BANK_IMPORT:{BANK_STATUS_BROKEN:2},BANK_ACCOUNT:{VERIFICATION_MAX_ATTEMPTS:7},EXPENSIFY_EMAILS:["concierge@expensify.com","help@expensify.com","receipts@expensify.com","chronos@expensify.com","qa@expensify.com","contributors@expensify.com","firstresponders@expensify.com","qa+travisreceipts@expensify.com","bills@expensify.com","studentambassadors@expensify.com","accounting@expensify.com","payroll@expensify.com","svfg@expensify.com","integrationtestingcreds@expensify.com","admin@expensify.com","notifications@expensify.com"],INVALID_APPROVER_AND_SHAREE_EMAILS:["concierge@expensify.com","help@expensify.com","receipts@expensify.com","chronos@expensify.com","qa@expensify.com","contributors@expensify.com","firstresponders@expensify.com","qa+travisreceipts@expensify.com","bills@expensify.com","admin@expensify.com"],SMART_SCAN:{COST:20,FREE_NUMBER:25},SMS:{DOMAIN:"expensify.sms",E164_REGEX:/^\+?[1-9]\d{1,14}$/},PASSWORD_COMPLEXITY_REGEX_STRING:"^(?=.*[A-Z])(?=.*[0-9])(?=.*[a-z]).{8,}$",INTEGRATIONS:{DATA_MAPPING:{NONE:"NONE",TAG:"TAG",REPORT_FIELD:"REPORT_FIELD",DEFAULT:"DEFAULT"},EXPORT_DATE:{LAST_EXPENSE:"LAST_EXPENSE",REPORT_EXPORTED:"REPORT_EXPORTED",REPORT_SUBMITTED:"REPORT_SUBMITTED"},XERO_HQ_CONNECTION_NAME:"xerohq",EXPENSIFY_SYNC_MANAGER_VERSION:"23.0.802.0"},INTEGRATION_TYPES:{ACCOUNTING:"accounting",HR:"hr"},DIRECT_INTEGRATIONS:{zenefits:{value:"zenefits",text:"Zenefits",image:`${m}icons/export-icons/zenefit.svg`,gray_image:`${m}icons/export-icons/zenefit_gray.svg`,alert_image:`${m}icons/export-icons/zenefit_alert.svg`,types:["hr"],isCorporateOnly:!1},gusto:{value:"gusto",text:"Gusto",image:`${m}icons/export-icons/gusto.svg`,gray_image:`${m}icons/export-icons/gusto_gray.svg`,alert_image:`${m}icons/export-icons/gusto_alert.svg`,types:["hr"],isCorporateOnly:!1},quickbooksOnline:{value:"quickbooksOnline",text:"QuickBooks Online",image:`${m}icons/export-icons/quickbooks.svg`,gray_image:`${m}icons/export-icons/quickbooks_gray.svg`,alert_image:`${m}icons/export-icons/quickbooks_alert.svg`,types:["hr","accounting"],isCorporateOnly:!1},xero:{value:"xero",text:"Xero",image:`${m}icons/export-icons/xero.svg`,gray_image:`${m}icons/export-icons/xero_gray.svg`,alert_image:`${m}icons/export-icons/xero_alert.svg`,types:["accounting"],isCorporateOnly:!1},netsuite:{value:"netsuite",text:"NetSuite",image:`${m}icons/export-icons/netsuite.svg`,gray_image:`${m}icons/export-icons/netsuite_gray.svg`,alert_image:`${m}icons/export-icons/netsuite_alert.svg`,types:["hr","accounting"],isCorporateOnly:!0},quickbooksDesktop:{value:"qbd",text:"QuickBooks Desktop",image:`${m}icons/export-icons/quickbooks.svg`,gray_image:`${m}icons/export-icons/quickbooks_gray.svg`,alert_image:`${m}icons/export-icons/quickbooks_alert.svg`,types:["accounting"],isCorporateOnly:!1},intacct:{value:"intacct",text:"Sage Intacct",image:`${m}icons/export-icons/sage.svg`,gray_image:`${m}icons/export-icons/sage_gray.svg`,alert_image:`${m}icons/export-icons/sage_alert.svg`,types:["hr","accounting"],isCorporateOnly:!0},financialforce:{value:"financialforce",text:"Certinia",image:`${m}icons/export-icons/certinia.svg`,gray_image:`${m}icons/export-icons/certinia_gray.svg`,alert_image:`${m}icons/export-icons/certinia_alert.svg`,types:["accounting"],isCorporateOnly:!0}},INDIRECT_INTEGRATIONS:{microsoft_dynamics:{value:"microsoft_dynamics",text:"Microsoft Dynamics",image:`${m}icons/export-icons/microsoft_dynamics.svg`,gray_image:`${m}icons/export-icons/microsoft_dynamics_gray.svg`,types:["accounting"],isCorporateOnly:!0},oracle:{value:"oracle",text:"Oracle",image:`${m}icons/export-icons/oracle.svg`,gray_image:`${m}icons/export-icons/oracle_gray.svg`,types:["hr","accounting"],isCorporateOnly:!0},sage:{value:"sage",text:"Sage",image:`${m}icons/export-icons/sage.svg`,gray_image:`${m}icons/export-icons/sage_gray.svg`,types:["accounting"],isCorporateOnly:!0},sap:{value:"sap",text:"SAP",image:`${m}icons/export-icons/sap.svg`,gray_image:`${m}icons/export-icons/sap_gray.svg`,types:["accounting"],isCorporateOnly:!0},myob:{value:"myob",text:"MYOB",image:`${m}icons/export-icons/myob.svg`,gray_image:`${m}icons/export-icons/myob_gray.svg`,types:["accounting"],isCorporateOnly:!0},workday:{value:"workday",text:"Workday",image:`${m}icons/export-icons/workday.svg`,gray_image:`${m}icons/export-icons/workday_gray.svg`,types:["hr"],isCorporateOnly:!0},adp:{value:"adp",text:"ADP",image:`${m}icons/export-icons/adp.svg`,types:["hr"],isCorporateOnly:!0},generic_indirect_connection:{value:"generic_indirect_connection",text:"Other",image:`${m}icons/accounting-other--blue.svg`,types:["hr","accounting"]}},DEFAULT_IS_TEMPLATES:{default:{value:"default_template",text:"Basic Export",image:`${m}icons/accounting-other--blue.svg`},tag:{value:"tag_template",text:"Tag Export",image:`${m}icons/accounting-other--blue.svg`},category:{value:"category_template",text:"Category Export",image:`${m}icons/accounting-other--blue.svg`},detailed:{value:"detailed_export",text:"All Data - Expense Level Export",image:`${m}icons/accounting-other--blue.svg`},report:{value:"report_level_export",text:"All Data - Report Level Export",image:`${m}icons/accounting-other--blue.svg`},tax:{value:"multiple_tax_export",text:"Canadian Multiple Tax Export",image:`${m}icons/accounting-other--blue.svg`},perdiem:{value:"per_diem_export",text:"Per Diem Export",image:`${m}icons/accounting-other--blue.svg`},attendees:{value:"attendee_audit_export",text:"Attendee Audit Export",image:`${m}icons/accounting-other--blue.svg`}},NVP:{DISMISSED_VIOLATIONS:"dismissedViolations"},FILESIZE:{BYTES_IN_MEGABYTE:1e6,MAX:1e7},PARTNER_NAMES:{IPHONE:"iphone",ANDROID:"android",CHAT:"chat-expensify-com"},LOGIN_TYPES:{WEB:"login",MOBILE:"device"},EXPENSIFY_CARD:{FEED_NAME:"Expensify Card",FRAUD_STATES:{NONE:0,DOMAIN_CARDS_REIMBURSEMENTS_INVESTIGATION:1,DOMAIN_CARDS_RAPID_INCREASE_INVESTIGATION:2,DOMAIN_CARDS_RAPID_INCREASE_CLEARED:3,DOMAIN_CARDS_RAPID_INCREASE_CONFIRMED:4,INDIVIDUAL_CARD_RAPID_INCREASE_INVESTIGATION:5,INDIVIDUAL_CARD_RAPID_INCREASE_CLEARED:6,INDIVIDUAL_CARD_RAPID_INCREASE_CONFIRMED:7,SUSPICIOUS_PAN_ENTRY:8,SUSPICIOUS_PAN_ENTRY_CLEARED:9,SUSPICIOUS_PAN_ENTRY_CONFIRMED:10}},TRAVEL_BOOKING:{OPTIONS:{shortFlightFare:{economy:"Economy",premiumEconomy:"Premium Economy",business:"Business",first:"First"},longFlightFare:{economy:"Economy",premiumEconomy:"Premium Economy",business:"Business",first:"First"},hotelStar:{oneStar:"1",twoStars:"2",threeStars:"3",fourStars:"4",fiveStars:"5"}},DEFAULT_OPTIONS:{shortFlightFare:"economy",longFlightFare:"economy",hotelStar:"fourStars"}},EXPENSIFY_DOMAINS:["expensify.com","expensifail.com","expensicorp.com"],SUBSCRIPTION_CHANGE_REASONS:{TOO_LIMITED:{id:"tooLimited",label:"Functionality needs improvement",prompt:"What software are you migrating to and what led to this decision?"},TOO_EXPENSIVE:{id:"tooExpensive",label:"Too expensive",prompt:"What software are you migrating to and what led to this decision?"},INADEQUATE_SUPPORT:{id:"inadequateSupport",label:"Inadequate customer support",prompt:"What software are you migrating to and what led to this decision?"},BUSINESS_CLOSING:{id:"businessClosing",label:"Company closing, downsizing, or acquired",prompt:"What software are you migrating to and what led to this decision?"}}};var Eo="XN--VERMGENSBERATUNG-PWB|XN--VERMGENSBERATER-CTB|XN--CLCHC0EA0B2G2A9GCD|XN--W4R85EL8FHU5DNRA|TRAVELERSINSURANCE|NORTHWESTERNMUTUAL|XN--XKC2DL3A5EE0H|XN--MGBERP4A5D4AR|XN--MGBAI9AZGQP6J|XN--MGBAH1A3HJKRD|XN--BCK1B9A5DRE4C|XN--5SU34J936BGSG|XN--3OQ18VL8PN36A|XN--XKC2AL3HYE2A|XN--MGBCPQ6GPA1A|XN--MGBA7C0BBN0A|XN--FZYS8D69UVGM|XN--NQV7FS00EMA|XN--MGBC0A9AZCG|XN--MGBAAKC7DVF|XN--MGBA3A4F16A|XN--LGBBAT1AD8J|XN--KCRX77D1X4A|XN--I1B6B1A6A2E|SANDVIKCOROMANT|KERRYPROPERTIES|AMERICANEXPRESS|XN--RVC1E0AM3E|XN--MGBX4CD0AB|XN--MGBI4ECEXP|XN--MGBCA7DZDO|XN--MGBBH1A71E|XN--MGBAYH7GPA|XN--MGBAAM7A8H|XN--MGBA3A3EJT|XN--JLQ61U9W7B|XN--JLQ480N2RG|XN--H2BREG3EVE|XN--FIQ228C5HS|XN--B4W605FERD|XN--80AQECDR1A|XN--6QQ986B3XL|XN--54B7FTA0CC|WEATHERCHANNEL|KERRYLOGISTICS|COOKINGCHANNEL|CANCERRESEARCH|BANANAREPUBLIC|AMERICANFAMILY|AFAMILYCOMPANY|XN--YGBI2AMMX|XN--YFRO4I67O|XN--TIQ49XQYJ|XN--H2BRJ9C8C|XN--FZC2C9E2C|XN--FPCRJ9C3D|XN--ECKVDTC9D|XN--CCKWCXETD|WOLTERSKLUWER|TRAVELCHANNEL|SPREADBETTING|LIFEINSURANCE|INTERNATIONAL|XN--QCKA1PMC|XN--OGBPF8FL|XN--NGBE9E0A|XN--NGBC5AZD|XN--MK1BU44C|XN--MGBT3DHD|XN--MGBPL2FH|XN--MGBGU82A|XN--MGBAB2BD|XN--MGB9AWBF|XN--GCKR3F0F|XN--8Y0A063A|XN--80ASEHDB|XN--80ADXHKS|XN--4DBRK0CE|XN--45BR5CYL|XN--3E0B707E|VERSICHERUNG|SCHOLARSHIPS|LPLFINANCIAL|CONSTRUCTION|XN--ZFR164B|XN--XHQ521B|XN--W4RS40L|XN--VUQ861B|XN--T60B56A|XN--SES554G|XN--S9BRJ9C|XN--ROVU88B|XN--RHQV96G|XN--Q9JYB4C|XN--PGBS0DH|XN--OTU796D|XN--NYQY26A|XN--MIX891F|XN--MGBTX2B|XN--MGBBH1A|XN--KPRY57D|XN--KPRW13D|XN--JVR189M|XN--J6W193G|XN--IMR513N|XN--HXT814E|XN--H2BRJ9C|XN--GK3AT1E|XN--GECRJ9C|XN--G2XX48C|XN--FLW351E|XN--FJQ720A|XN--FCT429K|XN--EFVY88H|XN--D1ACJ3B|XN--CZR694B|XN--CCK2B3B|XN--9KRT00A|XN--80AO21A|XN--6FRZ82G|XN--55QW42G|XN--45BRJ9C|XN--42C2D9A|XN--3HCRJ9C|XN--3DS443G|XN--3BST00M|XN--2SCRJ9C|XN--1QQW23A|XN--1CK2E1B|XN--11B4C3D|WILLIAMHILL|REDUMBRELLA|PROGRESSIVE|PRODUCTIONS|PLAYSTATION|PHOTOGRAPHY|OLAYANGROUP|MOTORCYCLES|LAMBORGHINI|KERRYHOTELS|INVESTMENTS|FOODNETWORK|ENTERPRISES|ENGINEERING|CREDITUNION|CONTRACTORS|CALVINKLEIN|BRIDGESTONE|BLOCKBUSTER|BLACKFRIDAY|BARCLAYCARD|ACCOUNTANTS|XN--Y9A3AQ|XN--WGBL6A|XN--WGBH1C|XN--UNUP4Y|XN--Q7CE6A|XN--PSSY2U|XN--O3CW4H|XN--MXTQ1M|XN--KPUT3I|XN--IO0A7I|XN--FIQZ9S|XN--FIQS8S|XN--FIQ64B|XN--CZRU2D|XN--CZRS0T|XN--CG4BKI|XN--C2BR7G|XN--9ET52U|XN--9DBQ2A|XN--90A3AC|XN--80ASWG|XN--5TZM5G|XN--55QX5D|XN--4GBRIM|XN--45Q11C|XN--3PXU8K|XN--30RR7Y|VOLKSWAGEN|VLAANDEREN|UNIVERSITY|TECHNOLOGY|TATAMOTORS|SWIFTCOVER|SCHAEFFLER|RESTAURANT|REPUBLICAN|REALESTATE|PRUDENTIAL|PROTECTION|PROPERTIES|ONYOURSIDE|NEXTDIRECT|NATIONWIDE|MITSUBISHI|MANAGEMENT|INDUSTRIES|IMMOBILIEN|HEALTHCARE|FOUNDATION|EXTRASPACE|EUROVISION|CUISINELLA|CREDITCARD|CONSULTING|CAPITALONE|BOEHRINGER|BNPPARIBAS|BASKETBALL|ASSOCIATES|APARTMENTS|ACCOUNTANT|YODOBASHI|XN--VHQUV|XN--TCKWE|XN--QXA6A|XN--P1ACF|XN--NQV7F|XN--NGBRX|XN--L1ACC|XN--J1AMH|XN--J1AEF|XN--FHBEI|XN--E1A4C|XN--D1ALF|XN--C1AVG|XN--90AIS|VACATIONS|TRAVELERS|STOCKHOLM|STATEFARM|STATEBANK|SOLUTIONS|SHANGRILA|SCJOHNSON|RICHARDLI|PRAMERICA|PASSAGENS|PANASONIC|MICROSOFT|MELBOURNE|MARSHALLS|MARKETING|LIFESTYLE|LANDROVER|LANCASTER|KUOKGROUP|INSURANCE|INSTITUTE|HOMESENSE|HOMEGOODS|HOMEDEPOT|HISAMITSU|GOLDPOINT|FURNITURE|FUJIXEROX|FRONTDOOR|FRESENIUS|FIRESTONE|FINANCIAL|FAIRWINDS|EQUIPMENT|EDUCATION|DIRECTORY|COMMUNITY|CHRISTMAS|BLOOMBERG|BARCELONA|AQUARELLE|ANALYTICS|AMSTERDAM|ALLFINANZ|ALFAROMEO|ACCENTURE|YOKOHAMA|XN--QXAM|XN--P1AI|XN--NODE|XN--90AE|WOODSIDE|VERISIGN|VENTURES|VANGUARD|TRAINING|SUPPLIES|STCGROUP|SOFTWARE|SOFTBANK|SHOWTIME|SHOPPING|SERVICES|SECURITY|SAMSCLUB|SAARLAND|RELIANCE|REDSTONE|PROPERTY|PLUMBING|PICTURES|PHARMACY|PARTNERS|OBSERVER|MORTGAGE|MERCKMSD|MEMORIAL|MCKINSEY|MASERATI|MARRIOTT|LUNDBECK|LIGHTING|JPMORGAN|ISTANBUL|IPIRANGA|INFINITI|HOSPITAL|HOLDINGS|HELSINKI|HDFCBANK|GUARDIAN|GRAPHICS|GRAINGER|GOODYEAR|FRONTIER|FOOTBALL|FIRMDALE|FIDELITY|FEEDBACK|EXCHANGE|ETISALAT|ERICSSON|ENGINEER|DOWNLOAD|DISCOVER|DISCOUNT|DIAMONDS|DEMOCRAT|DELOITTE|DELIVERY|COMPUTER|COMMBANK|CLOTHING|CLINIQUE|CLEANING|CITYEATS|CIPRIANI|CATHOLIC|CATERING|CAPETOWN|BUSINESS|BUILDERS|BUDAPEST|BRUSSELS|BROADWAY|BRADESCO|BOUTIQUE|BASEBALL|BARGAINS|BAREFOOT|BARCLAYS|ATTORNEY|ALLSTATE|AIRFORCE|ABUDHABI|ZUERICH|YOUTUBE|YAMAXUN|XFINITY|WINNERS|WINDOWS|WHOSWHO|WEDDING|WEBSITE|WEATHER|WATCHES|WANGGOU|WALMART|TRADING|TOSHIBA|TIFFANY|TICKETS|THEATRE|THEATER|TEMASEK|SYSTEMS|SURGERY|SUPPORT|STORAGE|STAPLES|SINGLES|SHIKSHA|SCIENCE|SCHWARZ|SCHMIDT|SANDVIK|SAMSUNG|REXROTH|REVIEWS|RENTALS|RECIPES|REALTOR|POLITIE|PIONEER|PHILIPS|ORIGINS|ORGANIC|OLDNAVY|OKINAWA|NEUSTAR|NETWORK|NETFLIX|NETBANK|MONSTER|MARKETS|LINCOLN|LIMITED|LECLERC|LATROBE|LASALLE|LANXESS|LACAIXA|KOMATSU|KITCHEN|JUNIPER|JEWELRY|ISMAILI|HYUNDAI|HOTMAIL|HOTELES|HOSTING|HOLIDAY|HITACHI|HANGOUT|HAMBURG|GUITARS|GROCERY|GODADDY|GENTING|GALLERY|FUJITSU|FROGANS|FORSALE|FLOWERS|FLORIST|FLIGHTS|FITNESS|FISHING|FINANCE|FERRERO|FERRARI|FASHION|FARMERS|EXPRESS|EXPOSED|DOMAINS|DIGITAL|DENTIST|CRUISES|CRICKET|COURSES|COUPONS|COUNTRY|CORSICA|COOKING|CONTACT|COMPARE|COMPANY|COMCAST|COLOGNE|COLLEGE|CLUBMED|CITADEL|CHINTAI|CHARITY|CHANNEL|CAREERS|CARAVAN|CAPITAL|BUGATTI|BROTHER|BOOKING|BESTBUY|BENTLEY|BAUHAUS|BANAMEX|AVIANCA|AUSPOST|AUDIBLE|AUCTION|ATHLETA|ANDROID|ALIBABA|AGAKHAN|ACADEMY|ABOGADO|ZAPPOS|YANDEX|YACHTS|XIHUAN|WEBCAM|WALTER|VUELOS|VOYAGE|VOTING|VISION|VIRGIN|VILLAS|VIKING|VIAJES|UNICOM|TRAVEL|TOYOTA|TKMAXX|TJMAXX|TIENDA|TENNIS|TATTOO|TARGET|TAOBAO|TAIPEI|SYDNEY|SWATCH|SUZUKI|SUPPLY|STUDIO|STREAM|SOCIAL|SOCCER|SHOUJI|SELECT|SECURE|SEARCH|SCHULE|SCHOOL|SANOFI|SAKURA|SAFETY|RYUKYU|ROGERS|ROCHER|REVIEW|REPORT|REPAIR|REISEN|REALTY|RACING|QUEBEC|PICTET|PHYSIO|PHOTOS|PFIZER|OTSUKA|ORANGE|ORACLE|ONLINE|OLAYAN|OFFICE|NOWRUZ|NORTON|NISSAY|NISSAN|NATURA|NAGOYA|MUTUAL|MUSEUM|MOSCOW|MORMON|MONASH|MOBILE|MATTEL|MARKET|MAKEUP|MAISON|MADRID|LUXURY|LONDON|LOCKER|LIVING|LEFRAK|LAWYER|LATINO|LANCIA|KOSHER|KINDLE|KINDER|KAUFEN|JUEGOS|JOBURG|JAGUAR|INTUIT|INSURE|IMAMAT|HUGHES|HOTELS|HOCKEY|HIPHOP|HERMES|HEALTH|GRATIS|GOOGLE|GLOBAL|GIVING|GEORGE|GARDEN|GALLUP|FUTBOL|FLICKR|FAMILY|EXPERT|EVENTS|ESTATE|ENERGY|EMERCK|DURBAN|DUPONT|DUNLOP|DOCTOR|DIRECT|DESIGN|DENTAL|DEGREE|DEALER|DATSUN|DATING|CRUISE|CREDIT|COUPON|CONDOS|COMSEC|COFFEE|CLINIC|CLAIMS|CIRCLE|CHURCH|CHROME|CHANEL|CENTER|CASINO|CAREER|CAMERA|BROKER|BOSTON|BOSTIK|BHARTI|BERLIN|BEAUTY|BAYERN|AUTHOR|ARAMCO|ANQUAN|AMAZON|ALSTOM|ALSACE|ALIPAY|AIRTEL|AIRBUS|AGENCY|AFRICA|ABBVIE|ABBOTT|ABARTH|YAHOO|XEROX|WORLD|WORKS|WEIBO|WEBER|WATCH|WALES|VOLVO|VODKA|VIDEO|VEGAS|UBANK|TUSHU|TUNES|TRUST|TRADE|TOURS|TOTAL|TORAY|TOOLS|TOKYO|TODAY|TMALL|TIROL|TIRES|TATAR|SWISS|SUCKS|STYLE|STUDY|STORE|STADA|SPORT|SPACE|SOLAR|SMILE|SMART|SLING|SKYPE|SHOES|SHELL|SHARP|SEVEN|SENER|SALON|RUGBY|RODEO|ROCKS|RICOH|REISE|REHAB|RADIO|QUEST|PROMO|PRIME|PRESS|PRAXI|POKER|PLACE|PIZZA|PHOTO|PHONE|PARTY|PARTS|PARIS|OSAKA|OMEGA|NOWTV|NOKIA|NINJA|NIKON|NEXUS|MOVIE|MONEY|MIAMI|MEDIA|MANGO|MACYS|LOTTO|LOTTE|LOCUS|LOANS|LIXIL|LIPSY|LINDE|LILLY|LEXUS|LEGAL|LEASE|LAMER|KYOTO|KOELN|JETZT|IVECO|IRISH|IKANO|HYATT|HOUSE|HORSE|HONDA|HOMES|GUIDE|GUCCI|GROUP|GRIPE|GREEN|GMAIL|GLOBO|GLASS|GLADE|GIVES|GIFTS|GAMES|GALLO|FORUM|FOREX|FINAL|FEDEX|FAITH|EPSON|EMAIL|EDEKA|EARTH|DUBAI|DRIVE|DELTA|DEALS|DANCE|DABUR|CYMRU|CROWN|CODES|COACH|CLOUD|CLICK|CITIC|CISCO|CHEAP|CHASE|CARDS|CANON|BUILD|BOSCH|BOATS|BLACK|BINGO|BIBLE|BEATS|BAIDU|AZURE|AUTOS|AUDIO|ARCHI|APPLE|AMICA|AMFAM|AETNA|ADULT|ACTOR|ZONE|ZERO|ZARA|YOGA|XBOX|WORK|WINE|WIKI|WIEN|WEIR|WANG|VOTO|VOTE|VIVO|VIVA|VISA|VANA|TUBE|TOYS|TOWN|TIPS|TIAA|TEVA|TECH|TEAM|TAXI|TALK|SURF|STAR|SPOT|SONY|SONG|SOHU|SNCF|SKIN|SITE|SINA|SILK|SHOW|SHOP|SHIA|SHAW|SEXY|SEEK|SEAT|SCOT|SAXO|SAVE|SARL|SALE|SAFE|RUHR|RSVP|ROOM|RMIT|RICH|REST|RENT|REIT|READ|RAID|QPON|PROF|PROD|POST|PORN|POHL|PLUS|PLAY|PINK|PING|PICS|PCCW|PARS|PAGE|OPEN|OLLO|NIKE|NICO|NEXT|NEWS|NAVY|NAME|MOTO|MODA|MOBI|MINT|MINI|MENU|MEME|MEET|MAIF|LUXE|LTDA|LOVE|LOFT|LOAN|LIVE|LINK|LIMO|LIKE|LIFE|LIDL|LGBT|LEGO|LAND|KRED|KPMG|KIWI|KDDI|JPRS|JOBS|JEEP|JAVA|ITAU|INFO|IMMO|IMDB|IEEE|ICBC|HSBC|HOST|HGTV|HERE|HELP|HDFC|HAUS|HAIR|GURU|GUGE|GOOG|GOLF|GOLD|GMBH|GIFT|GGEE|GENT|GBIZ|GAME|FUND|FREE|FORD|FOOD|FLIR|FISH|FIRE|FILM|FIDO|FIAT|FAST|FARM|FANS|FAIL|FAGE|ERNI|DVAG|DUCK|DOCS|DISH|DIET|DESI|DELL|DEAL|DCLK|DATE|DATA|CYOU|COOP|COOL|CLUB|CITY|CITI|CHAT|CERN|CBRE|CASH|CASE|CASA|CARS|CARE|CAMP|CALL|CAFE|BUZZ|BOOK|BOND|BOFA|BLUE|BLOG|BING|BIKE|BEST|BEER|BBVA|BANK|BAND|BABY|AUTO|AUDI|ASIA|ASDA|ARTE|ARPA|ARMY|ARAB|AMEX|ALLY|AKDN|AERO|ADAC|ABLE|AARP|ZIP|YUN|YOU|XYZ|XXX|XIN|WTF|WTC|WOW|WME|WIN|WED|VIP|VIN|VIG|VET|UPS|UOL|UNO|UBS|TVS|TUI|TRV|TOP|TJX|THD|TEL|TDK|TCI|TAX|TAB|STC|SRL|SPA|SOY|SKY|SKI|SFR|SEX|SEW|SES|SCB|SCA|SBS|SBI|SAS|SAP|RWE|RUN|RIP|RIO|RIL|REN|RED|QVC|PWC|PUB|PRU|PRO|PNC|PIN|PID|PHD|PET|PAY|OVH|OTT|ORG|OOO|ONL|ONG|ONE|OFF|OBI|NYC|NTT|NRW|NRA|NOW|NHK|NGO|NFL|NEW|NET|NEC|NBA|NAB|MTR|MTN|MSD|MOV|MOM|MOI|MOE|MMA|MLS|MLB|MIT|MIL|MEN|MED|MBA|MAP|MAN|LTD|LPL|LOL|LLP|LLC|LDS|LAW|LAT|KRD|KPN|KIM|KIA|KFH|JOY|JOT|JNJ|JMP|JLL|JIO|JCB|ITV|IST|INT|INK|ING|INC|IFM|ICU|ICE|IBM|HOW|HOT|HKT|HIV|HBO|GOV|GOT|GOP|GOO|GMX|GMO|GLE|GEA|GDN|GAY|GAP|GAL|FYI|FUN|FTR|FRL|FOX|FOO|FLY|FIT|FAN|EUS|ESQ|EDU|ECO|EAT|DVR|DTV|DOT|DOG|DNP|DIY|DHL|DEV|DDS|DAY|DAD|CSC|CRS|CPA|COM|CFD|CFA|CEO|CBS|CBN|CBA|CAT|CAR|CAM|CAL|CAB|BZH|BUY|BOX|BOT|BOO|BOM|BMW|BMS|BIZ|BIO|BID|BET|BCN|BCG|BBT|BBC|BAR|AXA|AWS|ART|APP|AOL|ANZ|AIG|AFL|AEG|ADS|ACO|ABC|ABB|AAA|ZW|ZM|ZA|YT|YE|WS|WF|VU|VN|VI|VG|VE|VC|VA|UZ|UY|US|UK|UG|UA|TZ|TW|TV|TT|TR|TO|TN|TM|TL|TK|TJ|TH|TG|TF|TD|TC|SZ|SY|SX|SV|SU|ST|SS|SR|SO|SN|SM|SL|SK|SJ|SI|SH|SG|SE|SD|SC|SB|SA|RW|RU|RS|RO|RE|QA|PY|PW|PT|PS|PR|PN|PM|PL|PK|PH|PG|PF|PE|PA|OM|NZ|NU|NR|NP|NO|NL|NI|NG|NF|NE|NC|NA|MZ|MY|MX|MW|MV|MU|MT|MS|MR|MQ|MP|MO|MN|MM|ML|MK|MH|MG|ME|MD|MC|MA|LY|LV|LU|LT|LS|LR|LK|LI|LC|LB|LA|KZ|KY|KW|KR|KP|KN|KM|KI|KH|KG|KE|JP|JO|JM|JE|IT|IS|IR|IQ|IO|IN|IM|IL|IE|ID|HU|HT|HR|HN|HM|HK|GY|GW|GU|GT|GS|GR|GQ|GP|GN|GM|GL|GI|GH|GG|GF|GE|GD|GB|GA|FR|FO|FM|FK|FJ|FI|EU|ET|ES|ER|EG|EE|EC|DZ|DO|DM|DK|DJ|DE|CZ|CY|CX|CW|CV|CU|CR|CO|CN|CM|CL|CK|CI|CH|CG|CF|CD|CC|CA|BZ|BY|BW|BV|BT|BS|BR|BO|BN|BM|BJ|BI|BH|BG|BF|BE|BD|BB|BA|AZ|AX|AW|AU|AT|AS|AR|AQ|AO|AM|AL|AI|AG|AF|AE|AD|AC|SJC|RNO|LAX",Ma=Eo;var wa="([1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])",Re="((ht|f)tps?:\\/\\/)",ho=`${Re}?((?:www\\.)?[a-z0-9](?:[-a-z0-9]*[a-z0-9])?\\.)+(?:${Ma})(?:\\:${wa}|\\b|(?=_))(?!@(?:[a-z\\d-]+\\.)+[a-z]{2,})`,Jr=r=>`(?:${r}|&(?:amp|#x27);)`,Ba=`(?:${Jr("[.,=(+$!*]")}?\\/${Jr("[-\\w$@.+!*:(),=%~]")}*${Jr("[-\\w~@:%)]")}|\\/)*`,Ua=`(?:\\?${Jr("[-\\w$@.+!*()\\/,=%{}:;\\[\\]\\|_|~]")}*)?`,qa=`(?:#${Jr("[-\\w$@.+!*()[\\],=%;\\/:~]")}*)?`,hr=`((${ho})${Ba}(?:${Ua}|${qa})*)`,Fd=hr.replace(`${Re}?`,Re),Ao=`${Re}([a-z0-9](?:[-a-z0-9]*[a-z0-9])?\\.)*(?:[a-z0-9](?:[-a-z0-9]*[a-z0-9])?)(?:\\:${wa}|\\b|(?=_))`,wt=`((${Ao})${Ba}(?:${Ua}|${qa})*)`,Ie=`(${wt}|${hr})`;var No=new RegExp(`@${I.SMS.DOMAIN}`,"gi"),So={endsWith(r,e){return!r||!e?!1:r.substr(-e.length)===e},fromUSDToNumber(r,e){let t=String(r).replace(/[^\d.\-()]+/g,"");return t.match(/\(.*\)/)&&(t=`-${t.replace(/[()]/g,"")}`),t=Number(t)*100,t=Math.round(t*1e3)/1e3,e?t:Math.round(t)},truncateInMiddle(r,e){if(r.length<=e)return r;let t="...",a=(e-t.length)/2,o=r.substr(0,Math.ceil(a)),n=r.substr(r.length-Math.floor(a));return o+t+n},nl2br(r){return r.replace(/\n/g,"
")},htmlDecode(r){return typeof jQuery<"u"?jQuery("