merchi_product_form
Version:
A React component for Merchi product forms
188 lines (187 loc) • 17 kB
JavaScript
export var currencyMap = {
ALL: 'L',
AFN: '؋',
ARS: '$',
AWG: 'ƒ',
AUD: '$',
AZN: '₼',
BSD: '$',
BBD: '$',
BYR: 'p.',
BZD: 'BZ$',
BMD: '$',
BOB: 'Bs.',
BAM: 'KM',
BWP: 'P',
BGN: 'лв',
BRL: 'R$',
BND: '$',
KHR: '៛',
CAD: '$',
KYD: '$',
CLP: '$',
CNY: '¥',
COP: '$',
CRC: '₡',
HRK: 'kn',
CUP: '₱',
CZK: 'Kč',
DKK: 'kr',
DOP: 'RD$',
XCD: '$',
EGP: '£',
SVC: '$',
EEK: 'kr',
EUR: '€',
FKP: '£',
FJD: '$',
GHC: '₵',
GIP: '£',
GTQ: 'Q',
GGP: '£',
GYD: '$',
HNL: 'L',
HKD: '$',
HUF: 'Ft',
ISK: 'kr',
INR: '₹',
IDR: 'Rp',
IRR: '﷼',
IMP: '£',
ILS: '₪',
JMD: '`J$',
JPY: '¥',
JEP: '£',
KES: 'KSh',
KZT: 'лв',
KPW: '₩',
KRW: '₩',
KGS: 'лв',
LAK: '₭',
LVL: 'Ls',
LBP: '£',
LRD: '$',
LTL: 'Lt',
MKD: 'ден',
MYR: 'RM',
MUR: '₨',
MXN: '$',
MNT: '₮',
MZN: 'MT',
NAD: '$',
NPR: '₨',
ANG: 'ƒ',
NZD: '$',
NIO: 'C$',
NGN: '₦',
NOK: 'kr',
OMR: '﷼',
PKR: '₨',
PAB: 'B/.',
PYG: 'Gs',
PEN: 'S/.',
PHP: '₱',
PLN: 'zł',
QAR: '﷼',
RON: 'lei',
RUB: '₽',
RMB: '¥',
SHP: '£',
SAR: '﷼',
RSD: 'Дин.',
SCR: '₨',
SGD: '$',
SBD: '$',
SOS: 'S',
ZAR: 'R',
LKR: '₨',
SEK: 'kr',
CHF: 'CHF',
SRD: '$',
SYP: '£',
TZS: 'TSh',
TWD: 'NT$',
THB: '฿',
TTD: 'TT$',
TRY: '₺',
TRL: '₤',
TVD: '$',
UGX: 'USh',
UAH: '₴',
GBP: '£',
USD: '$',
UYU: '$U',
UZS: 'лв',
VEF: 'Bs',
VND: '₫',
YER: '﷼',
ZWD: 'Z$'
};
export function formatCurrency(amount, options) {
/*
* Example usage:
formatCurrency(-222.123456, {currency: 'EGP',
showCodeIfNoSymbol: true,
financialNegative: true,
decimalPlaces: 3})
--> '(£222.123)'
*/
var symbol;
var negative = false;
var result;
options = options || {};
options.currency = options.currency || 'AUD';
options.showCodeIfNoSymbol = options.showCodeIfNoSymbol || true;
options.symbolAfterAmount = options.symbolAfterAmount || false;
options.financialNegative = options.financialNegative || false;
options.codeAfterSymbol = options.codeAfterSymbol || false;
options.codeBeforeSymbol = options.codeBeforeSymbol || false;
options.spaceBetweenSymbol = options.spaceBetweenSymbol || false;
options.decimalPlaces = options.decimalPlaces || 2;
options.decimalSeperator = options.decimalSeperator || '.';
options.codeAfterAmount = options.codeAfterAmount || false;
if (amount < 0.0) {
negative = true;
amount *= -1.0; // eslint-disable-line
}
if (Object.prototype.hasOwnProperty.call(currencyMap, options.currency)) {
symbol = currencyMap[options.currency];
if (options.codeAfterSymbol) {
symbol += '(' + options.currency + ') ';
}
if (options.codeBeforeSymbol) {
symbol = "(".concat(options.currency, ") ").concat(symbol);
}
} else if (options.showCodeIfNoSymbol) {
symbol = options.currency;
} else {
symbol = '';
}
amount = amount.toFixed(options.decimalPlaces);
amount = amount.replace('.', options.decimalSeperator);
if (options.symbolAfterAmount) {
result = amount;
if (options.spaceBetweenSymbol) {
result += ' ';
}
result += symbol;
} else {
result = symbol;
if (options.spaceBetweenSymbol) {
result += ' ';
}
result += amount;
}
if (negative) {
if (options.financialNegative) {
result = "(".concat(result, ")");
} else {
result = "-".concat(result);
}
}
if (options.codeAfterAmount === true) {
result += " (".concat(options.currency, ")");
}
return result;
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjdXJyZW5jeU1hcCIsIkFMTCIsIkFGTiIsIkFSUyIsIkFXRyIsIkFVRCIsIkFaTiIsIkJTRCIsIkJCRCIsIkJZUiIsIkJaRCIsIkJNRCIsIkJPQiIsIkJBTSIsIkJXUCIsIkJHTiIsIkJSTCIsIkJORCIsIktIUiIsIkNBRCIsIktZRCIsIkNMUCIsIkNOWSIsIkNPUCIsIkNSQyIsIkhSSyIsIkNVUCIsIkNaSyIsIkRLSyIsIkRPUCIsIlhDRCIsIkVHUCIsIlNWQyIsIkVFSyIsIkVVUiIsIkZLUCIsIkZKRCIsIkdIQyIsIkdJUCIsIkdUUSIsIkdHUCIsIkdZRCIsIkhOTCIsIkhLRCIsIkhVRiIsIklTSyIsIklOUiIsIklEUiIsIklSUiIsIklNUCIsIklMUyIsIkpNRCIsIkpQWSIsIkpFUCIsIktFUyIsIktaVCIsIktQVyIsIktSVyIsIktHUyIsIkxBSyIsIkxWTCIsIkxCUCIsIkxSRCIsIkxUTCIsIk1LRCIsIk1ZUiIsIk1VUiIsIk1YTiIsIk1OVCIsIk1aTiIsIk5BRCIsIk5QUiIsIkFORyIsIk5aRCIsIk5JTyIsIk5HTiIsIk5PSyIsIk9NUiIsIlBLUiIsIlBBQiIsIlBZRyIsIlBFTiIsIlBIUCIsIlBMTiIsIlFBUiIsIlJPTiIsIlJVQiIsIlJNQiIsIlNIUCIsIlNBUiIsIlJTRCIsIlNDUiIsIlNHRCIsIlNCRCIsIlNPUyIsIlpBUiIsIkxLUiIsIlNFSyIsIkNIRiIsIlNSRCIsIlNZUCIsIlRaUyIsIlRXRCIsIlRIQiIsIlRURCIsIlRSWSIsIlRSTCIsIlRWRCIsIlVHWCIsIlVBSCIsIkdCUCIsIlVTRCIsIlVZVSIsIlVaUyIsIlZFRiIsIlZORCIsIllFUiIsIlpXRCIsImZvcm1hdEN1cnJlbmN5IiwiYW1vdW50Iiwib3B0aW9ucyIsInN5bWJvbCIsIm5lZ2F0aXZlIiwicmVzdWx0IiwiY3VycmVuY3kiLCJzaG93Q29kZUlmTm9TeW1ib2wiLCJzeW1ib2xBZnRlckFtb3VudCIsImZpbmFuY2lhbE5lZ2F0aXZlIiwiY29kZUFmdGVyU3ltYm9sIiwiY29kZUJlZm9yZVN5bWJvbCIsInNwYWNlQmV0d2VlblN5bWJvbCIsImRlY2ltYWxQbGFjZXMiLCJkZWNpbWFsU2VwZXJhdG9yIiwiY29kZUFmdGVyQW1vdW50IiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiY29uY2F0IiwidG9GaXhlZCIsInJlcGxhY2UiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvY3VycmVuY3kudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGN1cnJlbmN5TWFwOiBhbnkgPVxuICB7QUxMOiAnTCcsXG4gICAgQUZOOiAn2IsnLFxuICAgIEFSUzogJyQnLFxuICAgIEFXRzogJ8aSJyxcbiAgICBBVUQ6ICckJyxcbiAgICBBWk46ICfigrwnLFxuICAgIEJTRDogJyQnLFxuICAgIEJCRDogJyQnLFxuICAgIEJZUjogJ3AuJyxcbiAgICBCWkQ6ICdCWiQnLFxuICAgIEJNRDogJyQnLFxuICAgIEJPQjogJ0JzLicsXG4gICAgQkFNOiAnS00nLFxuICAgIEJXUDogJ1AnLFxuICAgIEJHTjogJ9C70LInLFxuICAgIEJSTDogJ1IkJyxcbiAgICBCTkQ6ICckJyxcbiAgICBLSFI6ICfhn5snLFxuICAgIENBRDogJyQnLFxuICAgIEtZRDogJyQnLFxuICAgIENMUDogJyQnLFxuICAgIENOWTogJ8KlJyxcbiAgICBDT1A6ICckJyxcbiAgICBDUkM6ICfigqEnLFxuICAgIEhSSzogJ2tuJyxcbiAgICBDVVA6ICfigrEnLFxuICAgIENaSzogJ0vEjScsXG4gICAgREtLOiAna3InLFxuICAgIERPUDogJ1JEJCcsXG4gICAgWENEOiAnJCcsXG4gICAgRUdQOiAnwqMnLFxuICAgIFNWQzogJyQnLFxuICAgIEVFSzogJ2tyJyxcbiAgICBFVVI6ICfigqwnLFxuICAgIEZLUDogJ8KjJyxcbiAgICBGSkQ6ICckJyxcbiAgICBHSEM6ICfigrUnLFxuICAgIEdJUDogJ8KjJyxcbiAgICBHVFE6ICdRJyxcbiAgICBHR1A6ICfCoycsXG4gICAgR1lEOiAnJCcsXG4gICAgSE5MOiAnTCcsXG4gICAgSEtEOiAnJCcsXG4gICAgSFVGOiAnRnQnLFxuICAgIElTSzogJ2tyJyxcbiAgICBJTlI6ICfigrknLFxuICAgIElEUjogJ1JwJyxcbiAgICBJUlI6ICfvt7wnLFxuICAgIElNUDogJ8KjJyxcbiAgICBJTFM6ICfigqonLFxuICAgIEpNRDogJ2BKJCcsXG4gICAgSlBZOiAnwqUnLFxuICAgIEpFUDogJ8KjJyxcbiAgICBLRVM6ICdLU2gnLFxuICAgIEtaVDogJ9C70LInLFxuICAgIEtQVzogJ+KCqScsXG4gICAgS1JXOiAn4oKpJyxcbiAgICBLR1M6ICfQu9CyJyxcbiAgICBMQUs6ICfigq0nLFxuICAgIExWTDogJ0xzJyxcbiAgICBMQlA6ICfCoycsXG4gICAgTFJEOiAnJCcsXG4gICAgTFRMOiAnTHQnLFxuICAgIE1LRDogJ9C00LXQvScsXG4gICAgTVlSOiAnUk0nLFxuICAgIE1VUjogJ+KCqCcsXG4gICAgTVhOOiAnJCcsXG4gICAgTU5UOiAn4oKuJyxcbiAgICBNWk46ICdNVCcsXG4gICAgTkFEOiAnJCcsXG4gICAgTlBSOiAn4oKoJyxcbiAgICBBTkc6ICfGkicsXG4gICAgTlpEOiAnJCcsXG4gICAgTklPOiAnQyQnLFxuICAgIE5HTjogJ+KCpicsXG4gICAgTk9LOiAna3InLFxuICAgIE9NUjogJ++3vCcsXG4gICAgUEtSOiAn4oKoJyxcbiAgICBQQUI6ICdCLy4nLFxuICAgIFBZRzogJ0dzJyxcbiAgICBQRU46ICdTLy4nLFxuICAgIFBIUDogJ+KCsScsXG4gICAgUExOOiAnesWCJyxcbiAgICBRQVI6ICfvt7wnLFxuICAgIFJPTjogJ2xlaScsXG4gICAgUlVCOiAn4oK9JyxcbiAgICBSTUI6ICfvv6UnLFxuICAgIFNIUDogJ8KjJyxcbiAgICBTQVI6ICfvt7wnLFxuICAgIFJTRDogJ9CU0LjQvS4nLFxuICAgIFNDUjogJ+KCqCcsXG4gICAgU0dEOiAnJCcsXG4gICAgU0JEOiAnJCcsXG4gICAgU09TOiAnUycsXG4gICAgWkFSOiAnUicsXG4gICAgTEtSOiAn4oKoJyxcbiAgICBTRUs6ICdrcicsXG4gICAgQ0hGOiAnQ0hGJyxcbiAgICBTUkQ6ICckJyxcbiAgICBTWVA6ICfCoycsXG4gICAgVFpTOiAnVFNoJyxcbiAgICBUV0Q6ICdOVCQnLFxuICAgIFRIQjogJ+C4vycsXG4gICAgVFREOiAnVFQkJyxcbiAgICBUUlk6ICfigronLFxuICAgIFRSTDogJ+KCpCcsXG4gICAgVFZEOiAnJCcsXG4gICAgVUdYOiAnVVNoJyxcbiAgICBVQUg6ICfigrQnLFxuICAgIEdCUDogJ8KjJyxcbiAgICBVU0Q6ICckJyxcbiAgICBVWVU6ICckVScsXG4gICAgVVpTOiAn0LvQsicsXG4gICAgVkVGOiAnQnMnLFxuICAgIFZORDogJ+KCqycsXG4gICAgWUVSOiAn77e8JyxcbiAgICBaV0Q6ICdaJCd9O1xuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0Q3VycmVuY3koYW1vdW50OiBhbnksIG9wdGlvbnM6IGFueSkge1xuICAvKlxuICAgICogICBFeGFtcGxlIHVzYWdlOlxuXG4gICAgICAgICAgICBmb3JtYXRDdXJyZW5jeSgtMjIyLjEyMzQ1Niwge2N1cnJlbmN5OiAnRUdQJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0NvZGVJZk5vU3ltYm9sOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbmNpYWxOZWdhdGl2ZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjaW1hbFBsYWNlczogM30pXG5cbiAgICAgICAgICAgIC0tPiAnKMKjMjIyLjEyMyknXG4gICAgKi9cblxuICBsZXQgc3ltYm9sO1xuICBsZXQgbmVnYXRpdmUgPSBmYWxzZTtcbiAgbGV0IHJlc3VsdDtcbiAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gIG9wdGlvbnMuY3VycmVuY3kgPSBvcHRpb25zLmN1cnJlbmN5IHx8ICdBVUQnO1xuICBvcHRpb25zLnNob3dDb2RlSWZOb1N5bWJvbCA9IG9wdGlvbnMuc2hvd0NvZGVJZk5vU3ltYm9sIHx8IHRydWU7XG4gIG9wdGlvbnMuc3ltYm9sQWZ0ZXJBbW91bnQgPSBvcHRpb25zLnN5bWJvbEFmdGVyQW1vdW50IHx8IGZhbHNlO1xuICBvcHRpb25zLmZpbmFuY2lhbE5lZ2F0aXZlID0gb3B0aW9ucy5maW5hbmNpYWxOZWdhdGl2ZSB8fCBmYWxzZTtcbiAgb3B0aW9ucy5jb2RlQWZ0ZXJTeW1ib2wgPSBvcHRpb25zLmNvZGVBZnRlclN5bWJvbCB8fCBmYWxzZTtcbiAgb3B0aW9ucy5jb2RlQmVmb3JlU3ltYm9sID0gb3B0aW9ucy5jb2RlQmVmb3JlU3ltYm9sIHx8IGZhbHNlO1xuICBvcHRpb25zLnNwYWNlQmV0d2VlblN5bWJvbCA9IG9wdGlvbnMuc3BhY2VCZXR3ZWVuU3ltYm9sIHx8IGZhbHNlO1xuICBvcHRpb25zLmRlY2ltYWxQbGFjZXMgPSBvcHRpb25zLmRlY2ltYWxQbGFjZXMgfHwgMjtcbiAgb3B0aW9ucy5kZWNpbWFsU2VwZXJhdG9yID0gb3B0aW9ucy5kZWNpbWFsU2VwZXJhdG9yIHx8ICcuJztcbiAgb3B0aW9ucy5jb2RlQWZ0ZXJBbW91bnQgPSBvcHRpb25zLmNvZGVBZnRlckFtb3VudCB8fCBmYWxzZTtcbiAgaWYgKGFtb3VudCA8IDAuMCkge1xuICAgIG5lZ2F0aXZlID0gdHJ1ZTtcbiAgICAgICAgYW1vdW50ICo9IC0xLjA7IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcbiAgfVxuICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGN1cnJlbmN5TWFwLCBvcHRpb25zLmN1cnJlbmN5KSkge1xuICAgIHN5bWJvbCA9IGN1cnJlbmN5TWFwW29wdGlvbnMuY3VycmVuY3ldO1xuICAgIGlmIChvcHRpb25zLmNvZGVBZnRlclN5bWJvbCkge1xuICAgICAgc3ltYm9sICs9ICcoJyArIG9wdGlvbnMuY3VycmVuY3kgKyAnKSAnO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy5jb2RlQmVmb3JlU3ltYm9sKSB7XG4gICAgICBzeW1ib2wgPSBgKCR7b3B0aW9ucy5jdXJyZW5jeX0pICR7c3ltYm9sfWA7XG4gICAgfVxuICB9IGVsc2UgaWYgKG9wdGlvbnMuc2hvd0NvZGVJZk5vU3ltYm9sKSB7XG4gICAgc3ltYm9sID0gb3B0aW9ucy5jdXJyZW5jeTtcbiAgfSBlbHNlIHtcbiAgICBzeW1ib2wgPSAnJztcbiAgfVxuICAgIGFtb3VudCA9IGFtb3VudC50b0ZpeGVkKG9wdGlvbnMuZGVjaW1hbFBsYWNlcyk7XG4gICAgYW1vdW50ID0gYW1vdW50LnJlcGxhY2UoJy4nLCBvcHRpb25zLmRlY2ltYWxTZXBlcmF0b3IpO1xuICBpZiAob3B0aW9ucy5zeW1ib2xBZnRlckFtb3VudCkge1xuICAgIHJlc3VsdCA9IGFtb3VudDtcbiAgICBpZiAob3B0aW9ucy5zcGFjZUJldHdlZW5TeW1ib2wpIHtcbiAgICAgIHJlc3VsdCArPSAnICc7XG4gICAgfVxuICAgIHJlc3VsdCArPSBzeW1ib2w7XG4gIH0gZWxzZSB7XG4gICAgcmVzdWx0ID0gc3ltYm9sO1xuICAgIGlmIChvcHRpb25zLnNwYWNlQmV0d2VlblN5bWJvbCkge1xuICAgICAgcmVzdWx0ICs9ICcgJztcbiAgICB9XG4gICAgcmVzdWx0ICs9IGFtb3VudDtcbiAgfVxuICBpZiAobmVnYXRpdmUpIHtcbiAgICBpZiAob3B0aW9ucy5maW5hbmNpYWxOZWdhdGl2ZSkge1xuICAgICAgcmVzdWx0ID0gYCgke3Jlc3VsdH0pYDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzdWx0ID0gYC0ke3Jlc3VsdH1gO1xuICAgIH1cbiAgfVxuICBpZiAob3B0aW9ucy5jb2RlQWZ0ZXJBbW91bnQgPT09IHRydWUpIHtcbiAgICByZXN1bHQgKz0gYCAoJHtvcHRpb25zLmN1cnJlbmN5fSlgO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sSUFBTUEsV0FBZ0IsR0FDM0I7RUFBQ0MsR0FBRyxFQUFFLEdBQUc7RUFDUEMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLElBQUk7RUFDVEMsR0FBRyxFQUFFLEtBQUs7RUFDVkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEtBQUs7RUFDVkMsR0FBRyxFQUFFLElBQUk7RUFDVEMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLElBQUk7RUFDVEMsR0FBRyxFQUFFLElBQUk7RUFDVEMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLElBQUk7RUFDVEMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLElBQUk7RUFDVEMsR0FBRyxFQUFFLElBQUk7RUFDVEMsR0FBRyxFQUFFLEtBQUs7RUFDVkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLElBQUk7RUFDVEMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLElBQUk7RUFDVEMsR0FBRyxFQUFFLElBQUk7RUFDVEMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLElBQUk7RUFDVEMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEtBQUs7RUFDVkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEtBQUs7RUFDVkMsR0FBRyxFQUFFLElBQUk7RUFDVEMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLElBQUk7RUFDVEMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLElBQUk7RUFDVEMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLElBQUk7RUFDVEMsR0FBRyxFQUFFLEtBQUs7RUFDVkMsR0FBRyxFQUFFLElBQUk7RUFDVEMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLElBQUk7RUFDVEMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLElBQUk7RUFDVEMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLElBQUk7RUFDVEMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEtBQUs7RUFDVkMsR0FBRyxFQUFFLElBQUk7RUFDVEMsR0FBRyxFQUFFLEtBQUs7RUFDVkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLElBQUk7RUFDVEMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEtBQUs7RUFDVkMsR0FBRyxFQUFFLEdBQUc7RUFDUkMsR0FBRyxFQUFFLEdBQUc7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