@syncfusion/ej2-base 24.2.8 → 25.1.35-579988
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.json +2 -1
- package/CHANGELOG.md +641 -677
- package/{README.md → ReadMe.md} +100 -100
- package/dist/ej2-base.umd.min.js +1 -10
- package/dist/ej2-base.umd.min.js.map +1 -1
- package/dist/es6/ej2-base.es2015.js +178 -1025
- package/dist/es6/ej2-base.es2015.js.map +1 -1
- package/dist/es6/ej2-base.es5.js +226 -934
- package/dist/es6/ej2-base.es5.js.map +1 -1
- package/dist/global/ej2-base.min.js +1 -10
- package/dist/global/ej2-base.min.js.map +1 -1
- package/dist/global/index.d.ts +0 -9
- package/dist/ts/ajax.ts +236 -0
- package/dist/ts/animation.ts +544 -0
- package/dist/ts/base.ts +357 -0
- package/dist/ts/browser.ts +387 -0
- package/dist/ts/child-property.ts +192 -0
- package/dist/ts/component.ts +519 -0
- package/dist/ts/dom.ts +488 -0
- package/dist/ts/draggable.ts +1155 -0
- package/dist/ts/droppable.ts +172 -0
- package/dist/ts/event-handler.ts +169 -0
- package/dist/ts/internationalization.ts +369 -0
- package/dist/ts/intl/date-formatter.ts +317 -0
- package/dist/ts/intl/date-parser.ts +426 -0
- package/dist/ts/intl/intl-base.ts +1104 -0
- package/dist/ts/intl/number-formatter.ts +411 -0
- package/dist/ts/intl/number-parser.ts +158 -0
- package/dist/ts/intl/parser-base.ts +394 -0
- package/dist/ts/keyboard.ts +238 -0
- package/dist/ts/l10n.ts +94 -0
- package/dist/ts/module-loader.ts +149 -0
- package/dist/ts/notify-property-change.ts +726 -0
- package/dist/ts/observer.ts +236 -0
- package/dist/ts/sanitize-helper.ts +224 -0
- package/dist/ts/template-engine.ts +191 -0
- package/dist/ts/template.ts +329 -0
- package/dist/ts/touch.ts +544 -0
- package/dist/ts/util.ts +523 -0
- package/dist/ts/validate-lic.ts +0 -0
- package/e2e/crypto.js +16 -16
- package/e2e/m.protractor.config.js +286 -286
- package/e2e/modified-protractor/protractor.config.js +316 -316
- package/e2e/protractor.config.js +389 -332
- package/helpers/e2e/index.js +3 -3
- package/license +10 -10
- package/package.json +225 -174
- package/src/ajax.d.ts +1 -1
- package/src/ajax.js +3 -8
- package/src/animation-model.d.ts +41 -41
- package/src/animation.d.ts +6 -6
- package/src/animation.js +25 -25
- package/src/base.d.ts +2 -1
- package/src/base.js +9 -7
- package/src/component-model.d.ts +16 -16
- package/src/component.d.ts +9 -3
- package/src/component.js +50 -38
- package/src/draggable-model.d.ts +113 -113
- package/src/draggable.d.ts +2 -0
- package/src/draggable.js +45 -29
- package/src/droppable-model.d.ts +23 -23
- package/src/droppable.js +19 -19
- package/src/event-handler.js +2 -1
- package/src/index.d.ts +0 -3
- package/src/index.js +0 -3
- package/src/intl/date-formatter.js +2 -6
- package/src/intl/date-parser.js +1 -20
- package/src/intl/intl-base.js +1 -164
- package/src/intl/number-formatter.d.ts +3 -0
- package/src/intl/number-formatter.js +7 -7
- package/src/intl/number-parser.js +1 -0
- package/src/keyboard-model.d.ts +16 -16
- package/src/keyboard.js +19 -19
- package/src/module-loader.d.ts +12 -0
- package/src/module-loader.js +11 -0
- package/src/notify-property-change.js +3 -2
- package/src/observer.js +2 -0
- package/src/sanitize-helper.js +5 -0
- package/src/template-engine.js +1 -0
- package/src/template.js +3 -2
- package/src/touch-model.d.ts +39 -39
- package/src/touch.js +19 -19
- package/src/validate-lic.d.ts +0 -11
- package/src/validate-lic.js +1 -259
- package/styles/_all.scss +2 -2
- package/styles/_bds-dark-definition.scss +15 -0
- package/styles/_bds-definition.scss +15 -0
- package/styles/_bootstrap-dark-definition.scss +42 -42
- package/styles/_bootstrap-definition.scss +42 -42
- package/styles/_bootstrap4-definition.scss +11 -11
- package/styles/_bootstrap5-dark-definition.scss +9 -9
- package/styles/_bootstrap5-definition.scss +8 -8
- package/styles/_fabric-dark-definition.scss +42 -42
- package/styles/_fabric-definition.scss +42 -42
- package/styles/_fluent-dark-definition.scss +9 -9
- package/styles/_fluent-definition.scss +9 -9
- package/styles/_fluent2-definition.scss +9 -0
- package/styles/_fusionnew-dark-definition.scss +8 -8
- package/styles/_fusionnew-definition.scss +8 -8
- package/styles/_highcontrast-definition.scss +42 -42
- package/styles/_highcontrast-light-definition.scss +42 -42
- package/styles/_material-dark-definition.scss +48 -48
- package/styles/_material-definition.scss +49 -49
- package/styles/_material3-dark-definition.scss +14 -14
- package/styles/_material3-definition.scss +15 -15
- package/styles/_tailwind-dark-definition.scss +15 -15
- package/styles/_tailwind-definition.scss +15 -15
- package/styles/animation/_all.scss +560 -560
- package/styles/bootstrap-dark.css +10 -1
- package/styles/bootstrap.css +10 -1
- package/styles/bootstrap4.css +10 -1
- package/styles/bootstrap5-dark.css +10 -1
- package/styles/bootstrap5.css +10 -1
- package/styles/common/_all.scss +2 -2
- package/styles/common/_core.scss +117 -117
- package/styles/common/_mixin.scss +9 -9
- package/styles/definition/_bds-dark.scss +1179 -0
- package/styles/definition/_bds.scss +1474 -0
- package/styles/definition/_bootstrap-dark.scss +219 -219
- package/styles/definition/_bootstrap.scss +215 -215
- package/styles/definition/_bootstrap4.scss +167 -167
- package/styles/definition/_bootstrap5-dark.scss +493 -493
- package/styles/definition/_bootstrap5.scss +494 -494
- package/styles/definition/_fabric-dark.scss +200 -200
- package/styles/definition/_fabric.scss +198 -198
- package/styles/definition/_fluent-dark.scss +557 -557
- package/styles/definition/_fluent.scss +558 -558
- package/styles/definition/_fluent2.scss +2198 -0
- package/styles/definition/_fusionnew-dark.scss +362 -362
- package/styles/definition/_fusionnew.scss +363 -363
- package/styles/definition/_highcontrast-light.scss +193 -193
- package/styles/definition/_highcontrast.scss +195 -195
- package/styles/definition/_material-dark.scss +198 -198
- package/styles/definition/_material.scss +192 -192
- package/styles/definition/_material3-dark.scss +710 -710
- package/styles/definition/_material3.scss +792 -792
- package/styles/definition/_tailwind-dark.scss +488 -488
- package/styles/definition/_tailwind.scss +485 -485
- package/styles/fabric-dark.css +10 -1
- package/styles/fabric.css +10 -1
- package/styles/fluent-dark.css +10 -1
- package/styles/fluent.css +10 -1
- package/styles/highcontrast-light.css +10 -1
- package/styles/highcontrast.css +10 -1
- package/styles/material-dark.css +10 -1
- package/styles/material.css +10 -1
- package/styles/material3-dark.css +10 -1
- package/styles/material3.css +10 -1
- package/styles/offline-theme/material-dark.css +10 -1
- package/styles/offline-theme/material.css +10 -1
- package/styles/offline-theme/tailwind-dark.css +10 -1
- package/styles/offline-theme/tailwind.css +10 -1
- package/styles/tailwind-dark.css +10 -1
- package/styles/tailwind.css +10 -1
- package/.github/PULL_REQUEST_TEMPLATE/Bug.md +0 -60
- package/.github/PULL_REQUEST_TEMPLATE/feature.md +0 -42
- package/bin/syncfusion-license.js +0 -2
- package/dist/ej2-base.min.js +0 -10
- package/e2e/index.d.ts +0 -27
- package/src/fetch.d.ts +0 -114
- package/src/fetch.js +0 -116
- package/src/hijri-parser.d.ts +0 -19
- package/src/hijri-parser.js +0 -204
|
@@ -860,211 +860,6 @@ function getBlazorCurrencySymbol(currencyCode) {
|
|
|
860
860
|
return getValue(currencyCode || '', blazorCurrencyData);
|
|
861
861
|
}
|
|
862
862
|
|
|
863
|
-
/***
|
|
864
|
-
* Hijri parser
|
|
865
|
-
*/
|
|
866
|
-
// eslint-disable-next-line
|
|
867
|
-
var HijriParser;
|
|
868
|
-
(function (HijriParser) {
|
|
869
|
-
const dateCorrection = [28607, 28636, 28665, 28695, 28724, 28754, 28783, 28813, 28843, 28872, 28901, 28931, 28960, 28990,
|
|
870
|
-
29019, 29049, 29078, 29108, 29137, 29167, 29196, 29226, 29255, 29285, 29315, 29345, 29375, 29404, 29434, 29463, 29492, 29522,
|
|
871
|
-
29551, 29580, 29610, 29640, 29669, 29699, 29729, 29759, 29788, 29818, 29847, 29876, 29906, 29935, 29964, 29994, 30023, 30053,
|
|
872
|
-
30082, 30112, 30141, 30171, 30200, 30230, 30259, 30289, 30318, 30348, 30378, 30408, 30437, 30467, 30496, 30526, 30555, 30585,
|
|
873
|
-
30614, 30644, 30673, 30703, 30732, 30762, 30791, 30821, 30850, 30880, 30909, 30939, 30968, 30998, 31027, 31057, 31086, 31116,
|
|
874
|
-
31145, 31175, 31204, 31234, 31263, 31293, 31322, 31352, 31381, 31411, 31441, 31471, 31500, 31530, 31559, 31589, 31618, 31648,
|
|
875
|
-
31676, 31706, 31736, 31766, 31795, 31825, 31854, 31884, 31913, 31943, 31972, 32002, 32031, 32061, 32090, 32120, 32150, 32180,
|
|
876
|
-
32209, 32239, 32268, 32298, 32327, 32357, 32386, 32416, 32445, 32475, 32504, 32534, 32563, 32593, 32622, 32652, 32681, 32711,
|
|
877
|
-
32740, 32770, 32799, 32829, 32858, 32888, 32917, 32947, 32976, 33006, 33035, 33065, 33094, 33124, 33153, 33183, 33213, 33243,
|
|
878
|
-
33272, 33302, 33331, 33361, 33390, 33420, 33450, 33479, 33509, 33539, 33568, 33598, 33627, 33657, 33686, 33716, 33745, 33775,
|
|
879
|
-
33804, 33834, 33863, 33893, 33922, 33952, 33981, 34011, 34040, 34069, 34099, 34128, 34158, 34187, 34217, 34247, 34277, 34306,
|
|
880
|
-
34336, 34365, 34395, 34424, 34454, 34483, 34512, 34542, 34571, 34601, 34631, 34660, 34690, 34719, 34749, 34778, 34808, 34837,
|
|
881
|
-
34867, 34896, 34926, 34955, 34985, 35015, 35044, 35074, 35103, 35133, 35162, 35192, 35222, 35251, 35280, 35310, 35340, 35370,
|
|
882
|
-
35399, 35429, 35458, 35488, 35517, 35547, 35576, 35605, 35635, 35665, 35694, 35723, 35753, 35782, 35811, 35841, 35871, 35901,
|
|
883
|
-
35930, 35960, 35989, 36019, 36048, 36078, 36107, 36136, 36166, 36195, 36225, 36254, 36284, 36314, 36343, 36373, 36403, 36433,
|
|
884
|
-
36462, 36492, 36521, 36551, 36580, 36610, 36639, 36669, 36698, 36728, 36757, 36786, 36816, 36845, 36875, 36904, 36934, 36963,
|
|
885
|
-
36993, 37022, 37052, 37081, 37111, 37141, 37170, 37200, 37229, 37259, 37288, 37318, 37347, 37377, 37406, 37436, 37465, 37495,
|
|
886
|
-
37524, 37554, 37584, 37613, 37643, 37672, 37701, 37731, 37760, 37790, 37819, 37849, 37878, 37908, 37938, 37967, 37997, 38027,
|
|
887
|
-
38056, 38085, 38115, 38144, 38174, 38203, 38233, 38262, 38292, 38322, 38351, 38381, 38410, 38440, 38469, 38499, 38528, 38558,
|
|
888
|
-
38587, 38617, 38646, 38676, 38705, 38735, 38764, 38794, 38823, 38853, 38882, 38912, 38941, 38971, 39001, 39030, 39059, 39089,
|
|
889
|
-
39118, 39148, 39178, 39208, 39237, 39267, 39297, 39326, 39355, 39385, 39414, 39444, 39473, 39503, 39532, 39562, 39592, 39621,
|
|
890
|
-
39650, 39680, 39709, 39739, 39768, 39798, 39827, 39857, 39886, 39916, 39946, 39975, 40005, 40035, 40064, 40094, 40123, 40153,
|
|
891
|
-
40182, 40212, 40241, 40271, 40300, 40330, 40359, 40389, 40418, 40448, 40477, 40507, 40536, 40566, 40595, 40625, 40655, 40685,
|
|
892
|
-
40714, 40744, 40773, 40803, 40832, 40862, 40892, 40921, 40951, 40980, 41009, 41039, 41068, 41098, 41127, 41157, 41186, 41216,
|
|
893
|
-
41245, 41275, 41304, 41334, 41364, 41393, 41422, 41452, 41481, 41511, 41540, 41570, 41599, 41629, 41658, 41688, 41718, 41748,
|
|
894
|
-
41777, 41807, 41836, 41865, 41894, 41924, 41953, 41983, 42012, 42042, 42072, 42102, 42131, 42161, 42190, 42220, 42249, 42279,
|
|
895
|
-
42308, 42337, 42367, 42397, 42426, 42456, 42485, 42515, 42545, 42574, 42604, 42633, 42662, 42692, 42721, 42751, 42780, 42810,
|
|
896
|
-
42839, 42869, 42899, 42929, 42958, 42988, 43017, 43046, 43076, 43105, 43135, 43164, 43194, 43223, 43253, 43283, 43312, 43342,
|
|
897
|
-
43371, 43401, 43430, 43460, 43489, 43519, 43548, 43578, 43607, 43637, 43666, 43696, 43726, 43755, 43785, 43814, 43844, 43873,
|
|
898
|
-
43903, 43932, 43962, 43991, 44021, 44050, 44080, 44109, 44139, 44169, 44198, 44228, 44258, 44287, 44317, 44346, 44375, 44405,
|
|
899
|
-
44434, 44464, 44493, 44523, 44553, 44582, 44612, 44641, 44671, 44700, 44730, 44759, 44788, 44818, 44847, 44877, 44906, 44936,
|
|
900
|
-
44966, 44996, 45025, 45055, 45084, 45114, 45143, 45172, 45202, 45231, 45261, 45290, 45320, 45350, 45380, 45409, 45439, 45468,
|
|
901
|
-
45498, 45527, 45556, 45586, 45615, 45644, 45674, 45704, 45733, 45763, 45793, 45823, 45852, 45882, 45911, 45940, 45970, 45999,
|
|
902
|
-
46028, 46058, 46088, 46117, 46147, 46177, 46206, 46236, 46265, 46295, 46324, 46354, 46383, 46413, 46442, 46472, 46501, 46531,
|
|
903
|
-
46560, 46590, 46620, 46649, 46679, 46708, 46738, 46767, 46797, 46826, 46856, 46885, 46915, 46944, 46974, 47003, 47033, 47063,
|
|
904
|
-
47092, 47122, 47151, 47181, 47210, 47240, 47269, 47298, 47328, 47357, 47387, 47417, 47446, 47476, 47506, 47535, 47565, 47594,
|
|
905
|
-
47624, 47653, 47682, 47712, 47741, 47771, 47800, 47830, 47860, 47890, 47919, 47949, 47978, 48008, 48037, 48066, 48096, 48125,
|
|
906
|
-
48155, 48184, 48214, 48244, 48273, 48303, 48333, 48362, 48392, 48421, 48450, 48480, 48509, 48538, 48568, 48598, 48627, 48657,
|
|
907
|
-
48687, 48717, 48746, 48776, 48805, 48834, 48864, 48893, 48922, 48952, 48982, 49011, 49041, 49071, 49100, 49130, 49160, 49189,
|
|
908
|
-
49218, 49248, 49277, 49306, 49336, 49365, 49395, 49425, 49455, 49484, 49514, 49543, 49573, 49602, 49632, 49661, 49690, 49720,
|
|
909
|
-
49749, 49779, 49809, 49838, 49868, 49898, 49927, 49957, 49986, 50016, 50045, 50075, 50104, 50133, 50163, 50192, 50222, 50252,
|
|
910
|
-
50281, 50311, 50340, 50370, 50400, 50429, 50459, 50488, 50518, 50547, 50576, 50606, 50635, 50665, 50694, 50724, 50754, 50784,
|
|
911
|
-
50813, 50843, 50872, 50902, 50931, 50960, 50990, 51019, 51049, 51078, 51108, 51138, 51167, 51197, 51227, 51256, 51286, 51315,
|
|
912
|
-
51345, 51374, 51403, 51433, 51462, 51492, 51522, 51552, 51582, 51611, 51641, 51670, 51699, 51729, 51758, 51787, 51816, 51846,
|
|
913
|
-
51876, 51906, 51936, 51965, 51995, 52025, 52054, 52083, 52113, 52142, 52171, 52200, 52230, 52260, 52290, 52319, 52349, 52379,
|
|
914
|
-
52408, 52438, 52467, 52497, 52526, 52555, 52585, 52614, 52644, 52673, 52703, 52733, 52762, 52792, 52822, 52851, 52881, 52910,
|
|
915
|
-
52939, 52969, 52998, 53028, 53057, 53087, 53116, 53146, 53176, 53205, 53235, 53264, 53294, 53324, 53353, 53383, 53412, 53441,
|
|
916
|
-
53471, 53500, 53530, 53559, 53589, 53619, 53648, 53678, 53708, 53737, 53767, 53796, 53825, 53855, 53884, 53913, 53943, 53973,
|
|
917
|
-
54003, 54032, 54062, 54092, 54121, 54151, 54180, 54209, 54239, 54268, 54297, 54327, 54357, 54387, 54416, 54446, 54476, 54505,
|
|
918
|
-
54535, 54564, 54593, 54623, 54652, 54681, 54711, 54741, 54770, 54800, 54830, 54859, 54889, 54919, 54948, 54977, 55007, 55036,
|
|
919
|
-
55066, 55095, 55125, 55154, 55184, 55213, 55243, 55273, 55302, 55332, 55361, 55391, 55420, 55450, 55479, 55508, 55538, 55567,
|
|
920
|
-
55597, 55627, 55657, 55686, 55716, 55745, 55775, 55804, 55834, 55863, 55892, 55922, 55951, 55981, 56011, 56040, 56070, 56100,
|
|
921
|
-
56129, 56159, 56188, 56218, 56247, 56276, 56306, 56335, 56365, 56394, 56424, 56454, 56483, 56513, 56543, 56572, 56601, 56631,
|
|
922
|
-
56660, 56690, 56719, 56749, 56778, 56808, 56837, 56867, 56897, 56926, 56956, 56985, 57015, 57044, 57074, 57103, 57133, 57162,
|
|
923
|
-
57192, 57221, 57251, 57280, 57310, 57340, 57369, 57399, 57429, 57458, 57487, 57517, 57546, 57576, 57605, 57634, 57664, 57694,
|
|
924
|
-
57723, 57753, 57783, 57813, 57842, 57871, 57901, 57930, 57959, 57989, 58018, 58048, 58077, 58107, 58137, 58167, 58196, 58226,
|
|
925
|
-
58255, 58285, 58314, 58343, 58373, 58402, 58432, 58461, 58491, 58521, 58551, 58580, 58610, 58639, 58669, 58698, 58727, 58757,
|
|
926
|
-
58786, 58816, 58845, 58875, 58905, 58934, 58964, 58994, 59023, 59053, 59082, 59111, 59141, 59170, 59200, 59229, 59259, 59288,
|
|
927
|
-
59318, 59348, 59377, 59407, 59436, 59466, 59495, 59525, 59554, 59584, 59613, 59643, 59672, 59702, 59731, 59761, 59791, 59820,
|
|
928
|
-
59850, 59879, 59909, 59939, 59968, 59997, 60027, 60056, 60086, 60115, 60145, 60174, 60204, 60234, 60264, 60293, 60323, 60352,
|
|
929
|
-
60381, 60411, 60440, 60469, 60499, 60528, 60558, 60588, 60618, 60648, 60677, 60707, 60736, 60765, 60795, 60824, 60853, 60883,
|
|
930
|
-
60912, 60942, 60972, 61002, 61031, 61061, 61090, 61120, 61149, 61179, 61208, 61237, 61267, 61296, 61326, 61356, 61385, 61415,
|
|
931
|
-
61445, 61474, 61504, 61533, 61563, 61592, 61621, 61651, 61680, 61710, 61739, 61769, 61799, 61828, 61858, 61888, 61917, 61947,
|
|
932
|
-
61976, 62006, 62035, 62064, 62094, 62123, 62153, 62182, 62212, 62242, 62271, 62301, 62331, 62360, 62390, 62419, 62448, 62478,
|
|
933
|
-
62507, 62537, 62566, 62596, 62625, 62655, 62685, 62715, 62744, 62774, 62803, 62832, 62862, 62891, 62921, 62950, 62980, 63009,
|
|
934
|
-
63039, 63069, 63099, 63128, 63157, 63187, 63216, 63246, 63275, 63305, 63334, 63363, 63393, 63423, 63453, 63482, 63512, 63541,
|
|
935
|
-
63571, 63600, 63630, 63659, 63689, 63718, 63747, 63777, 63807, 63836, 63866, 63895, 63925, 63955, 63984, 64014, 64043, 64073,
|
|
936
|
-
64102, 64131, 64161, 64190, 64220, 64249, 64279, 64309, 64339, 64368, 64398, 64427, 64457, 64486, 64515, 64545, 64574, 64603,
|
|
937
|
-
64633, 64663, 64692, 64722, 64752, 64782, 64811, 64841, 64870, 64899, 64929, 64958, 64987, 65017, 65047, 65076, 65106, 65136,
|
|
938
|
-
65166, 65195, 65225, 65254, 65283, 65313, 65342, 65371, 65401, 65431, 65460, 65490, 65520, 65549, 65579, 65608, 65638, 65667,
|
|
939
|
-
65697, 65726, 65755, 65785, 65815, 65844, 65874, 65903, 65933, 65963, 65992, 66022, 66051, 66081, 66110, 66140, 66169, 66199,
|
|
940
|
-
66228, 66258, 66287, 66317, 66346, 66376, 66405, 66435, 66465, 66494, 66524, 66553, 66583, 66612, 66641, 66671, 66700, 66730,
|
|
941
|
-
66760, 66789, 66819, 66849, 66878, 66908, 66937, 66967, 66996, 67025, 67055, 67084, 67114, 67143, 67173, 67203, 67233, 67262,
|
|
942
|
-
67292, 67321, 67351, 67380, 67409, 67439, 67468, 67497, 67527, 67557, 67587, 67617, 67646, 67676, 67705, 67735, 67764, 67793,
|
|
943
|
-
67823, 67852, 67882, 67911, 67941, 67971, 68000, 68030, 68060, 68089, 68119, 68148, 68177, 68207, 68236, 68266, 68295, 68325,
|
|
944
|
-
68354, 68384, 68414, 68443, 68473, 68502, 68532, 68561, 68591, 68620, 68650, 68679, 68708, 68738, 68768, 68797, 68827, 68857,
|
|
945
|
-
68886, 68916, 68946, 68975, 69004, 69034, 69063, 69092, 69122, 69152, 69181, 69211, 69240, 69270, 69300, 69330, 69359, 69388,
|
|
946
|
-
69418, 69447, 69476, 69506, 69535, 69565, 69595, 69624, 69654, 69684, 69713, 69743, 69772, 69802, 69831, 69861, 69890, 69919,
|
|
947
|
-
69949, 69978, 70008, 70038, 70067, 70097, 70126, 70156, 70186, 70215, 70245, 70274, 70303, 70333, 70362, 70392, 70421, 70451,
|
|
948
|
-
70481, 70510, 70540, 70570, 70599, 70629, 70658, 70687, 70717, 70746, 70776, 70805, 70835, 70864, 70894, 70924, 70954, 70983,
|
|
949
|
-
71013, 71042, 71071, 71101, 71130, 71159, 71189, 71218, 71248, 71278, 71308, 71337, 71367, 71397, 71426, 71455, 71485, 71514,
|
|
950
|
-
71543, 71573, 71602, 71632, 71662, 71691, 71721, 71751, 71781, 71810, 71839, 71869, 71898, 71927, 71957, 71986, 72016, 72046,
|
|
951
|
-
72075, 72105, 72135, 72164, 72194, 72223, 72253, 72282, 72311, 72341, 72370, 72400, 72429, 72459, 72489, 72518, 72548, 72577,
|
|
952
|
-
72607, 72637, 72666, 72695, 72725, 72754, 72784, 72813, 72843, 72872, 72902, 72931, 72961, 72991, 73020, 73050, 73080, 73109,
|
|
953
|
-
73139, 73168, 73197, 73227, 73256, 73286, 73315, 73345, 73375, 73404, 73434, 73464, 73493, 73523, 73552, 73581, 73611, 73640,
|
|
954
|
-
73669, 73699, 73729, 73758, 73788, 73818, 73848, 73877, 73907, 73936, 73965, 73995, 74024, 74053, 74083, 74113, 74142, 74172,
|
|
955
|
-
74202, 74231, 74261, 74291, 74320, 74349, 74379, 74408, 74437, 74467, 74497, 74526, 74556, 74586, 74615, 74645, 74675, 74704,
|
|
956
|
-
74733, 74763, 74792, 74822, 74851, 74881, 74910, 74940, 74969, 74999, 75029, 75058, 75088, 75117, 75147, 75176, 75206, 75235,
|
|
957
|
-
75264, 75294, 75323, 75353, 75383, 75412, 75442, 75472, 75501, 75531, 75560, 75590, 75619, 75648, 75678, 75707, 75737, 75766,
|
|
958
|
-
75796, 75826, 75856, 75885, 75915, 75944, 75974, 76003, 76032, 76062, 76091, 76121, 76150, 76180, 76210, 76239, 76269, 76299,
|
|
959
|
-
76328, 76358, 76387, 76416, 76446, 76475, 76505, 76534, 76564, 76593, 76623, 76653, 76682, 76712, 76741, 76771, 76801, 76830,
|
|
960
|
-
76859, 76889, 76918, 76948, 76977, 77007, 77036, 77066, 77096, 77125, 77155, 77185, 77214, 77243, 77273, 77302, 77332, 77361,
|
|
961
|
-
77390, 77420, 77450, 77479, 77509, 77539, 77569, 77598, 77627, 77657, 77686, 77715, 77745, 77774, 77804, 77833, 77863, 77893,
|
|
962
|
-
77923, 77952, 77982, 78011, 78041, 78070, 78099, 78129, 78158, 78188, 78217, 78247, 78277, 78307, 78336, 78366, 78395, 78425,
|
|
963
|
-
78454, 78483, 78513, 78542, 78572, 78601, 78631, 78661, 78690, 78720, 78750, 78779, 78808, 78838, 78867, 78897, 78926, 78956,
|
|
964
|
-
78985, 79015, 79044, 79074, 79104, 79133, 79163, 79192, 79222, 79251, 79281, 79310, 79340, 79369, 79399, 79428, 79458, 79487,
|
|
965
|
-
79517, 79546, 79576, 79606, 79635, 79665, 79695, 79724, 79753, 79783, 79812, 79841, 79871, 79900, 79930, 79960, 79990
|
|
966
|
-
];
|
|
967
|
-
/**
|
|
968
|
-
*
|
|
969
|
-
* @param {Date} gDate ?
|
|
970
|
-
* @returns {Object} ?
|
|
971
|
-
*/
|
|
972
|
-
function getHijriDate(gDate) {
|
|
973
|
-
let day = gDate.getDate();
|
|
974
|
-
let month = gDate.getMonth();
|
|
975
|
-
let year = gDate.getFullYear();
|
|
976
|
-
let tMonth = month + 1;
|
|
977
|
-
let tYear = year;
|
|
978
|
-
if (tMonth < 3) {
|
|
979
|
-
tYear -= 1;
|
|
980
|
-
tMonth += 12;
|
|
981
|
-
}
|
|
982
|
-
let yPrefix = Math.floor(tYear / 100.);
|
|
983
|
-
let julilanOffset = yPrefix - Math.floor(yPrefix / 4.) - 2;
|
|
984
|
-
const julianNumber = Math.floor(365.25 * (tYear + 4716)) + Math.floor(30.6001 * (tMonth + 1)) + day - julilanOffset - 1524;
|
|
985
|
-
yPrefix = Math.floor((julianNumber - 1867216.25) / 36524.25);
|
|
986
|
-
julilanOffset = yPrefix - Math.floor(yPrefix / 4.) + 1;
|
|
987
|
-
const b = julianNumber + julilanOffset + 1524;
|
|
988
|
-
let c = Math.floor((b - 122.1) / 365.25);
|
|
989
|
-
const d = Math.floor(365.25 * c);
|
|
990
|
-
const tempMonth = Math.floor((b - d) / 30.6001);
|
|
991
|
-
day = (b - d) - Math.floor(30.6001 * tempMonth);
|
|
992
|
-
month = Math.floor((b - d) / 20.6001);
|
|
993
|
-
if (month > 13) {
|
|
994
|
-
c += 1;
|
|
995
|
-
month -= 12;
|
|
996
|
-
}
|
|
997
|
-
month -= 1;
|
|
998
|
-
year = c - 4716;
|
|
999
|
-
const modifiedJulianDate = julianNumber - 2400000;
|
|
1000
|
-
// date calculation for year after 2077
|
|
1001
|
-
const iyear = 10631. / 30.;
|
|
1002
|
-
let z = julianNumber - 1948084;
|
|
1003
|
-
const cyc = Math.floor(z / 10631.);
|
|
1004
|
-
z = z - 10631 * cyc;
|
|
1005
|
-
const j = Math.floor((z - 0.1335) / iyear);
|
|
1006
|
-
const iy = 30 * cyc + j;
|
|
1007
|
-
z = z - Math.floor(j * iyear + 0.1335);
|
|
1008
|
-
let im = Math.floor((z + 28.5001) / 29.5);
|
|
1009
|
-
/* istanbul ignore next */
|
|
1010
|
-
if (im === 13) {
|
|
1011
|
-
im = 12;
|
|
1012
|
-
}
|
|
1013
|
-
const tempDay = z - Math.floor(29.5001 * im - 29);
|
|
1014
|
-
let i = 0;
|
|
1015
|
-
for (; i < dateCorrection.length; i++) {
|
|
1016
|
-
if (dateCorrection[parseInt(i.toString(), 10)] > modifiedJulianDate) {
|
|
1017
|
-
break;
|
|
1018
|
-
}
|
|
1019
|
-
}
|
|
1020
|
-
const iln = i + 16260;
|
|
1021
|
-
const ii = Math.floor((iln - 1) / 12);
|
|
1022
|
-
let hYear = ii + 1;
|
|
1023
|
-
let hmonth = iln - 12 * ii;
|
|
1024
|
-
let hDate = modifiedJulianDate - dateCorrection[i - 1] + 1;
|
|
1025
|
-
if ((hDate + '').length > 2) {
|
|
1026
|
-
hDate = tempDay;
|
|
1027
|
-
hmonth = im;
|
|
1028
|
-
hYear = iy;
|
|
1029
|
-
}
|
|
1030
|
-
return { year: hYear, month: hmonth, date: hDate };
|
|
1031
|
-
}
|
|
1032
|
-
HijriParser.getHijriDate = getHijriDate;
|
|
1033
|
-
/**
|
|
1034
|
-
*
|
|
1035
|
-
* @param {number} year ?
|
|
1036
|
-
* @param {number} month ?
|
|
1037
|
-
* @param {number} day ?
|
|
1038
|
-
* @returns {Date} ?
|
|
1039
|
-
*/
|
|
1040
|
-
function toGregorian(year, month, day) {
|
|
1041
|
-
const iy = year;
|
|
1042
|
-
const im = month;
|
|
1043
|
-
const id = day;
|
|
1044
|
-
const ii = iy - 1;
|
|
1045
|
-
const iln = (ii * 12) + 1 + (im - 1);
|
|
1046
|
-
const i = iln - 16260;
|
|
1047
|
-
const mcjdn = id + dateCorrection[i - 1] - 1;
|
|
1048
|
-
const julianDate = mcjdn + 2400000;
|
|
1049
|
-
const z = Math.floor(julianDate + 0.5);
|
|
1050
|
-
let a = Math.floor((z - 1867216.25) / 36524.25);
|
|
1051
|
-
a = z + 1 + a - Math.floor(a / 4);
|
|
1052
|
-
const b = a + 1524;
|
|
1053
|
-
const c = Math.floor((b - 122.1) / 365.25);
|
|
1054
|
-
const d = Math.floor(365.25 * c);
|
|
1055
|
-
const e = Math.floor((b - d) / 30.6001);
|
|
1056
|
-
const gDay = b - d - Math.floor(e * 30.6001);
|
|
1057
|
-
let gMonth = e - (e > 13.5 ? 13 : 1);
|
|
1058
|
-
const gYear = c - (gMonth > 2.5 ? 4716 : 4715);
|
|
1059
|
-
/* istanbul ignore next */
|
|
1060
|
-
if (gYear <= 0) {
|
|
1061
|
-
gMonth--;
|
|
1062
|
-
} // No year zero
|
|
1063
|
-
return new Date(gYear + '/' + (gMonth) + '/' + gDay);
|
|
1064
|
-
}
|
|
1065
|
-
HijriParser.toGregorian = toGregorian;
|
|
1066
|
-
})(HijriParser || (HijriParser = {}));
|
|
1067
|
-
|
|
1068
863
|
const abbreviateRegexGlobal = /\/MMMMM|MMMM|MMM|a|LLLL|LLL|EEEEE|EEEE|E|K|cccc|ccc|WW|W|G+|z+/gi;
|
|
1069
864
|
const standalone = 'stand-alone';
|
|
1070
865
|
const weekdayKey = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'];
|
|
@@ -1195,7 +990,7 @@ class DateFormat {
|
|
|
1195
990
|
const pattern = options.pattern;
|
|
1196
991
|
let ret = '';
|
|
1197
992
|
const matches = pattern.match(IntlBase.dateParseRegex);
|
|
1198
|
-
const dObject = this.getCurrentDateValue(value
|
|
993
|
+
const dObject = this.getCurrentDateValue(value);
|
|
1199
994
|
for (const match of matches) {
|
|
1200
995
|
const length = match.length;
|
|
1201
996
|
let char = match[0];
|
|
@@ -1325,10 +1120,7 @@ class DateFormat {
|
|
|
1325
1120
|
}
|
|
1326
1121
|
return ret;
|
|
1327
1122
|
}
|
|
1328
|
-
static getCurrentDateValue(value
|
|
1329
|
-
if (isIslamic) {
|
|
1330
|
-
return HijriParser.getHijriDate(value);
|
|
1331
|
-
}
|
|
1123
|
+
static getCurrentDateValue(value) {
|
|
1332
1124
|
return { year: value.getFullYear(), month: value.getMonth() + 1, date: value.getDate() };
|
|
1333
1125
|
}
|
|
1334
1126
|
/**
|
|
@@ -1548,6 +1340,7 @@ class NumberFormat {
|
|
|
1548
1340
|
* @param {number} value ?
|
|
1549
1341
|
* @param {base.GenericFormatOptions} fOptions ?
|
|
1550
1342
|
* @param {CommonOptions} dOptions ?
|
|
1343
|
+
* @param {NumberFormatOptions} [option] ?
|
|
1551
1344
|
* @returns {string} ?
|
|
1552
1345
|
*/
|
|
1553
1346
|
static intNumberFormatter(value, fOptions, dOptions, option) {
|
|
@@ -1599,7 +1392,7 @@ class NumberFormat {
|
|
|
1599
1392
|
fValue = fValue.replace('e', dOptions.numberMapper.numberSymbols[mapper$1[4]]);
|
|
1600
1393
|
}
|
|
1601
1394
|
fValue = fValue.replace('.', dOptions.numberMapper.numberSymbols[mapper$1[3]]);
|
|
1602
|
-
fValue = curData.format ===
|
|
1395
|
+
fValue = curData.format === '#,###,,;(#,###,,)' ? this.customPivotFormat(parseInt(fValue, 10)) : fValue;
|
|
1603
1396
|
if (curData.useGrouping) {
|
|
1604
1397
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
1605
1398
|
fValue = this.groupNumbers(fValue, curData.groupData.primary, curData.groupSeparator || ',', dOptions.numberMapper.numberSymbols[mapper$1[3]] || '.', curData.groupData.secondary);
|
|
@@ -1671,6 +1464,7 @@ class NumberFormat {
|
|
|
1671
1464
|
* @param {number} value ?
|
|
1672
1465
|
* @param {number} min ?
|
|
1673
1466
|
* @param {number} max ?
|
|
1467
|
+
* @param {NumberFormatOptions} [option] ?
|
|
1674
1468
|
* @returns {string} ?
|
|
1675
1469
|
*/
|
|
1676
1470
|
static processFraction(value, min, max, option) {
|
|
@@ -1722,16 +1516,18 @@ class NumberFormat {
|
|
|
1722
1516
|
* Returns custom format for pivot table
|
|
1723
1517
|
*
|
|
1724
1518
|
* @param {number} value ?
|
|
1519
|
+
* @returns {string} ?
|
|
1725
1520
|
*/
|
|
1726
1521
|
static customPivotFormat(value) {
|
|
1727
1522
|
if (value >= 500000) {
|
|
1728
1523
|
value /= 1000000;
|
|
1729
|
-
|
|
1524
|
+
// eslint-disable-next-line
|
|
1525
|
+
const [integer, decimal] = value.toString().split('.');
|
|
1730
1526
|
return decimal && +decimal.substring(0, 1) >= 5
|
|
1731
1527
|
? Math.ceil(value).toString()
|
|
1732
1528
|
: Math.floor(value).toString();
|
|
1733
1529
|
}
|
|
1734
|
-
return
|
|
1530
|
+
return '';
|
|
1735
1531
|
}
|
|
1736
1532
|
}
|
|
1737
1533
|
|
|
@@ -1931,25 +1727,6 @@ class DateParser {
|
|
|
1931
1727
|
if (isNullOrUndefined(parsedDateParts) || !Object.keys(parsedDateParts).length) {
|
|
1932
1728
|
return null;
|
|
1933
1729
|
}
|
|
1934
|
-
if (parseOptions.isIslamic) {
|
|
1935
|
-
let dobj = {};
|
|
1936
|
-
let tYear = parsedDateParts.year;
|
|
1937
|
-
const tDate = parsedDateParts.day;
|
|
1938
|
-
const tMonth = parsedDateParts.month;
|
|
1939
|
-
const ystrig = tYear ? (tYear + '') : '';
|
|
1940
|
-
const is2DigitYear = (ystrig.length === 2);
|
|
1941
|
-
if (!tYear || !tMonth || !tDate || is2DigitYear) {
|
|
1942
|
-
dobj = HijriParser.getHijriDate(new Date());
|
|
1943
|
-
}
|
|
1944
|
-
if (is2DigitYear) {
|
|
1945
|
-
tYear = parseInt((dobj.year + '').slice(0, 2) + ystrig, 10);
|
|
1946
|
-
}
|
|
1947
|
-
// tslint:disable-next-line
|
|
1948
|
-
const dateObject = HijriParser.toGregorian(tYear || dobj.year, tMonth || dobj.month, tDate || dobj.date);
|
|
1949
|
-
parsedDateParts.year = dateObject.getFullYear();
|
|
1950
|
-
parsedDateParts.month = dateObject.getMonth() + 1;
|
|
1951
|
-
parsedDateParts.day = dateObject.getDate();
|
|
1952
|
-
}
|
|
1953
1730
|
return this.getDateObject(parsedDateParts);
|
|
1954
1731
|
};
|
|
1955
1732
|
}
|
|
@@ -2069,6 +1846,7 @@ class DateParser {
|
|
|
2069
1846
|
// eslint-disable-next-line
|
|
2070
1847
|
matchString = ((prop === 'month') && (!parseOptions.isIslamic) && (parseOptions.culture === 'en' || parseOptions.culture === 'en-GB' || parseOptions.culture === 'en-US'))
|
|
2071
1848
|
? matchString[0].toUpperCase() + matchString.substring(1).toLowerCase() : matchString;
|
|
1849
|
+
// eslint-disable-next-line
|
|
2072
1850
|
matchString = ((prop !== 'month') && (prop === 'designator') && parseOptions.culture && parseOptions.culture.indexOf('en-') !== -1 && cultureOptions.indexOf(parseOptions.culture) === -1)
|
|
2073
1851
|
? matchString.toLowerCase() : matchString;
|
|
2074
1852
|
// eslint-disable-next-line
|
|
@@ -2146,6 +1924,7 @@ class DateParser {
|
|
|
2146
1924
|
}
|
|
2147
1925
|
|
|
2148
1926
|
const regExp$1 = RegExp;
|
|
1927
|
+
// eslint-disable-next-line
|
|
2149
1928
|
const parseRegex = new regExp$1('^([^0-9]*)' + '(([0-9,]*[0-9]+)(\.[0-9]+)?)' + '([Ee][+-]?[0-9]+)?([^0-9]*)$');
|
|
2150
1929
|
const groupRegex = /,/g;
|
|
2151
1930
|
const keys = ['minusSign', 'infinity'];
|
|
@@ -2444,10 +2223,12 @@ class Observer {
|
|
|
2444
2223
|
* @returns {void} ?
|
|
2445
2224
|
*/
|
|
2446
2225
|
offIntlEvents() {
|
|
2447
|
-
|
|
2226
|
+
// eslint-disable-next-line
|
|
2227
|
+
const eventsArr = this.boundedEvents['notifyExternalChange'];
|
|
2448
2228
|
if (eventsArr) {
|
|
2449
2229
|
for (let i = 0; i < eventsArr.length; i++) {
|
|
2450
|
-
|
|
2230
|
+
// eslint-disable-next-line
|
|
2231
|
+
const curContext = eventsArr[`${i}`].context;
|
|
2451
2232
|
if (curContext && curContext.detectFunction && curContext.randomId && !curContext.isRendered) {
|
|
2452
2233
|
this.off('notifyExternalChange', curContext.detectFunction, curContext.randomId);
|
|
2453
2234
|
i--;
|
|
@@ -3234,162 +3015,7 @@ var IntlBase;
|
|
|
3234
3015
|
}
|
|
3235
3016
|
}
|
|
3236
3017
|
};
|
|
3237
|
-
IntlBase.blazorDefaultObject = {
|
|
3238
|
-
'numbers': {
|
|
3239
|
-
'mapper': {
|
|
3240
|
-
'0': '0',
|
|
3241
|
-
'1': '1',
|
|
3242
|
-
'2': '2',
|
|
3243
|
-
'3': '3',
|
|
3244
|
-
'4': '4',
|
|
3245
|
-
'5': '5',
|
|
3246
|
-
'6': '6',
|
|
3247
|
-
'7': '7',
|
|
3248
|
-
'8': '8',
|
|
3249
|
-
'9': '9'
|
|
3250
|
-
},
|
|
3251
|
-
'mapperDigits': '0123456789',
|
|
3252
|
-
'numberSymbols': {
|
|
3253
|
-
'decimal': '.',
|
|
3254
|
-
'group': ',',
|
|
3255
|
-
'plusSign': '+',
|
|
3256
|
-
'minusSign': '-',
|
|
3257
|
-
'percentSign': '%',
|
|
3258
|
-
'nan': 'NaN',
|
|
3259
|
-
'timeSeparator': ':',
|
|
3260
|
-
'infinity': '∞'
|
|
3261
|
-
},
|
|
3262
|
-
'timeSeparator': ':',
|
|
3263
|
-
'currencySymbol': '$',
|
|
3264
|
-
'currencypData': {
|
|
3265
|
-
'nlead': '$',
|
|
3266
|
-
'nend': '',
|
|
3267
|
-
'groupSeparator': ',',
|
|
3268
|
-
'groupData': {
|
|
3269
|
-
'primary': 3
|
|
3270
|
-
},
|
|
3271
|
-
'maximumFraction': 2,
|
|
3272
|
-
'minimumFraction': 2
|
|
3273
|
-
},
|
|
3274
|
-
'percentpData': {
|
|
3275
|
-
'nlead': '',
|
|
3276
|
-
'nend': '%',
|
|
3277
|
-
'groupSeparator': ',',
|
|
3278
|
-
'groupData': {
|
|
3279
|
-
'primary': 3
|
|
3280
|
-
},
|
|
3281
|
-
'maximumFraction': 2,
|
|
3282
|
-
'minimumFraction': 2
|
|
3283
|
-
},
|
|
3284
|
-
'percentnData': {
|
|
3285
|
-
'nlead': '-',
|
|
3286
|
-
'nend': '%',
|
|
3287
|
-
'groupSeparator': ',',
|
|
3288
|
-
'groupData': {
|
|
3289
|
-
'primary': 3
|
|
3290
|
-
},
|
|
3291
|
-
'maximumFraction': 2,
|
|
3292
|
-
'minimumFraction': 2
|
|
3293
|
-
},
|
|
3294
|
-
'currencynData': {
|
|
3295
|
-
'nlead': '($',
|
|
3296
|
-
'nend': ')',
|
|
3297
|
-
'groupSeparator': ',',
|
|
3298
|
-
'groupData': {
|
|
3299
|
-
'primary': 3
|
|
3300
|
-
},
|
|
3301
|
-
'maximumFraction': 2,
|
|
3302
|
-
'minimumFraction': 2
|
|
3303
|
-
},
|
|
3304
|
-
'decimalnData': {
|
|
3305
|
-
'nlead': '-',
|
|
3306
|
-
'nend': '',
|
|
3307
|
-
'groupData': {
|
|
3308
|
-
'primary': 3
|
|
3309
|
-
},
|
|
3310
|
-
'maximumFraction': 2,
|
|
3311
|
-
'minimumFraction': 2
|
|
3312
|
-
},
|
|
3313
|
-
'decimalpData': {
|
|
3314
|
-
'nlead': '',
|
|
3315
|
-
'nend': '',
|
|
3316
|
-
'groupData': {
|
|
3317
|
-
'primary': 3
|
|
3318
|
-
},
|
|
3319
|
-
'maximumFraction': 2,
|
|
3320
|
-
'minimumFraction': 2
|
|
3321
|
-
}
|
|
3322
|
-
},
|
|
3323
|
-
'dates': {
|
|
3324
|
-
'dayPeriods': {
|
|
3325
|
-
'am': 'AM',
|
|
3326
|
-
'pm': 'PM'
|
|
3327
|
-
},
|
|
3328
|
-
'dateSeperator': '/',
|
|
3329
|
-
'days': {
|
|
3330
|
-
'abbreviated': {
|
|
3331
|
-
'sun': 'Sun',
|
|
3332
|
-
'mon': 'Mon',
|
|
3333
|
-
'tue': 'Tue',
|
|
3334
|
-
'wed': 'Wed',
|
|
3335
|
-
'thu': 'Thu',
|
|
3336
|
-
'fri': 'Fri',
|
|
3337
|
-
'sat': 'Sat'
|
|
3338
|
-
},
|
|
3339
|
-
'short': {
|
|
3340
|
-
'sun': 'Su',
|
|
3341
|
-
'mon': 'Mo',
|
|
3342
|
-
'tue': 'Tu',
|
|
3343
|
-
'wed': 'We',
|
|
3344
|
-
'thu': 'Th',
|
|
3345
|
-
'fri': 'Fr',
|
|
3346
|
-
'sat': 'Sa'
|
|
3347
|
-
},
|
|
3348
|
-
'wide': {
|
|
3349
|
-
'sun': 'Sunday',
|
|
3350
|
-
'mon': 'Monday',
|
|
3351
|
-
'tue': 'Tuesday',
|
|
3352
|
-
'wed': 'Wednesday',
|
|
3353
|
-
'thu': 'Thursday',
|
|
3354
|
-
'fri': 'Friday',
|
|
3355
|
-
'sat': 'Saturday'
|
|
3356
|
-
}
|
|
3357
|
-
},
|
|
3358
|
-
'months': {
|
|
3359
|
-
'abbreviated': {
|
|
3360
|
-
'1': 'Jan',
|
|
3361
|
-
'2': 'Feb',
|
|
3362
|
-
'3': 'Mar',
|
|
3363
|
-
'4': 'Apr',
|
|
3364
|
-
'5': 'May',
|
|
3365
|
-
'6': 'Jun',
|
|
3366
|
-
'7': 'Jul',
|
|
3367
|
-
'8': 'Aug',
|
|
3368
|
-
'9': 'Sep',
|
|
3369
|
-
'10': 'Oct',
|
|
3370
|
-
'11': 'Nov',
|
|
3371
|
-
'12': 'Dec'
|
|
3372
|
-
},
|
|
3373
|
-
'wide': {
|
|
3374
|
-
'1': 'January',
|
|
3375
|
-
'2': 'February',
|
|
3376
|
-
'3': 'March',
|
|
3377
|
-
'4': 'April',
|
|
3378
|
-
'5': 'May',
|
|
3379
|
-
'6': 'June',
|
|
3380
|
-
'7': 'July',
|
|
3381
|
-
'8': 'August',
|
|
3382
|
-
'9': 'September',
|
|
3383
|
-
'10': 'October',
|
|
3384
|
-
'11': 'November',
|
|
3385
|
-
'12': 'December'
|
|
3386
|
-
}
|
|
3387
|
-
},
|
|
3388
|
-
'eras': {
|
|
3389
|
-
'1': 'AD'
|
|
3390
|
-
}
|
|
3391
|
-
}
|
|
3392
|
-
};
|
|
3018
|
+
IntlBase.blazorDefaultObject = {};
|
|
3393
3019
|
/* tslint:enable:quotemark */
|
|
3394
3020
|
IntlBase.monthIndex = {
|
|
3395
3021
|
3: 'abbreviated',
|
|
@@ -3534,7 +3160,6 @@ var IntlBase;
|
|
|
3534
3160
|
const ret = {};
|
|
3535
3161
|
const pattern = matches[1].toUpperCase();
|
|
3536
3162
|
ret.isAccount = (pattern === 'A');
|
|
3537
|
-
// eslint-disable-next-line
|
|
3538
3163
|
ret.type = IntlBase.patternMatcher[pattern];
|
|
3539
3164
|
if (skeleton.length > 1) {
|
|
3540
3165
|
ret.fractionDigits = parseInt(matches[2], 10);
|
|
@@ -3622,7 +3247,6 @@ var IntlBase;
|
|
|
3622
3247
|
const formatSplit = format.split(';');
|
|
3623
3248
|
const data = ['pData', 'nData', 'zeroData'];
|
|
3624
3249
|
for (let i = 0; i < formatSplit.length; i++) {
|
|
3625
|
-
// eslint-disable-next-line
|
|
3626
3250
|
options[data[i]] = customNumberFormat(formatSplit[i], dOptions, obj);
|
|
3627
3251
|
}
|
|
3628
3252
|
if (isNullOrUndefined(options.nData)) {
|
|
@@ -3682,7 +3306,6 @@ var IntlBase;
|
|
|
3682
3306
|
if (!isNullOrUndefined(numObject)) {
|
|
3683
3307
|
const symbolPattern = getSymbolPattern(cOptions.type, dOptions.numberMapper.numberSystem, numObject, false);
|
|
3684
3308
|
if (cOptions.useGrouping) {
|
|
3685
|
-
// eslint-disable-next-line
|
|
3686
3309
|
cOptions.groupSeparator = spaceGrouping ? ' ' : dOptions.numberMapper.numberSymbols[mapper[2]];
|
|
3687
3310
|
cOptions.groupData = NumberFormat.getGroupingDetails(symbolPattern.split(';')[0]);
|
|
3688
3311
|
}
|
|
@@ -3707,9 +3330,7 @@ var IntlBase;
|
|
|
3707
3330
|
const part = parts[parseInt(i.toString(), 10)];
|
|
3708
3331
|
const loc = part.indexOf(actual);
|
|
3709
3332
|
if ((loc !== -1) && ((loc < part.indexOf('\'')) || (loc > part.lastIndexOf('\'')))) {
|
|
3710
|
-
// eslint-disable-next-line
|
|
3711
3333
|
options[typeMapper[i]] = part.substr(0, loc) + symbol + part.substr(loc + 1);
|
|
3712
|
-
// eslint-disable-next-line
|
|
3713
3334
|
options[typeMapper[actual]] = true;
|
|
3714
3335
|
options.type = options.isCurrency ? 'currency' : 'percent';
|
|
3715
3336
|
break;
|
|
@@ -3748,7 +3369,6 @@ var IntlBase;
|
|
|
3748
3369
|
let actualPattern = options.format || getResultantPattern(options.skeleton, dependable.dateObject, options.type);
|
|
3749
3370
|
if (isExcelFormat) {
|
|
3750
3371
|
actualPattern = actualPattern.replace(patternRegex, (pattern) => {
|
|
3751
|
-
// eslint-disable-next-line
|
|
3752
3372
|
return patternMatch[pattern];
|
|
3753
3373
|
});
|
|
3754
3374
|
if (actualPattern.indexOf('z') !== -1) {
|
|
@@ -3781,10 +3401,8 @@ var IntlBase;
|
|
|
3781
3401
|
* @param {any} option ?
|
|
3782
3402
|
* @returns {any} ?
|
|
3783
3403
|
*/
|
|
3784
|
-
// eslint-disable-next-line
|
|
3785
3404
|
function processSymbol(actual, option) {
|
|
3786
3405
|
if (actual.indexOf(',') !== -1) {
|
|
3787
|
-
// eslint-disable-next-line
|
|
3788
3406
|
let split = actual.split(',');
|
|
3789
3407
|
actual = (split[0] + getValue('numberMapper.numberSymbols.group', option) +
|
|
3790
3408
|
split[1].replace('.', getValue('numberMapper.numberSymbols.decimal', option)));
|
|
@@ -4051,7 +3669,7 @@ class Ajax {
|
|
|
4051
3669
|
* Send the request to server.
|
|
4052
3670
|
*
|
|
4053
3671
|
* @param {any} data - To send the user data
|
|
4054
|
-
* @
|
|
3672
|
+
* @returns {Promise} ?
|
|
4055
3673
|
*/
|
|
4056
3674
|
send(data) {
|
|
4057
3675
|
this.data = isNullOrUndefined(data) ? this.data : data;
|
|
@@ -4081,7 +3699,6 @@ class Ajax {
|
|
|
4081
3699
|
if (!isNullOrUndefined(this.onUploadProgress)) {
|
|
4082
3700
|
this.httpRequest.upload.onprogress = this.onUploadProgress;
|
|
4083
3701
|
}
|
|
4084
|
-
// eslint-disable-next-line
|
|
4085
3702
|
this.httpRequest.open(this.type, this.url, this.mode);
|
|
4086
3703
|
// Set default headers
|
|
4087
3704
|
if (!isNullOrUndefined(this.data) && this.contentType !== null) {
|
|
@@ -4146,133 +3763,17 @@ class Ajax {
|
|
|
4146
3763
|
* @returns {string} ?
|
|
4147
3764
|
*/
|
|
4148
3765
|
getResponseHeader(key) {
|
|
4149
|
-
|
|
4150
|
-
let header;
|
|
4151
|
-
// eslint-disable-next-line
|
|
4152
|
-
responseHeaders = {};
|
|
3766
|
+
const responseHeaders = {};
|
|
4153
3767
|
let headers = headerRegex.exec(this.httpRequest.getAllResponseHeaders());
|
|
4154
3768
|
while (headers) {
|
|
4155
3769
|
responseHeaders[headers[1].toLowerCase()] = headers[2];
|
|
4156
3770
|
headers = headerRegex.exec(this.httpRequest.getAllResponseHeaders());
|
|
4157
3771
|
}
|
|
4158
|
-
|
|
4159
|
-
header = responseHeaders[key.toLowerCase()];
|
|
3772
|
+
const header = responseHeaders[key.toLowerCase()];
|
|
4160
3773
|
return isNullOrUndefined(header) ? null : header;
|
|
4161
3774
|
}
|
|
4162
3775
|
}
|
|
4163
3776
|
|
|
4164
|
-
/**
|
|
4165
|
-
* The Fetch class provides a way to make asynchronous network requests, typically to retrieve resources from a server.
|
|
4166
|
-
* ```typescript
|
|
4167
|
-
* var fetchApi = new Fetch('index.html', 'GET');
|
|
4168
|
-
* fetchApi.send()
|
|
4169
|
-
* .then((value) => {
|
|
4170
|
-
* console.log(value);
|
|
4171
|
-
* }).catch((error) => {
|
|
4172
|
-
* console.log(error);
|
|
4173
|
-
* });
|
|
4174
|
-
* ```
|
|
4175
|
-
*/
|
|
4176
|
-
class Fetch {
|
|
4177
|
-
/**
|
|
4178
|
-
* Constructor for Fetch class.
|
|
4179
|
-
*
|
|
4180
|
-
* @param {string|Object} options - Specifies the URL or Request object with URL to which the request is to be sent.
|
|
4181
|
-
* @param {string} type - Specifies which request method is to be used, such as GET, POST, etc.
|
|
4182
|
-
* @param {string} contentType - Specifies the content type of the request, which is used to indicate the original media type of the resource.
|
|
4183
|
-
*/
|
|
4184
|
-
constructor(options, type, contentType) {
|
|
4185
|
-
/**
|
|
4186
|
-
* Specifies which request method is to be used, such as GET, POST, etc.
|
|
4187
|
-
*
|
|
4188
|
-
* @default GET
|
|
4189
|
-
*/
|
|
4190
|
-
this.type = 'GET';
|
|
4191
|
-
/**
|
|
4192
|
-
* A boolean value indicating whether to reject the promise or not.
|
|
4193
|
-
*
|
|
4194
|
-
* @private
|
|
4195
|
-
* @default true
|
|
4196
|
-
*/
|
|
4197
|
-
this.emitError = true;
|
|
4198
|
-
if (typeof options === 'string') {
|
|
4199
|
-
this.url = options;
|
|
4200
|
-
this.type = !isNullOrUndefined(type) ? type.toUpperCase() : this.type;
|
|
4201
|
-
this.contentType = contentType;
|
|
4202
|
-
}
|
|
4203
|
-
else if (isObject(options) && Object.keys(options).length > 0) {
|
|
4204
|
-
merge(this, options);
|
|
4205
|
-
}
|
|
4206
|
-
this.contentType = !isNullOrUndefined(this.contentType) ? this.contentType : 'application/json; charset=utf-8';
|
|
4207
|
-
}
|
|
4208
|
-
/**
|
|
4209
|
-
* Send the request to server.
|
|
4210
|
-
*
|
|
4211
|
-
* @param {string|Object} data - Specifies the data that needs to be added to the request.
|
|
4212
|
-
* @returns {Promise<Response>} - Returns the response to a request.
|
|
4213
|
-
*/
|
|
4214
|
-
send(data) {
|
|
4215
|
-
const contentTypes = {
|
|
4216
|
-
'application/json': 'json',
|
|
4217
|
-
'multipart/form-data': 'formData',
|
|
4218
|
-
'application/octet-stream': 'blob',
|
|
4219
|
-
'application/x-www-form-urlencoded': 'formData'
|
|
4220
|
-
};
|
|
4221
|
-
try {
|
|
4222
|
-
if (isNullOrUndefined(this.fetchRequest) && this.type === 'GET') {
|
|
4223
|
-
this.fetchRequest = new Request(this.url, { method: this.type });
|
|
4224
|
-
}
|
|
4225
|
-
else if (isNullOrUndefined(this.fetchRequest)) {
|
|
4226
|
-
this.data = !isNullOrUndefined(data) ? data : this.data;
|
|
4227
|
-
this.fetchRequest = new Request(this.url, {
|
|
4228
|
-
method: this.type,
|
|
4229
|
-
headers: { 'Content-Type': this.contentType },
|
|
4230
|
-
body: this.data
|
|
4231
|
-
});
|
|
4232
|
-
}
|
|
4233
|
-
const eventArgs = { cancel: false, fetchRequest: this.fetchRequest };
|
|
4234
|
-
this.triggerEvent(this['beforeSend'], eventArgs);
|
|
4235
|
-
if (eventArgs.cancel) {
|
|
4236
|
-
return null;
|
|
4237
|
-
}
|
|
4238
|
-
this.fetchResponse = fetch(this.fetchRequest);
|
|
4239
|
-
return this.fetchResponse.then((response) => {
|
|
4240
|
-
this.triggerEvent(this['onLoad'], response);
|
|
4241
|
-
if (!response.ok) {
|
|
4242
|
-
throw response;
|
|
4243
|
-
}
|
|
4244
|
-
let responseType = 'text';
|
|
4245
|
-
for (const key of Object.keys(contentTypes)) {
|
|
4246
|
-
if (response.headers.get('Content-Type') && response.headers.get('Content-Type').indexOf(key) !== -1) {
|
|
4247
|
-
responseType = contentTypes[key];
|
|
4248
|
-
}
|
|
4249
|
-
}
|
|
4250
|
-
return response[responseType]();
|
|
4251
|
-
// eslint-disable-next-line
|
|
4252
|
-
}).then((data) => {
|
|
4253
|
-
this.triggerEvent(this['onSuccess'], data, this);
|
|
4254
|
-
return data;
|
|
4255
|
-
// eslint-disable-next-line
|
|
4256
|
-
}).catch((error) => {
|
|
4257
|
-
let returnVal = {};
|
|
4258
|
-
if (this.emitError) {
|
|
4259
|
-
this.triggerEvent(this['onFailure'], error);
|
|
4260
|
-
returnVal = Promise.reject(error);
|
|
4261
|
-
}
|
|
4262
|
-
return returnVal;
|
|
4263
|
-
});
|
|
4264
|
-
}
|
|
4265
|
-
catch (error) {
|
|
4266
|
-
return error;
|
|
4267
|
-
}
|
|
4268
|
-
}
|
|
4269
|
-
triggerEvent(callback, data, instance) {
|
|
4270
|
-
if (!isNullOrUndefined(callback) && typeof callback === 'function') {
|
|
4271
|
-
callback(data, instance);
|
|
4272
|
-
}
|
|
4273
|
-
}
|
|
4274
|
-
}
|
|
4275
|
-
|
|
4276
3777
|
const REGX_MOBILE = /android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini|mobile/i;
|
|
4277
3778
|
const REGX_IE = /msie|trident/i;
|
|
4278
3779
|
const REGX_IE11 = /Trident\/7\./;
|
|
@@ -4696,7 +4197,8 @@ class EventHandler {
|
|
|
4696
4197
|
// eslint-disable-next-line
|
|
4697
4198
|
copyData = extend([], copyData, eventData);
|
|
4698
4199
|
for (let i = 0; i < copyData.length; i++) {
|
|
4699
|
-
|
|
4200
|
+
const parseValue = copyData[parseInt(i.toString(), 10)];
|
|
4201
|
+
element.removeEventListener(parseValue.name, parseValue.debounce);
|
|
4700
4202
|
eventData.shift();
|
|
4701
4203
|
}
|
|
4702
4204
|
}
|
|
@@ -5436,12 +4938,13 @@ class Base {
|
|
|
5436
4938
|
destroy() {
|
|
5437
4939
|
// eslint-disable-next-line
|
|
5438
4940
|
this.element.ej2_instances =
|
|
5439
|
-
this.element.ej2_instances ?
|
|
5440
|
-
|
|
5441
|
-
|
|
5442
|
-
|
|
5443
|
-
|
|
5444
|
-
|
|
4941
|
+
this.element.ej2_instances ?
|
|
4942
|
+
this.element.ej2_instances.filter((i) => {
|
|
4943
|
+
if (proxyToRaw) {
|
|
4944
|
+
return proxyToRaw(i) !== proxyToRaw(this);
|
|
4945
|
+
}
|
|
4946
|
+
return i !== this;
|
|
4947
|
+
})
|
|
5445
4948
|
: [];
|
|
5446
4949
|
removeClass([this.element], ['e-' + this.getModuleName()]);
|
|
5447
4950
|
if (this.element.ej2_instances.length === 0) {
|
|
@@ -5503,7 +5006,7 @@ function removeChildInstance(element) {
|
|
|
5503
5006
|
}
|
|
5504
5007
|
}
|
|
5505
5008
|
let proxyToRaw;
|
|
5506
|
-
|
|
5009
|
+
const setProxyToRaw = (toRaw) => { proxyToRaw = toRaw; };
|
|
5507
5010
|
|
|
5508
5011
|
/**
|
|
5509
5012
|
* Returns the Class Object
|
|
@@ -5745,8 +5248,9 @@ function complexArrayDefinedCallback(dFunc, curKey, type, prop) {
|
|
|
5745
5248
|
switch (dFunc) {
|
|
5746
5249
|
case 'push':
|
|
5747
5250
|
for (let i = 0; i < newValue.length; i++) {
|
|
5748
|
-
|
|
5749
|
-
|
|
5251
|
+
const newValueParse = newValue[parseInt(i.toString(), 10)];
|
|
5252
|
+
Array.prototype[`${dFunc}`].apply(prop, [newValueParse]);
|
|
5253
|
+
const model = getArrayModel(keyString + (prop.length - 1), newValueParse, !this.controlParent, dFunc);
|
|
5750
5254
|
this.serverDataBind(model, newValue[parseInt(i.toString(), 10)], false, dFunc);
|
|
5751
5255
|
}
|
|
5752
5256
|
break;
|
|
@@ -6090,12 +5594,12 @@ function getParentContext(context, prefix) {
|
|
|
6090
5594
|
}
|
|
6091
5595
|
}
|
|
6092
5596
|
|
|
6093
|
-
var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
6094
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
6095
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
6096
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6097
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6098
|
-
};
|
|
5597
|
+
var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
5598
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
5599
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5600
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5601
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
5602
|
+
};
|
|
6099
5603
|
var Animation_1;
|
|
6100
5604
|
/**
|
|
6101
5605
|
* The Animation framework provide options to animate the html DOM elements
|
|
@@ -6513,16 +6017,16 @@ function setGlobalAnimation(value) {
|
|
|
6513
6017
|
var GlobalAnimationMode;
|
|
6514
6018
|
(function (GlobalAnimationMode) {
|
|
6515
6019
|
/**
|
|
6516
|
-
|
|
6517
|
-
|
|
6020
|
+
* Defines the global animation mode as Default. Animation is enabled or disabled based on the component's animation settings.
|
|
6021
|
+
*/
|
|
6518
6022
|
GlobalAnimationMode["Default"] = "Default";
|
|
6519
6023
|
/**
|
|
6520
|
-
|
|
6521
|
-
|
|
6024
|
+
* Defines the global animation mode as Enable. Enables the animation for all components, regardless of the individual component's animation settings.
|
|
6025
|
+
*/
|
|
6522
6026
|
GlobalAnimationMode["Enable"] = "Enable";
|
|
6523
6027
|
/**
|
|
6524
|
-
|
|
6525
|
-
|
|
6028
|
+
* Defines the global animation mode as Disable. Disables the animation for all components, regardless of the individual component's animation settings.
|
|
6029
|
+
*/
|
|
6526
6030
|
GlobalAnimationMode["Disable"] = "Disable";
|
|
6527
6031
|
})(GlobalAnimationMode || (GlobalAnimationMode = {}));
|
|
6528
6032
|
|
|
@@ -6584,6 +6088,16 @@ class ModuleLoader {
|
|
|
6584
6088
|
}
|
|
6585
6089
|
this.loadedModules = [];
|
|
6586
6090
|
}
|
|
6091
|
+
/**
|
|
6092
|
+
* Returns the array of modules that are not loaded in the component library.
|
|
6093
|
+
*
|
|
6094
|
+
* @param {ModuleDeclaration[]} requiredModules - Array of modules to be required
|
|
6095
|
+
* @returns {ModuleDeclaration[]} ?
|
|
6096
|
+
* @private
|
|
6097
|
+
*/
|
|
6098
|
+
getNonInjectedModules(requiredModules) {
|
|
6099
|
+
return requiredModules.filter((module) => !this.isModuleLoaded(module.member));
|
|
6100
|
+
}
|
|
6587
6101
|
/**
|
|
6588
6102
|
* Removes all unused modules
|
|
6589
6103
|
*
|
|
@@ -6802,419 +6316,15 @@ class ChildProperty {
|
|
|
6802
6316
|
}
|
|
6803
6317
|
}
|
|
6804
6318
|
|
|
6805
|
-
|
|
6806
|
-
|
|
6807
|
-
|
|
6808
|
-
|
|
6809
|
-
|
|
6810
|
-
|
|
6811
|
-
* License validation module
|
|
6812
|
-
*
|
|
6813
|
-
* @private
|
|
6814
|
-
*/
|
|
6815
|
-
class LicenseValidator {
|
|
6816
|
-
constructor(key) {
|
|
6817
|
-
this.isValidated = false;
|
|
6818
|
-
this.isLicensed = true;
|
|
6819
|
-
this.version = '24';
|
|
6820
|
-
this.platform = /JavaScript|ASPNET|ASPNETCORE|ASPNETMVC|FileFormats|essentialstudio/i;
|
|
6821
|
-
this.errors = {
|
|
6822
|
-
noLicense: '<span>This application was built using a trial version of Syncfusion Essential Studio.' +
|
|
6823
|
-
' To remove the license validation message permanently, a valid license key must be included.</span>',
|
|
6824
|
-
trailExpired: '<span>This application was built using a trial version of Syncfusion Essential Studio.' +
|
|
6825
|
-
' To remove the license validation message permanently, a valid license key must be included.</span>',
|
|
6826
|
-
versionMismatched: '<span>The included Syncfusion license key is invalid.</span>',
|
|
6827
|
-
platformMismatched: '<span>The included Syncfusion license key is invalid.</span>',
|
|
6828
|
-
invalidKey: '<span>The included Syncfusion license key is invalid.</span>'
|
|
6829
|
-
};
|
|
6830
|
-
/**
|
|
6831
|
-
* To manage licensing operation.
|
|
6832
|
-
*/
|
|
6833
|
-
this.manager = (() => {
|
|
6834
|
-
let licKey = null;
|
|
6835
|
-
/**
|
|
6836
|
-
* Sets the license key.
|
|
6837
|
-
*
|
|
6838
|
-
* @param {string} key - Specifies the license key.
|
|
6839
|
-
* @returns {void}
|
|
6840
|
-
*/
|
|
6841
|
-
function set(key) { licKey = key; }
|
|
6842
|
-
/**
|
|
6843
|
-
* Gets the license key.
|
|
6844
|
-
*
|
|
6845
|
-
* @returns {string} -Gets the license key.
|
|
6846
|
-
*/
|
|
6847
|
-
function get() { return licKey; }
|
|
6848
|
-
return {
|
|
6849
|
-
setKey: set,
|
|
6850
|
-
getKey: get
|
|
6851
|
-
};
|
|
6852
|
-
})();
|
|
6853
|
-
/**
|
|
6854
|
-
* To manage npx licensing operation.
|
|
6855
|
-
*/
|
|
6856
|
-
this.npxManager = (() => {
|
|
6857
|
-
const npxLicKey = 'npxKeyReplace';
|
|
6858
|
-
/**
|
|
6859
|
-
* Gets the license key.
|
|
6860
|
-
*
|
|
6861
|
-
* @returns {string} - Gets the license key.
|
|
6862
|
-
*/
|
|
6863
|
-
function get() { return npxLicKey; }
|
|
6864
|
-
return {
|
|
6865
|
-
getKey: get
|
|
6866
|
-
};
|
|
6867
|
-
})();
|
|
6868
|
-
this.manager.setKey(key);
|
|
6869
|
-
}
|
|
6870
|
-
/**
|
|
6871
|
-
* To validate the provided license key.
|
|
6872
|
-
*/
|
|
6873
|
-
validate() {
|
|
6874
|
-
let contentKey = [115, 121, 110, 99, 102, 117, 115, 105, 111, 110, 46,
|
|
6875
|
-
108, 105, 99, 101, 110, 115, 101, 67, 111, 110, 116, 101, 110, 116];
|
|
6876
|
-
let URLKey = [115, 121, 110, 99, 102, 117, 115, 105, 111, 110, 46,
|
|
6877
|
-
99, 108, 97, 105, 109, 65, 99, 99, 111, 117, 110, 116, 85, 82, 76];
|
|
6878
|
-
if (!this.isValidated && (containerObject && !getValue(convertToChar(bypassKey), containerObject) && !getValue('Blazor', containerObject))) {
|
|
6879
|
-
let validateMsg;
|
|
6880
|
-
let validateURL;
|
|
6881
|
-
if ((this.manager && this.manager.getKey()) || (this.npxManager && this.npxManager.getKey() !== 'npxKeyReplace')) {
|
|
6882
|
-
const result = this.getInfoFromKey();
|
|
6883
|
-
if (result && result.length) {
|
|
6884
|
-
for (const res of result) {
|
|
6885
|
-
if (!this.platform.test(res.platform) || res.invalidPlatform) {
|
|
6886
|
-
validateMsg = this.errors.platformMismatched;
|
|
6887
|
-
}
|
|
6888
|
-
else if (res.version.indexOf(this.version) === -1) {
|
|
6889
|
-
validateMsg = this.errors.versionMismatched;
|
|
6890
|
-
validateMsg = validateMsg.replace('##LicenseVersion', res.version);
|
|
6891
|
-
validateMsg = validateMsg.replace('##Requireversion', this.version + '.x');
|
|
6892
|
-
}
|
|
6893
|
-
else if (res.expiryDate) {
|
|
6894
|
-
const expDate = new Date(res.expiryDate);
|
|
6895
|
-
const currDate = new Date();
|
|
6896
|
-
if (expDate !== currDate && expDate < currDate) {
|
|
6897
|
-
validateMsg = this.errors.trailExpired;
|
|
6898
|
-
}
|
|
6899
|
-
else {
|
|
6900
|
-
break;
|
|
6901
|
-
}
|
|
6902
|
-
}
|
|
6903
|
-
}
|
|
6904
|
-
}
|
|
6905
|
-
else {
|
|
6906
|
-
validateMsg = this.errors.invalidKey;
|
|
6907
|
-
}
|
|
6908
|
-
}
|
|
6909
|
-
else {
|
|
6910
|
-
let licenseContent = getValue(convertToChar(contentKey), containerObject);
|
|
6911
|
-
validateURL = getValue(convertToChar(URLKey), containerObject);
|
|
6912
|
-
if (licenseContent && licenseContent !== '') {
|
|
6913
|
-
validateMsg = licenseContent;
|
|
6914
|
-
}
|
|
6915
|
-
else {
|
|
6916
|
-
validateMsg = this.errors.noLicense;
|
|
6917
|
-
}
|
|
6918
|
-
}
|
|
6919
|
-
if (validateMsg && typeof document !== 'undefined' && !isNullOrUndefined(document)) {
|
|
6920
|
-
accountURL = (validateURL && validateURL !== '') ? validateURL : "https://www.syncfusion.com/account/claim-license-key?pl=SmF2YVNjcmlwdA==&vs=MjQ=&utm_source=es_license_validation_banner&utm_medium=listing&utm_campaign=license-information";
|
|
6921
|
-
const errorDiv = createElement('div', {
|
|
6922
|
-
innerHTML: `<img src='data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzE5OV80KSI+CjxwYXRoIGQ9Ik0xMiAyMUMxNi45NzA2IDIxIDIxIDE2Ljk3MDYgMjEgMTJDMjEgNy4wMjk0NCAxNi45NzA2IDMgMTIgM0M3LjAyOTQ0IDMgMyA3LjAyOTQ0IDMgMTJDMyAxNi45NzA2IDcuMDI5NDQgMjEgMTIgMjFaIiBzdHJva2U9IiM3MzczNzMiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CjxwYXRoIGQ9Ik0xMS4yNSAxMS4yNUgxMlYxNi41SDEyLjc1IiBmaWxsPSIjNjE2MDYzIi8+CjxwYXRoIGQ9Ik0xMS4yNSAxMS4yNUgxMlYxNi41SDEyLjc1IiBzdHJva2U9IiM3MzczNzMiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CjxwYXRoIGQ9Ik0xMS44MTI1IDlDMTIuNDMzOCA5IDEyLjkzNzUgOC40OTYzMiAxMi45Mzc1IDcuODc1QzEyLjkzNzUgNy4yNTM2OCAxMi40MzM4IDYuNzUgMTEuODEyNSA2Ljc1QzExLjE5MTIgNi43NSAxMC42ODc1IDcuMjUzNjggMTAuNjg3NSA3Ljg3NUMxMC42ODc1IDguNDk2MzIgMTEuMTkxMiA5IDExLjgxMjUgOVoiIGZpbGw9IiM3MzczNzMiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xOTlfNCI+CjxyZWN0IHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgZmlsbD0id2hpdGUiLz4KPC9jbGlwUGF0aD4KPC9kZWZzPgo8L3N2Zz4K' style="top: 6px;
|
|
6923
|
-
position: absolute;
|
|
6924
|
-
left: 16px;
|
|
6925
|
-
width: 24px;
|
|
6926
|
-
height: 24px;"/>` + validateMsg + ' ' + '<a style="text-decoration: none;color: #0D6EFD;font-weight: 500;" href=' + accountURL + '>Claim your free account</a>'
|
|
6927
|
-
});
|
|
6928
|
-
errorDiv.setAttribute('style', `position: fixed;
|
|
6929
|
-
top: 10px;
|
|
6930
|
-
left: 10px;
|
|
6931
|
-
right: 10px;
|
|
6932
|
-
font-size: 14px;
|
|
6933
|
-
background: #EEF2FF;
|
|
6934
|
-
color: #222222;
|
|
6935
|
-
z-index: 999999999;
|
|
6936
|
-
text-align: left;
|
|
6937
|
-
border: 1px solid #EEEEEE;
|
|
6938
|
-
padding: 10px 11px 10px 50px;
|
|
6939
|
-
border-radius: 8px;
|
|
6940
|
-
font-family: Helvetica Neue, Helvetica, Arial;`);
|
|
6941
|
-
document.body.appendChild(errorDiv);
|
|
6942
|
-
this.isLicensed = false;
|
|
6943
|
-
}
|
|
6944
|
-
this.isValidated = true;
|
|
6945
|
-
setValue(convertToChar(bypassKey), this.isValidated, containerObject);
|
|
6946
|
-
}
|
|
6947
|
-
return this.isLicensed;
|
|
6948
|
-
}
|
|
6949
|
-
getDecryptedData(key) {
|
|
6950
|
-
try {
|
|
6951
|
-
return atob(key);
|
|
6952
|
-
}
|
|
6953
|
-
catch (error) {
|
|
6954
|
-
return '';
|
|
6955
|
-
}
|
|
6956
|
-
}
|
|
6957
|
-
/**
|
|
6958
|
-
* Get license information from key.
|
|
6959
|
-
*
|
|
6960
|
-
* @returns {IValidator} - Get license information from key.
|
|
6961
|
-
*/
|
|
6962
|
-
getInfoFromKey() {
|
|
6963
|
-
try {
|
|
6964
|
-
let licKey = '';
|
|
6965
|
-
const pkey = [5439488, 7929856, 5111808, 6488064, 4587520, 7667712, 5439488,
|
|
6966
|
-
6881280, 5177344, 7208960, 4194304, 4456448, 6619136, 7733248, 5242880, 7077888,
|
|
6967
|
-
6356992, 7602176, 4587520, 7274496, 7471104, 7143424];
|
|
6968
|
-
let decryptedStr = [];
|
|
6969
|
-
const resultArray = [];
|
|
6970
|
-
let invalidPlatform = false;
|
|
6971
|
-
let isNpxKey = false;
|
|
6972
|
-
if (this.manager.getKey()) {
|
|
6973
|
-
licKey = this.manager.getKey();
|
|
6974
|
-
}
|
|
6975
|
-
else {
|
|
6976
|
-
isNpxKey = true;
|
|
6977
|
-
licKey = this.npxManager.getKey().split('npxKeyReplace')[1];
|
|
6978
|
-
}
|
|
6979
|
-
const licKeySplit = licKey.split(';');
|
|
6980
|
-
for (const lKey of licKeySplit) {
|
|
6981
|
-
const decodeStr = this.getDecryptedData(lKey);
|
|
6982
|
-
if (!decodeStr) {
|
|
6983
|
-
continue;
|
|
6984
|
-
}
|
|
6985
|
-
let k = 0;
|
|
6986
|
-
let buffr = '';
|
|
6987
|
-
if (!isNpxKey) {
|
|
6988
|
-
for (let i = 0; i < decodeStr.length; i++, k++) {
|
|
6989
|
-
if (k === pkey.length) {
|
|
6990
|
-
k = 0;
|
|
6991
|
-
}
|
|
6992
|
-
const c = decodeStr.charCodeAt(i);
|
|
6993
|
-
buffr += String.fromCharCode(c ^ (pkey[parseInt(k.toString(), 10)] >> 16));
|
|
6994
|
-
}
|
|
6995
|
-
}
|
|
6996
|
-
else {
|
|
6997
|
-
const charKey = decodeStr[decodeStr.length - 1];
|
|
6998
|
-
const decryptedKey = [];
|
|
6999
|
-
for (let i = 0; i < decodeStr.length; i++) {
|
|
7000
|
-
decryptedKey[parseInt(i.toString(), 10)] = decodeStr[parseInt(i.toString(), 10)].charCodeAt(0) - charKey.charCodeAt(0);
|
|
7001
|
-
}
|
|
7002
|
-
for (let i = 0; i < decryptedKey.length; i++) {
|
|
7003
|
-
buffr += String.fromCharCode(decryptedKey[parseInt(i.toString(), 10)]);
|
|
7004
|
-
}
|
|
7005
|
-
}
|
|
7006
|
-
if (this.platform.test(buffr)) {
|
|
7007
|
-
decryptedStr = buffr.split(';');
|
|
7008
|
-
invalidPlatform = false;
|
|
7009
|
-
// checked the length to verify the key in proper strucutre
|
|
7010
|
-
if (decryptedStr.length > 3) {
|
|
7011
|
-
resultArray.push({ platform: decryptedStr[0],
|
|
7012
|
-
version: decryptedStr[1],
|
|
7013
|
-
expiryDate: decryptedStr[2] });
|
|
7014
|
-
}
|
|
7015
|
-
}
|
|
7016
|
-
else if (buffr && buffr.split(';').length > 3) {
|
|
7017
|
-
invalidPlatform = true;
|
|
7018
|
-
}
|
|
7019
|
-
}
|
|
7020
|
-
if (invalidPlatform && !resultArray.length) {
|
|
7021
|
-
return [{ invalidPlatform: invalidPlatform }];
|
|
7022
|
-
}
|
|
7023
|
-
else {
|
|
7024
|
-
return resultArray.length ? resultArray : null;
|
|
7025
|
-
}
|
|
7026
|
-
}
|
|
7027
|
-
catch (error) {
|
|
7028
|
-
return null;
|
|
7029
|
-
}
|
|
7030
|
-
}
|
|
7031
|
-
}
|
|
7032
|
-
let licenseValidator = new LicenseValidator();
|
|
7033
|
-
/**
|
|
7034
|
-
* Converts the given number to characters.
|
|
7035
|
-
*
|
|
7036
|
-
* @param {number} cArr - Specifies the license key as number.
|
|
7037
|
-
* @returns {string}
|
|
7038
|
-
*/
|
|
7039
|
-
function convertToChar(cArr) {
|
|
7040
|
-
let ret = '';
|
|
7041
|
-
for (const arr of cArr) {
|
|
7042
|
-
ret += String.fromCharCode(arr);
|
|
7043
|
-
}
|
|
7044
|
-
return ret;
|
|
7045
|
-
}
|
|
7046
|
-
/**
|
|
7047
|
-
* To set license key.
|
|
7048
|
-
*
|
|
7049
|
-
* @param {string} key - license key
|
|
7050
|
-
* @returns {void}
|
|
7051
|
-
*/
|
|
7052
|
-
function registerLicense(key) {
|
|
7053
|
-
licenseValidator = new LicenseValidator(key);
|
|
7054
|
-
}
|
|
7055
|
-
const validateLicense = (key) => {
|
|
7056
|
-
if (key) {
|
|
7057
|
-
registerLicense(key);
|
|
7058
|
-
}
|
|
7059
|
-
return licenseValidator.validate();
|
|
7060
|
-
};
|
|
7061
|
-
const getVersion = () => {
|
|
7062
|
-
return licenseValidator.version;
|
|
7063
|
-
};
|
|
7064
|
-
// Method for create overlay over the sample
|
|
7065
|
-
const createLicenseOverlay = () => {
|
|
7066
|
-
let bannerTemplate = `
|
|
7067
|
-
<div style="
|
|
7068
|
-
position: fixed;
|
|
7069
|
-
width: 100%;
|
|
7070
|
-
height: 100%;
|
|
7071
|
-
top: 0;
|
|
7072
|
-
left: 0;
|
|
7073
|
-
right: 0;
|
|
7074
|
-
bottom: 0;
|
|
7075
|
-
background-color: rgba(0, 0, 0, 0.5);
|
|
7076
|
-
z-index: 99999;
|
|
7077
|
-
">
|
|
7078
|
-
<div style="
|
|
7079
|
-
background: #FFFFFF;
|
|
7080
|
-
height: 455px;
|
|
7081
|
-
width: 840px;
|
|
7082
|
-
font-family: Helvetica Neue, Helvetica, Arial;
|
|
7083
|
-
color: #000000;
|
|
7084
|
-
box-shadow: 0px 4.8px 14.4px rgb(0 0 0 / 18%), 0px 25.6px 57.6px rgb(0 0 0 / 22%);
|
|
7085
|
-
display: block;
|
|
7086
|
-
margin: 8% auto;
|
|
7087
|
-
border-radius: 20px;
|
|
7088
|
-
">
|
|
7089
|
-
<div style="
|
|
7090
|
-
position: absolute;
|
|
7091
|
-
width: 838px;
|
|
7092
|
-
height: 62px;
|
|
7093
|
-
background-color: #F9F9F9;
|
|
7094
|
-
border: 1px solid #EEEEEE;
|
|
7095
|
-
border-top-left-radius: 20px;
|
|
7096
|
-
border-top-right-radius: 20px;
|
|
7097
|
-
">
|
|
7098
|
-
<img src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQ2IiBoZWlnaHQ9IjMyIiB2aWV3Qm94PSIwIDAgMTQ2IDMyIiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBkPSJNNDAuNTk2NSAxNS4wMDc4SDMyLjQyNUMzMS41NTU3IDE1LjAwNzggMzAuOTAzNyAxNS4xODEyIDMwLjUxMjUgMTUuNDg0NkMzMC4xMjEzIDE1LjgzMTQgMjkuOTA0IDE2LjMwODIgMjkuOTA0IDE3LjA0NTFDMjkuOTA0IDE3LjYwODYgMzAuMDc3OCAxOC4wNDIxIDMwLjQyNTYgMTguMzAyMkMzMC43NzMzIDE4LjYwNTYgMzEuMjk0OSAxOC43MzU2IDMxLjk5MDMgMTguNzM1NkgzNi4zMzY5QzM4LjExODkgMTguNzM1NiAzOS40MjI5IDE5LjA4MjQgNDAuMTYxOCAxOS43MzI2QzQwLjk0NDIgMjAuNDI2MiA0MS4yOTE5IDIxLjU1MzIgNDEuMjkxOSAyMy4xMTM3QzQxLjI5MTkgMjQuNzE3NiA0MC44NTcyIDI1Ljg4OCAzOS45ODc5IDI2LjY2ODJDMzkuMTE4NiAyNy40MDUxIDM3LjcyNzcgMjcuNzk1MyAzNS44NTg3IDI3Ljc5NTNIMjcuMDc4N1YyNS4wMjFIMzUuMzM3MkMzNi4yOTM0IDI1LjAyMSAzNi45NDU0IDI0Ljg5MSAzNy4zMzY2IDI0LjYzMDlDMzcuNzI3NyAyNC4zNzA4IDM3LjkwMTYgMjMuODk0IDM3LjkwMTYgMjMuMjg3MUMzNy45MDE2IDIyLjYzNjkgMzcuNzI3NyAyMi4xNjAxIDM3LjM4IDIxLjlDMzcuMDMyMyAyMS42Mzk5IDM2LjQyMzggMjEuNDY2NSAzNS41NTQ1IDIxLjQ2NjVIMzEuNjQyNkMyOS44NjA1IDIxLjQ2NjUgMjguNTEzMSAyMS4xMTk4IDI3LjY4NzMgMjAuMzgyOEMyNi44NjE0IDE5LjY0NTkgMjYuNDI2OCAxOC41MTg5IDI2LjQyNjggMTcuMDAxN0MyNi40MjY4IDE1LjM1NDUgMjYuODYxNCAxNC4xNDA4IDI3LjczMDcgMTMuMzYwNkMyOC42IDEyLjU4MDMgMjkuOTkwOSAxMi4yMzM1IDMxLjkwMzQgMTIuMjMzNUg0MC41OTY1VjE1LjAwNzhaIiBmaWxsPSIjMzU0M0E4Ii8+CjxwYXRoIGQ9Ik00OC4wNzI3IDI1LjI4MTFINTAuNTA2OFYxNi4zOTQ5SDUzLjU0OTNWMjcuNTM1MkM1My41NDkzIDI5LjA1MjQgNTMuMjAxNiAzMC4xNzk0IDUyLjUwNjIgMzAuOTE2M0M1MS44MTA3IDMxLjY1MzIgNTAuNzI0MSAzMiA0OS4yNDYzIDMySDQzLjMzNVYyOS42NTkySDQ4LjcyNDdDNDkuMjg5NyAyOS42NTkyIDQ5Ljc2NzkgMjkuNTI5MiA1MC4wNzIxIDI5LjIyNThDNTAuMzc2NCAyOC45NjU3IDUwLjU1MDIgMjguNTMyMiA1MC41NTAyIDI4LjAxMlYyNy44Mzg2SDQ3Ljg5ODlDNDYuMjAzNyAyNy44Mzg2IDQ0Ljk0MzIgMjcuNDkxOSA0NC4yNDc4IDI2Ljg0MTZDNDMuNTA4OSAyNi4xNDgxIDQzLjE2MTEgMjUuMDY0NCA0My4xNjExIDIzLjQ2MDVWMTYuMzk0OUg0Ni4xNjAyVjIzLjIwMDVDNDYuMTYwMiAyNC4wNjc0IDQ2LjI5MDYgMjQuNjMwOSA0Ni41NTE0IDI0Ljg5MUM0Ni43MjUzIDI1LjE1MTEgNDcuMjQ2OSAyNS4yODExIDQ4LjA3MjcgMjUuMjgxMVoiIGZpbGw9IiMzNTQzQTgiLz4KPHBhdGggZD0iTTU1Ljg5NjUgMTYuMzk0OUg2MS41OTA0QzYzLjMyOTEgMTYuMzk0OSA2NC41NDYxIDE2LjY5ODMgNjUuMjg1IDE3LjM0ODVDNjYuMDIzOSAxNy45OTg4IDY2LjM3MTYgMTkuMDgyNCA2Ni4zNzE2IDIwLjU1NjNWMjcuNzk1M0g2My4zMjkxVjIwLjk0NjRDNjMuMzI5MSAyMC4wNzk0IDYzLjE5ODcgMTkuNTE1OSA2Mi45Mzc5IDE5LjI5OTJDNjIuNjc3MSAxOS4wMzkxIDYyLjE1NTUgMTguOTA5MSA2MS4zMjk3IDE4LjkwOTFINTguODk1NlYyNy44Mzg2SDU1Ljg1M1YxNi4zOTQ5SDU1Ljg5NjVaIiBmaWxsPSIjMzU0M0E4Ii8+CjxwYXRoIGQ9Ik03NC45MzQyIDI1LjM2NzhINzguMTUwNlYyNy43OTUySDc0LjAyMTRDNzIuOTc4MiAyNy43OTUyIDcyLjEwODkgMjcuNjY1MiA3MS40NTcgMjcuNDkxOEM3MC44MDUgMjcuMjc1IDcwLjE5NjUgMjYuOTI4MyA2OS43MTgzIDI2LjQ1MTRDNjkuMTk2OCAyNS45MzEzIDY4Ljc2MjEgMjUuMjgxMSA2OC40NTc4IDI0LjU0NDJDNjguMTUzNiAyMy44MDcyIDY4LjAyMzIgMjIuOTgzNiA2OC4wMjMyIDIyLjE2QzY4LjAyMzIgMjEuMjkzMSA2OC4xNTM2IDIwLjQ2OTUgNjguNDU3OCAxOS42ODkyQzY4Ljc2MjEgMTguOTA5IDY5LjE1MzMgMTguMzAyMSA2OS43MTgzIDE3Ljc4MTlDNzAuMjM5OSAxNy4zMDUxIDcwLjgwNSAxNi45NTgzIDcxLjUwMDQgMTYuNzQxNkM3Mi4xOTU5IDE2LjUyNDkgNzMuMDIxNyAxNi40MzgyIDc0LjA2NDkgMTYuNDM4Mkg3OC4xOTQxVjE4LjkwOUg3NC45MzQyQzczLjQ5OTggMTguOTA5IDcyLjU0MzYgMTkuMTY5MSA3MS45Nzg1IDE5LjY0NTlDNzEuNDU2OSAyMC4xMjI3IDcxLjE1MjcgMjAuOTg5NyA3MS4xNTI3IDIyLjIwMzRDNzEuMTUyNyAyMi44OTY5IDcxLjI4MzEgMjMuNDYwNSA3MS41MDA0IDIzLjkzNzNDNzEuNzE3NyAyNC40MTQxIDcyLjA2NTUgMjQuNzYwOSA3Mi41MDAxIDI1LjA2NDNDNzIuNzE3NCAyNS4xOTQ0IDcyLjk3ODIgMjUuMjgxMSA3My4yODI1IDI1LjM2NzhDNzMuNjMwMiAyNS4zMjQ0IDc0LjE1MTggMjUuMzY3OCA3NC45MzQyIDI1LjM2NzhaIiBmaWxsPSIjMzU0M0E4Ii8+CjxwYXRoIGQ9Ik04MC44NDU2IDE4LjY0ODlINzguNjcyNFYxNi4zNTE1SDgwLjg0NTZWMTUuMTgxMUM4MC44NDU2IDE0LjAxMDggODEuMDYzIDEzLjIzMDUgODEuNDk3NiAxMi44NDA0QzgxLjkzMjMgMTIuNDUwMyA4Mi43NTgxIDEyLjIzMzUgODMuOTc1MSAxMi4yMzM1SDg2Ljg0MzhWMTQuNDAwOUg4NS40MDk1Qzg0Ljg4NzkgMTQuNDAwOSA4NC41NDAyIDE0LjQ4NzYgODQuMzIyOSAxNC42NjFDODQuMTA1NSAxNC44MzQ0IDgzLjk3NTEgMTUuMDk0NSA4My45NzUxIDE1LjQ0MTJWMTYuMzUxNUg4Ni44NDM4VjE4LjY0ODlIODMuOTc1MVYyNy43OTUzSDgwLjg0NTZWMTguNjQ4OVoiIGZpbGw9IiMzNTQzQTgiLz4KPHBhdGggZD0iTTk4LjQwNTYgMjcuNzk1M0g5Mi43MTE2QzkxLjAxNjUgMjcuNzk1MyA4OS44NDI5IDI3LjQ0ODUgODkuMDYwNSAyNi43OTgzQzg4LjMyMTYgMjYuMTQ4MSA4Ny45MzA0IDI1LjA2NDQgODcuOTMwNCAyMy41OTA2VjE2LjM5NDlIOTAuOTI5NVYyMy40MTcyQzkwLjkyOTUgMjQuMTk3NCA5MS4wNTk5IDI0LjY3NDMgOTEuMzIwNyAyNC45MzQ0QzkxLjU4MTUgMjUuMTk0NCA5Mi4xMDMxIDI1LjMyNDUgOTIuOTI4OSAyNS4zMjQ1SDk1LjM2M1YxNi4zOTQ5SDk4LjQwNTZWMjcuNzk1M1oiIGZpbGw9IiMzNTQzQTgiLz4KPHBhdGggZD0iTTEwMC42MjIgMjUuNDExMkgxMDcuMDExQzEwNy41NzcgMjUuNDExMiAxMDguMDExIDI1LjMyNDUgMTA4LjI3MiAyNS4xNTExQzEwOC41MzMgMjQuOTc3NyAxMDguNjYzIDI0LjY3NDMgMTA4LjY2MyAyNC4zMjc1QzEwOC42NjMgMjMuOTM3NCAxMDguNTMzIDIzLjY3NzMgMTA4LjI3MiAyMy40NjA1QzEwOC4wMTEgMjMuMjg3MSAxMDcuNTc3IDIzLjIwMDUgMTA3LjA1NSAyMy4yMDA1SDEwNC40NDdDMTAyLjg4MiAyMy4yMDA1IDEwMS44MzkgMjIuOTgzNyAxMDEuMzE4IDIyLjUwNjlDMTAwLjc1MiAyMi4wMzAxIDEwMC40OTIgMjEuMjA2NSAxMDAuNDkyIDE5Ljk5MjdDMTAwLjQ5MiAxOC43NzkgMTAwLjgzOSAxNy44Njg3IDEwMS40OTEgMTcuMjYxOEMxMDIuMTQzIDE2LjY5ODMgMTAzLjE4NyAxNi4zOTQ5IDEwNC41MzQgMTYuMzk0OUgxMTEuMDU0VjE4Ljc3OUgxMDUuNzA4QzEwNC44MzggMTguNzc5IDEwNC4yNzMgMTguODY1NyAxMDQuMDEyIDE4Ljk5NTdDMTAzLjc1MiAxOS4xNjkxIDEwMy42MjEgMTkuNDI5MiAxMDMuNjIxIDE5LjgxOTRDMTAzLjYyMSAyMC4xNjYxIDEwMy43NTIgMjAuNDI2MiAxMDMuOTY5IDIwLjU5OTZDMTA0LjE4NiAyMC43NzMgMTA0LjU3NyAyMC44NTk3IDEwNS4wNTYgMjAuODU5N0gxMDcuNzk0QzEwOS4wNTQgMjAuODU5NyAxMTAuMDExIDIxLjE2MzEgMTEwLjY2MyAyMS43MjY2QzExMS4zMTUgMjIuMjkwMiAxMTEuNjYyIDIzLjE1NzEgMTExLjY2MiAyNC4yNDA4QzExMS42NjIgMjUuMjgxMSAxMTEuMzU4IDI2LjE0ODEgMTEwLjc5MyAyNi43OTgzQzExMC4yMjggMjcuNDQ4NSAxMDkuNDQ2IDI3Ljc5NTMgMTA4LjUzMyAyNy43OTUzSDEwMC43MDlWMjUuNDExMkgxMDAuNjIyWiIgZmlsbD0iIzM1NDNBOCIvPgo8cGF0aCBkPSJNMTE2LjU3NCAxNS4wOTQ0SDExMy40MDFWMTIuMjc2OUgxMTYuNTc0VjE1LjA5NDRaTTExNi41NzQgMjcuNzk1M0gxMTMuNDAxVjE2LjM5NDlIMTE2LjU3NFYyNy43OTUzWiIgZmlsbD0iIzM1NDNBOCIvPgo8cGF0aCBkPSJNMTMwLjMwOSAyMi4xMTY3QzEzMC4zMDkgMjMuODkzOSAxMjkuNzQ0IDI1LjMyNDQgMTI4LjY1NyAyNi40MDgxQzEyNy41NzEgMjcuNDkxOCAxMjYuMDkzIDI4LjAxMiAxMjQuMjI0IDI4LjAxMkMxMjIuMzU1IDI4LjAxMiAxMjAuODc3IDI3LjQ5MTggMTE5Ljc5IDI2LjQwODFDMTE4LjcwNCAyNS4zMjQ0IDExOC4xMzkgMjMuODkzOSAxMTguMTM5IDIyLjExNjdDMTE4LjEzOSAyMC4zMzk0IDExOC43MDQgMTguOTA5IDExOS43OSAxNy44MjUzQzEyMC44NzcgMTYuNzQxNiAxMjIuMzk4IDE2LjIyMTQgMTI0LjIyNCAxNi4yMjE0QzEyNi4wNDkgMTYuMjIxNCAxMjcuNTI3IDE2Ljc0MTYgMTI4LjY1NyAxNy44MjUzQzEyOS43NDQgMTguODY1NiAxMzAuMzA5IDIwLjI5NjEgMTMwLjMwOSAyMi4xMTY3Wk0xMjEuMjY4IDIyLjExNjdDMTIxLjI2OCAyMy4yMDA0IDEyMS41MjkgMjQuMDY3MyAxMjIuMDUxIDI0LjY3NDJDMTIyLjU3MiAyNS4yODExIDEyMy4yNjggMjUuNTg0NSAxMjQuMTggMjUuNTg0NUMxMjUuMDkzIDI1LjU4NDUgMTI1Ljc4OSAyNS4yODExIDEyNi4zMSAyNC42NzQyQzEyNi44MzIgMjQuMDY3MyAxMjcuMDkzIDIzLjIwMDQgMTI3LjA5MyAyMi4xMTY3QzEyNy4wOTMgMjEuMDMzIDEyNi44MzIgMjAuMTY2MSAxMjYuMzEgMTkuNjAyNUMxMjUuNzg5IDE4Ljk5NTcgMTI1LjA5MyAxOC42OTIyIDEyNC4xMzcgMTguNjkyMkMxMjMuMjI0IDE4LjY5MjIgMTIyLjUyOSAxOC45OTU3IDEyMi4wMDcgMTkuNjAyNUMxMjEuNTI5IDIwLjE2NjEgMTIxLjI2OCAyMS4wMzMgMTIxLjI2OCAyMi4xMTY3WiIgZmlsbD0iIzM1NDNBOCIvPgo8cGF0aCBkPSJNMTMxLjc4NyAxNi4zOTQ5SDEzNy40ODFDMTM5LjIxOSAxNi4zOTQ5IDE0MC40MzYgMTYuNjk4MyAxNDEuMTc1IDE3LjM0ODVDMTQxLjkxNCAxNy45OTg4IDE0Mi4yNjIgMTkuMDgyNCAxNDIuMjYyIDIwLjU1NjNWMjcuNzk1M0gxMzkuMjE5VjIwLjk0NjRDMTM5LjIxOSAyMC4wNzk0IDEzOS4wODkgMTkuNTE1OSAxMzguODI4IDE5LjI5OTJDMTM4LjU2NyAxOS4wMzkxIDEzOC4wNDYgMTguOTA5MSAxMzcuMjIgMTguOTA5MUgxMzQuNzg2VjI3LjgzODZIMTMxLjc0M1YxNi4zOTQ5SDEzMS43ODdaIiBmaWxsPSIjMzU0M0E4Ii8+CjxwYXRoIGQ9Ik03LjEyODMxIDMuNzM3NDNIMFYxMC44NDY0SDcuMTI4MzFWMy43Mzc0M1oiIGZpbGw9IiMzNTQzQTgiLz4KPHBhdGggZD0iTTIzLjI1MTMgLTIuMTU3MjVlLTA1TDE4LjU1MTMgNS41MTY4NUwyNC4wODMxIDEwLjIwNDFMMjguNzgzMSA0LjY4NzI1TDIzLjI1MTMgLTIuMTU3MjVlLTA1WiIgZmlsbD0iI0ZGODYwMCIvPgo8cGF0aCBkPSJNMTUuNjA0MSAzLjczNzQzSDguNDc1ODNWMTAuODQ2NEgxNS42MDQxVjMuNzM3NDNaIiBmaWxsPSIjMzU0M0E4Ii8+CjxwYXRoIGQ9Ik03LjEyODMxIDEyLjE5MDJIMFYxOS4yOTkySDcuMTI4MzFWMTIuMTkwMloiIGZpbGw9IiMzNTQzQTgiLz4KPHBhdGggZD0iTTE1LjYwNDEgMTIuMTkwMkg4LjQ3NTgzVjE5LjI5OTJIMTUuNjA0MVYxMi4xOTAyWiIgZmlsbD0iIzM1NDNBOCIvPgo8cGF0aCBkPSJNMjQuMDc5NyAxMi4xOTAySDE2Ljk1MTRWMTkuMjk5MkgyNC4wNzk3VjEyLjE5MDJaIiBmaWxsPSIjRkY4NjAwIi8+CjxwYXRoIGQ9Ik03LjEyODMxIDIwLjY4NjNIMFYyNy43OTUzSDcuMTI4MzFWMjAuNjg2M1oiIGZpbGw9IiMzNTQzQTgiLz4KPHBhdGggZD0iTTE1LjYwNDEgMjAuNjg2M0g4LjQ3NTgzVjI3Ljc5NTNIMTUuNjA0MVYyMC42ODYzWiIgZmlsbD0iIzM1NDNBOCIvPgo8cGF0aCBkPSJNMjQuMTIzMiAyMC42ODYzSDE2Ljk5NDlWMjcuNzk1M0gyNC4xMjMyVjIwLjY4NjNaIiBmaWxsPSIjMzU0M0E4Ii8+CjxwYXRoIGQ9Ik0xNDYgMTUuODMxM0MxNDYgMTYuODcxNyAxNDUuMTc0IDE3LjY5NTMgMTQ0LjEzMSAxNy42OTUzQzE0My4wODggMTcuNjk1MyAxNDIuMjYyIDE2Ljg3MTcgMTQyLjI2MiAxNS44MzEzQzE0Mi4yNjIgMTQuNzkxIDE0My4wODggMTQuMDEwNyAxNDQuMTMxIDE0LjAxMDdDMTQ1LjEzMSAxMy45Njc0IDE0NiAxNC43OTEgMTQ2IDE1LjgzMTNaTTE0Mi45NTcgMTQuNzkxQzE0Mi42OTcgMTUuMDUxMSAxNDIuNTY2IDE1LjQ0MTIgMTQyLjU2NiAxNS44MzEzQzE0Mi41NjYgMTYuNjk4MyAxNDMuMjYyIDE3LjM5MTggMTQ0LjEzMSAxNy4zOTE4QzE0NSAxNy4zOTE4IDE0NS42OTYgMTYuNjk4MyAxNDUuNjk2IDE1LjgzMTNDMTQ1LjY5NiAxNS4wMDc3IDE0NSAxNC4yNzA4IDE0NC4xNzQgMTQuMjcwOEMxNDMuNjUzIDE0LjI3MDggMTQzLjI2MiAxNC40NDQyIDE0Mi45NTcgMTQuNzkxWk0xNDQuODcgMTYuOTE1SDE0NC40NzlMMTQzLjkxNCAxNi4wOTE0VjE2LjkxNUgxNDMuNjA5VjE0Ljc0NzZIMTQzLjk1N0MxNDQuNDM1IDE0Ljc0NzYgMTQ0LjY1MyAxNC45NjQ0IDE0NC42NTMgMTUuMzU0NUMxNDQuNjUzIDE1LjY1NzkgMTQ0LjQ3OSAxNS44NzQ3IDE0NC4xNzQgMTUuOTYxNEwxNDQuODcgMTYuOTE1Wk0xNDQuMDQ0IDE1LjY1NzlDMTQ0LjI2MSAxNS42NTc5IDE0NC4zOTIgMTUuNTI3OSAxNDQuMzkyIDE1LjM1NDVDMTQ0LjM5MiAxNS4xMzc4IDE0NC4yNjEgMTUuMDUxMSAxNDQuMDAxIDE1LjA1MTFIMTQzLjkxNFYxNS42NTc5SDE0NC4wNDRaIiBmaWxsPSIjMzU0M0E4Ii8+Cjwvc3ZnPgo=" style="
|
|
7099
|
-
text-align: left;
|
|
7100
|
-
width: 146px;
|
|
7101
|
-
position: absolute;
|
|
7102
|
-
top: 14px;
|
|
7103
|
-
left: 31px;
|
|
7104
|
-
">
|
|
7105
|
-
</div>
|
|
7106
|
-
<div style="
|
|
7107
|
-
position: relative;
|
|
7108
|
-
top: 80px;
|
|
7109
|
-
left: 32px;
|
|
7110
|
-
font-size: 20px;
|
|
7111
|
-
text-align: left;
|
|
7112
|
-
font-weight: 700;
|
|
7113
|
-
letter-spacing: 0.02em;
|
|
7114
|
-
font-style: normal;
|
|
7115
|
-
line-height: 125%;
|
|
7116
|
-
">Claim your FREE account and get a key in less than a minute</div>
|
|
7117
|
-
<ul style="
|
|
7118
|
-
font-size: 15px;
|
|
7119
|
-
font-weight: 400;
|
|
7120
|
-
color: #333333;
|
|
7121
|
-
letter-spacing: 0.01em;
|
|
7122
|
-
position: relative;
|
|
7123
|
-
left: 32px;
|
|
7124
|
-
top: 88px;
|
|
7125
|
-
line-height: 180%;
|
|
7126
|
-
">
|
|
7127
|
-
<li><span>Access to a 30-day free trial of any of our products.</span></li>
|
|
7128
|
-
<li><span>Access to 24x5 support by developers via the <a href="https://support.syncfusion.com/create?utm_source=es_license_validation_banner&utm_medium=listing&utm_campaign=license-information" style="text-decoration: none;
|
|
7129
|
-
color: #0D6EFD;
|
|
7130
|
-
font-weight: 500;">support tickets</a>, <a href="https://www.syncfusion.com/forums?utm_source=es_license_validation_banner&utm_medium=listing&utm_campaign=license-information" style="text-decoration: none;
|
|
7131
|
-
color: #0D6EFD;
|
|
7132
|
-
font-weight: 500;">forum</a>, <a href="https://www.syncfusion.com/feedback?utm_source=es_license_validation_banner&utm_medium=listing&utm_campaign=license-information
|
|
7133
|
-
" style="text-decoration: none;
|
|
7134
|
-
color: #0D6EFD;
|
|
7135
|
-
font-weight: 500;">feature & feedback page</a> and chat.</span></li>
|
|
7136
|
-
<li><span>200+ <a href="https://www.syncfusion.com/succinctly-free-ebooks?utm_source=es_license_validation_banner&utm_medium=listing&utm_campaign=license-information" style="text-decoration: none;
|
|
7137
|
-
color: #0D6EFD;
|
|
7138
|
-
font-weight: 500;">ebooks </a>on the latest technologies, industry trends, and research topics.</span>
|
|
7139
|
-
</li>
|
|
7140
|
-
<li><span>Largest collection of over 7,000 flat and wireframe icons for free with Syncfusion <a href="https://www.syncfusion.com/downloads/metrostudio?utm_source=es_license_validation_banner&utm_medium=listing&utm_campaign=license-information
|
|
7141
|
-
" style="text-decoration: none;
|
|
7142
|
-
color: #0D6EFD;
|
|
7143
|
-
font-weight: 500;">Metro Studio.</a></span></li>
|
|
7144
|
-
<li><span>Free and unlimited access to Syncfusion technical <a href="https://www.syncfusion.com/blogs/?utm_source=es_license_validation_banner&utm_medium=listing&utm_campaign=license-information
|
|
7145
|
-
" style="text-decoration: none;
|
|
7146
|
-
color: #0D6EFD;
|
|
7147
|
-
font-weight: 500;">blogs</a> and <a href="https://www.syncfusion.com/resources/techportal/whitepapers?utm_source=es_license_validation_banner&utm_medium=listing&utm_campaign=license-information" style="text-decoration: none;
|
|
7148
|
-
color: #0D6EFD;
|
|
7149
|
-
font-weight: 500;">whitepapers.</a></span></li>
|
|
7150
|
-
</ul>
|
|
7151
|
-
<div style="
|
|
7152
|
-
font-size: 18px;
|
|
7153
|
-
font-weight: 700;
|
|
7154
|
-
position: relative;
|
|
7155
|
-
line-height: 125%;
|
|
7156
|
-
letter-spacing: 0.02em;
|
|
7157
|
-
top: 90px;
|
|
7158
|
-
left: 32px;
|
|
7159
|
-
">Syncfusion is trusted by 29,000+ businesses worldwide</div>
|
|
7160
|
-
<img src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iODIwIiBoZWlnaHQ9IjU2IiB2aWV3Qm94PSIwIDAgODIwIDU2IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPg0KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00MjcuNjE3IDIyLjU2NTlWMjQuNzIyNkM0MjYuNTU4IDI0LjM2MzggNDI1LjM5OCAyNC4xNTQ0IDQyNC40NzQgMjQuMTU0NEM0MjMuMzMzIDI0LjE1NDQgNDIyLjY5OCAyNC40OTEyIDQyMi42OTggMjUuMDk2M0M0MjIuNjk4IDI1LjQ4MjQgNDIyLjk3NiAyNS43MzgzIDQyMy43NzMgMjYuMDg1NEw0MjUuOTE3IDI3LjAxNzRDNDI3LjYzMyAyNy43NjM5IDQyOC40OTcgMjguODUzIDQyOC40OTcgMzAuMjY4MUM0MjguNDk3IDMyLjQ1MjIgNDI2LjU0NiAzMy44MyA0MjMuNDUyIDMzLjgzQzQyMi4zMjQgMzMuODMgNDIxLjAxOCAzMy42NzM2IDQxOS42MzYgMzMuMzcwOVYzMS4xNDE2QzQyMS4wMDYgMzEuNTAyOCA0MjIuMjYyIDMxLjY5NTcgNDIzLjIzOSAzMS42OTU3QzQyNC41MTggMzEuNjk1NyA0MjUuMjAzIDMxLjM1MDYgNDI1LjIwMyAzMC43MDc0QzQyNS4yMDMgMzAuMzIwOCA0MjQuOTM1IDMwLjAzNjcgNDI0LjMyMiAyOS43NzE3TDQyMS45NzUgMjguNzU5M0M0MjAuMjM2IDI4LjAwNzggNDE5LjQzMyAyNi45OTU0IDQxOS40MzMgMjUuNTUyMUM0MTkuNDMzIDIzLjQ4MzcgNDIxLjMxNCAyMi4xNjQ5IDQyNC4yNjUgMjIuMTY0OUM0MjUuMjk4IDIyLjE2NDkgNDI2LjU3IDIyLjMxNzEgNDI3LjYxNyAyMi41NjU5VjIyLjU2NTlaTTQzMC4xNjcgMjIuMzkwOUg0MzMuNjM1VjMzLjYwMzlINDMwLjE2N1YyMi4zOTA5Wk00NDQuOTExIDIyLjM5MDlWMjQuNDQ1MUg0MzkuNjc1VjI2Ljk3NDJINDQ0LjI0OVYyOC44MzIzSDQzOS42NzVWMzEuNDU0M0g0NDQuOTc4VjMzLjYwMzlINDM2LjMwNVYyMi4zOTA5SDQ0NC45MTFaTTQ2MS4yOTQgMjIuMzkwOVYzMy42MDM5SDQ1Ny45MzlWMjYuMjIzNkw0NTQuNjUyIDMzLjY5MTVINDUyLjUzMUw0NDkuMjY2IDI2LjIyMzZWMzMuNjAzOUg0NDYuOTQ5VjIyLjM5MDlINDUxLjE4NEw0NTQuMTc4IDI5LjIxMTRMNDU3LjE1NiAyMi4zOTA5SDQ2MS4yOTRWMjIuMzkwOVpNNDcyLjU3OSAyMi4zOTA5VjI0LjQ0NTFINDY3LjMzNVYyNi45NzQySDQ3MS45MDhWMjguODMyM0g0NjcuMzM1VjMxLjQ1NDNINDcyLjYzOFYzMy42MDM5SDQ2My45NTdWMjIuMzkwOUg0NzIuNTc5Wk00ODQuNzk0IDIyLjM5MDlWMzMuNjAzOUg0ODEuMDkzTDQ3Ni45MjYgMjYuNDEyM1YzMy42MDM5SDQ3NC42MDhWMjIuMzkwOUg0NzguNDA3TDQ4Mi40ODQgMjkuNDg3NlYyMi4zOTA5SDQ4NC43OTRaTTQ5NC44NTggMjIuNTY1OVYyNC43MjI2QzQ5My44MDcgMjQuMzY2MyA0OTIuNjQgMjQuMTU0NCA0OTEuNzMyIDI0LjE1NDRDNDkwLjU3MyAyNC4xNTQ0IDQ4OS45MzkgMjQuNDg1OCA0ODkuOTM5IDI1LjA5M0M0ODkuOTM5IDI1LjQ4ODYgNDkwLjE5OCAyNS43MjUgNDkxLjAyMyAyNi4wODU5TDQ5My4xNTcgMjcuMDE3OEM0OTQuODg1IDI3Ljc3MjIgNDk1LjczOSAyOC44NTE4IDQ5NS43MzkgMzAuMjgzNUM0OTUuNzM5IDMyLjQ1NTkgNDkzLjc4NiAzMy44MzA4IDQ5MC42OTkgMzMuODMwOEM0ODkuNTY5IDMzLjgzMDggNDg4LjI1OSAzMy42NzM2IDQ4Ni44NzggMzMuMzcxN1YzMS4xNDI0QzQ4OC4yNDcgMzEuNTAyOCA0ODkuNDk5IDMxLjY5NjUgNDkwLjQ3IDMxLjY5NjVDNDkxLjc0IDMxLjY5NjUgNDkyLjQ0NCAzMS4zNTE1IDQ5Mi40NDQgMzAuNzI4NUM0OTIuNDQ0IDMwLjMxNjMgNDkyLjE5NyAzMC4wNTA0IDQ5MS41NTUgMjkuNzcyNUw0ODkuMjE4IDI4Ljc2MDFDNDg3LjQ2NyAyOC4wMDI4IDQ4Ni42NzQgMjcuMDAyIDQ4Ni42NzQgMjUuNTUzM0M0ODYuNjc0IDIzLjQ4NjIgNDg4LjU1NiAyMi4xNjY1IDQ5MS41IDIyLjE2NjVDNDkyLjUzNiAyMi4xNjUzIDQ5My44MTMgMjIuMzE3MSA0OTQuODU4IDIyLjU2NTlWMjIuNTY1OVoiIGZpbGw9IiMwMEEwQjAiLz4NCjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMzUyLjQxMyAyNi44MTlDMzUwLjk5MiAyNS4yNzU5IDM0OS42MzggMjMuODMxNSAzNDguMzQ5IDIyLjE1NzRMMzQ3LjkyIDIxLjU5OTVDMzQ5LjQwNiAyMS4zNjkzIDM1MC42OTUgMjAuMzg0OCAzNTAuNjk1IDE4Ljc0MzNDMzUwLjY5NSAxNy4yMzMxIDM0OS41MzkgMTYuMjQ4MiAzNDcuODIxIDE2LjI0ODJDMzQ2LjU5OCAxNi4yNDgyIDM0NS43MDYgMTYuMzEzNyAzNDUuMjQzIDE2LjMxMzdDMzQ0LjcxNSAxNi4zMTM3IDM0NC4yODUgMTYuMzEzNyAzNDMuNzkgMTYuMjgwOEMzNDMuODU2IDE4LjE1MjEgMzQzLjg4OSAxOC4yODM0IDM0My44ODkgMTkuNDMyMlYyMy42MzQzQzM0My44ODkgMjQuNDU1MyAzNDMuODU2IDI1LjI3NTkgMzQzLjc5IDI2LjgxODZDMzQ0LjE1MyAyNi43MjAyIDM0NC41MTcgMjYuNzIwMiAzNDQuNzgxIDI2LjcyMDJDMzQ1LjA0NSAyNi43MjAyIDM0NS40MDkgMjYuNzUzMSAzNDUuNzA2IDI2LjgxODZDMzQ1LjY0IDI1Ljc2NzkgMzQ1LjYwNyAyNC4wMjgzIDM0NS42MDcgMjMuNjM0M1YyMS4yMDUxQzM0Ny4xNiAyMy4yMDc3IDM0OS4yMDkgMjUuNjY5NSAzNTAuMDAxIDI2LjgxODZDMzUwLjM5OCAyNi43MjAyIDM1MC43MjggMjYuNzIwMiAzNTEuMTI0IDI2LjcyMDJDMzUxLjQ1NSAyNi43MjA2IDM1MS45MTggMjYuNzIwNiAzNTIuNDEzIDI2LjgxOVYyNi44MTlaTTM0OC44NzggMTkuMDA2QzM0OC44NzggMjAuMDIzNCAzNDguMzE3IDIxLjIwNTQgMzQ2Ljc5NyAyMS4yMDU0QzM0Ni40IDIxLjIwNTQgMzQ2LjAwMyAyMS4yMDU0IDM0NS42MDcgMjEuMTcyNVYxNy4wNjg4QzM0Ni4wMDMgMTYuOTcwNCAzNDYuNDk5IDE2LjkwNDYgMzQ2Ljc2MyAxNi45MDQ2QzM0OC4wODUgMTYuOTA0OSAzNDguODc4IDE3LjY2IDM0OC44NzggMTkuMDA2VjE5LjAwNlpNMzgyLjM4IDI2Ljg4NDVDMzgxLjgxOSAyNi4yOTM2IDM4MC45NiAyNS4zNDE3IDM4MC4xMzQgMjQuNDIyM0MzODAuODI4IDIzLjY2NzIgMzgxLjU1NSAyMi41NTEgMzgxLjk4NCAyMS41OTkxQzM4MS43MTkgMjEuNDY3OCAzODEuMzU2IDIxLjIwNTEgMzgxLjA5MiAyMC45NzUzQzM4MC45OTMgMjEuNzk1OSAzODAuNDMyIDIyLjg3OTIgMzc5LjYzOSAyMy44MzE1QzM3OC41MTUgMjIuNTE4NSAzNzguMjE4IDIyLjE1NzQgMzc3LjE5MyAyMC43Nzg1QzM3OC41ODEgMTkuODkyMSAzNzkuMjQyIDE4Ljg3NDMgMzc5LjI0MiAxOC4wNTM3QzM3OS4yNDIgMTcuMTAxNyAzNzguNTgxIDE2LjExNjkgMzc2Ljk2MiAxNi4xMTY5QzM3NS4yMTEgMTYuMTE2OSAzNzQuMzUyIDE3LjIwMDIgMzc0LjM1MiAxOC40ODAzQzM3NC4zNTIgMTkuMjM1NCAzNzQuNTUgMTkuODkxNyAzNzUuMzc2IDIwLjk3NTNDMzc0LjA1NCAyMS42OTc1IDM3Mi43NjYgMjIuNzQ3OSAzNzIuNzY2IDI0LjQyMjNDMzcyLjc2NiAyNi4wNjM5IDM3NC4wODcgMjYuOTE3NCAzNzUuNzA3IDI2LjkxNzRDMzc3LjE5MyAyNi45MTc0IDM3OC4xNTEgMjYuMzI2NiAzNzguOTEyIDI1LjYzNjlMMzc5LjkwMiAyNi44MTlDMzgwLjIgMjYuNzg2MSAzODAuNTMxIDI2LjcyMDYgMzgwLjg2MSAyNi43MjA2QzM4MS4zMjQgMjYuNzIwNiAzODEuODUyIDI2Ljc4NjEgMzgyLjM4IDI2Ljg4NDVWMjYuODg0NVpNMzgzLjM3MiA0MC4wMTU4QzM4MS45MTggMzguNDczIDM4MC41OTcgMzcuMDYxMiAzNzkuMzA4IDM1LjM4NzFMMzc4Ljg3OCAzNC44Mjg4QzM4MC4zMzIgMzQuNTk5MSAzODEuNjU0IDMzLjYxNSAzODEuNjU0IDMxLjk0MDFDMzgxLjY1NCAzMC40NjMyIDM4MC40OTggMjkuNDQ1NCAzNzguNzc5IDI5LjQ0NTRDMzc3LjU1NyAyOS40NDU0IDM3Ni42MzIgMjkuNTQzNSAzNzYuMTY5IDI5LjU0MzVDMzc1LjY3MyAyOS41NDM1IDM3NS4yNDQgMjkuNTQzNSAzNzQuNzQ4IDI5LjQ3NzZDMzc0LjgxNCAzMS4zODIyIDM3NC44NDggMzEuNDgwMiAzNzQuODQ4IDMyLjYyOTRWMzYuODMxMUMzNzQuODQ4IDM3LjY1MjQgMzc0LjgxNCAzOC41MDUyIDM3NC43NDggNDAuMDE1NEMzNzUuMTEyIDM5Ljk0OTYgMzc1LjQ3NSAzOS45NDk2IDM3NS43MDcgMzkuOTQ5NkMzNzYuMDA0IDM5Ljk0OTYgMzc2LjM2OCAzOS45NDk2IDM3Ni42MzIgNDAuMDE1NEMzNzYuNTY1IDM4Ljk5OCAzNzYuNTMzIDM3LjI1ODEgMzc2LjUzMyAzNi44MzExVjM0LjQzNDhDMzc4LjExOSAzNi40MDQyIDM4MC4xNjcgMzguODk5NiAzODAuOTYgNDAuMDE1NEMzODEuMzU2IDM5Ljk0OTYgMzgxLjY4NyAzOS45NDk2IDM4Mi4wODMgMzkuOTQ5NkMzODIuMzggMzkuOTUgMzgyLjg3NiAzOS45NSAzODMuMzcyIDQwLjAxNThaTTM2Mi4xNiAyNi44MTlDMzYwLjk3MSAyNS41NzE1IDM1OC44ODkgMjIuOTc4IDM1OC4wNjMgMjEuOTkzNUwzNTcuMjM3IDIwLjk3NTdDMzU4LjA5NiAxOS45NTgzIDM1OC42OSAxOS4zMzQxIDM1OS4zMTkgMTguNTc5QzM2MC4wNDUgMTcuNzkxIDM2MC43MDYgMTYuOTcwNCAzNjEuNDk5IDE2LjI0ODJDMzYxLjEzNiAxNi4zMTM3IDM2MC45MzcgMTYuMzEzNyAzNjAuNzM5IDE2LjMxMzdDMzYwLjU0MSAxNi4zMTM3IDM2MC4zNDMgMTYuMzEzNyAzNjAuMTQ0IDE2LjI0ODJDMzU5LjkxMyAxNi42MDkzIDM1OS41NSAxNy4wNjg4IDM1OS4xNTMgMTcuNTI4N0MzNTguNzU2IDE3Ljk1NTYgMzU4LjM2IDE4LjM4MjIgMzU4LjA2MyAxOC43NDMzQzM1Ny4yMzYgMTkuNjk1MiAzNTYuNzc0IDIwLjE1NDcgMzU1LjU4NSAyMS4yNzA5VjE5LjQ2NTVDMzU1LjU4NSAxOC40MTUxIDM1NS41ODUgMTcuNzI1NSAzNTUuNjUxIDE2LjI0ODJDMzU1LjMyMSAxNi4zMTM3IDM1NC45NTcgMTYuMzEzNyAzNTQuNzI2IDE2LjMxMzdDMzU0LjQ2MSAxNi4zMTM3IDM1NC4wMzIgMTYuMzEzNyAzNTMuNzY4IDE2LjI0ODJDMzUzLjgzMyAxNy44MjM5IDM1My44NjcgMTguMjgzNCAzNTMuODY3IDE5LjQzMjVWMjMuNjM0N0MzNTMuODY3IDI0LjY4NSAzNTMuODMzIDI1LjMwODggMzUzLjc2OCAyNi44MTlDMzU0LjE2NCAyNi43MjA2IDM1NC40OTUgMjYuNzIwNiAzNTQuNzI2IDI2LjcyMDZDMzU0Ljk1NyAyNi43MjA2IDM1NS4zNTMgMjYuNzUzNSAzNTUuNjUxIDI2LjgxOUMzNTUuNTg1IDI1LjE0NDkgMzU1LjU4NSAyNC4xNTk3IDM1NS41ODUgMjMuNjM0N1YyMS40MzUyQzM1Ni44MDcgMjIuODc5NiAzNTguNjkgMjUuMjQzMyAzNTkuNzQ4IDI2LjgxOUMzNjAuMTMgMjYuNzU2MyAzNjAuNTE3IDI2LjcyMzQgMzYwLjkwNSAyNi43MjA2QzM2MS4yMDIgMjYuNzIwNiAzNjEuNjY1IDI2LjcyMDYgMzYyLjE2IDI2LjgxOVYyNi44MTlaTTM3Mi42MDEgNDAuMDE1OEMzNzIuNTY4IDM5Ljg1MTkgMzcyLjUzNSAzOS43MjA2IDM3Mi41MzUgMzkuNTIzNEMzNzIuNTM1IDM5LjM5MjggMzcyLjU2OCAzOS4yMjgxIDM3Mi42MDEgMzkuMDk2NEMzNzEuMjggMzkuMTI5NyAzNjguOTAxIDM5LjE5NTIgMzY4LjM3MiAzOS4xOTUyVjM0LjY2NDlDMzY5LjY5NCAzNC42NjQ5IDM3MC45ODIgMzQuNjY0OSAzNzIuMjcgMzQuNzk2M0MzNzIuMjM4IDM0LjYzMjQgMzcyLjIwNCAzNC40Njc3IDM3Mi4yMDQgMzQuMzM2NEMzNzIuMjA0IDM0LjIwNTggMzcyLjIwNCAzNC4wNDE5IDM3Mi4yNyAzMy44NDQ3QzM3MS4zNDYgMzMuOTQyOCAzNjkuMTk4IDMzLjk3NiAzNjguMzcyIDMzLjk3NlYzMC4yNjZDMzY5LjgyNiAzMC4yNjYgMzcwLjY4NSAzMC4yNjYgMzcxLjE4IDMwLjI5OTNMMzcyLjUwMiAzMC4zNjUxQzM3Mi40MzYgMzAuMTY3OSAzNzIuNDM2IDMwLjA2OTIgMzcyLjQzNiAyOS45MDUzQzM3Mi40MzYgMjkuNzQxNCAzNzIuNDM2IDI5LjcwODEgMzcyLjUwMiAyOS40NDU4QzM3MS40MTEgMjkuNDc4MyAzNjkuOTI1IDI5LjU0MzggMzY5LjI2NCAyOS41NDM4QzM2OC44MDIgMjkuNTQzOCAzNjcuMzQ4IDI5LjUxMTMgMzY2LjU4NyAyOS40NDU4QzM2Ni42NTQgMzAuMjY2NCAzNjYuNjg2IDMxLjYxMjMgMzY2LjY4NiAzMi41NjQyVjM2Ljg2NTFDMzY2LjY4NiAzNy40ODg1IDM2Ni42MiAzOC43MzU3IDM2Ni41ODcgNDAuMDE2MkMzNjcuNTEzIDM5Ljk1MDMgMzY4LjgwMiAzOS45NTAzIDM2OS4yNjQgMzkuOTUwM0MzNzAuMDI0IDM5Ljk1IDM3MS42NDMgMzkuOTUgMzcyLjYwMSA0MC4wMTU4Wk0zNjQuNjA1IDM5LjEyOTRDMzY0LjQ0IDM4LjgwMDggMzY0LjM0MSAzOC4zMDg4IDM2NC4yNzUgMzguMDQ2MUMzNjIuOTIgMzkuMTYxOSAzNjEuOTk1IDM5LjM5MjQgMzYwLjkzOCAzOS4zOTI0QzM1OC41OTIgMzkuMzkyNCAzNTcuMzM3IDM3LjI5MTMgMzU3LjMzNyAzNC42NjQ5QzM1Ny4zMzcgMzEuNzQzNiAzNTguNzU3IDMwLjAzNjIgMzYxLjE2OSAzMC4wMzYyQzM2Mi40MjUgMzAuMDM2MiAzNjMuNjE0IDMwLjU5NDUgMzY0LjE3NiAzMS4xNTI4QzM2NC4yMDggMzAuODg5OCAzNjQuMzA4IDMwLjM2NDggMzY0LjQ3MyAzMC4wNjg4QzM2My4zMTYgMjkuNTExMyAzNjIuMjU5IDI5LjM0NjYgMzYxLjEwMiAyOS4zNDY2QzM1Ny4yMzcgMjkuMzQ2NiAzNTUuNDUzIDMxLjc0MzYgMzU1LjQ1MyAzNC44Mjg4QzM1NS40NTMgMzguMzA5MSAzNTcuNzk4IDQwLjE0NzEgMzYwLjczOSA0MC4xNDcxQzM2Mi40MjUgNDAuMTQ3MSAzNjMuODEyIDM5LjYyMjIgMzY0LjYwNSAzOS4xMjk0VjM5LjEyOTRaTTM0Mi4zMDMgMjYuODE5QzM0MC41MTkgMjMuNDA0OSAzMzguOCAxOS4xMzczIDMzNy41NzggMTYuMTE2OUgzMzcuMzhDMzM2LjU4NyAxOC4wMjA3IDMzNS4xMzMgMjEuMjcwOSAzMzQuNzM3IDIyLjE4OTlDMzM0LjI3NCAyMy4zMDYxIDMzMy4yNSAyNS41MDU2IDMzMi41ODkgMjYuODE4NkMzMzIuODAzIDI2Ljc1MzggMzMzLjAyNiAyNi43MjA2IDMzMy4yNSAyNi43MjAyQzMzMy40NDggMjYuNzIwMiAzMzMuNjEzIDI2Ljc1MzEgMzMzLjg0NSAyNi44MTg2QzMzNC4xNzUgMjUuOTMyMiAzMzQuNjM4IDI0LjgxNiAzMzUuMTMzIDIzLjYzNDNDMzM1Ljc5NCAyMy42MDE0IDMzNi4zODkgMjMuNTY4OCAzMzYuOTg0IDIzLjU2ODhDMzM3LjYxMiAyMy41Njg4IDMzOC4yNzIgMjMuNjAxNCAzMzguOTMzIDIzLjYzNDNMMzM5LjU5NCAyNS4yMUwzNDAuMjU1IDI2LjgxODZDMzQwLjcxNyAyNi43MjAyIDM0MS4wOCAyNi43MjAyIDM0MS4zMTIgMjYuNzIwMkMzNDEuNjA5IDI2LjcyMDYgMzQxLjg3MyAyNi43MjA2IDM0Mi4zMDMgMjYuODE5VjI2LjgxOVpNMzUzLjYzNiAyOS40NDU0QzM1My40MzggMjkuNTExMyAzNTMuMjczIDI5LjU0MzUgMzUzLjEwNyAyOS41NDM1QzM1Mi45MDkgMjkuNTQzNSAzNTIuNzQ0IDI5LjUxMDkgMzUyLjU0NiAyOS40NDU0QzM1Mi42NDQgMzAuNzU4NCAzNTIuNjc4IDMyLjA3MTQgMzUyLjY3OCAzMy4zNTE5VjM2LjczMzRDMzUyLjE0OSAzNi4yNzM2IDM1MC44NiAzNS4wOTE5IDM0OS4zNzQgMzMuNzEzQzM0Ny44NiAzMi4zMDc0IDM0Ni4zOTQgMzAuODUxMSAzNDQuOTc5IDI5LjM0NjZIMzQ0Ljc0OEMzNDQuNzgxIDMwLjgyNDMgMzQ0LjgxNCAzMi40IDM0NC44MTQgMzMuODExNFYzNS44Nzk5QzM0NC44MTQgMzcuNjUyOCAzNDQuODE0IDM4LjYwNDcgMzQ0LjcxNSA0MC4wMTYyQzM0NC45OCAzOS45NTAzIDM0NS4xMTIgMzkuOTUwMyAzNDUuMzEgMzkuOTUwM0MzNDUuNDQyIDM5Ljk1MDMgMzQ1LjU3NSAzOS45NTAzIDM0NS44MDYgNDAuMDE2MkMzNDUuNzQgMzguNjcwNiAzNDUuNzA3IDM2LjQ3MDggMzQ1LjcwNyAzNS44Nzk5VjMyLjU5NjhDMzQ4LjE4NSAzNC44NjI1IDM1MS4yMjQgMzcuODgyNiAzNTMuNDcxIDQwLjE0NzVIMzUzLjYwM0MzNTMuNjAzIDM4LjkzMjkgMzUzLjUzNyAzNy43MTc5IDM1My41MzcgMzYuNTA0VjM0LjYzMjdDMzUzLjUzNiAzMi40MzI1IDM1My41MzYgMzEuMzQ5MyAzNTMuNjM2IDI5LjQ0NTRaTTM0Mi41NjcgNDAuMDE1OEMzNDIuNTM0IDM5Ljg1MTkgMzQyLjUwMSAzOS43MjA2IDM0Mi41MDEgMzkuNTIzNEMzNDIuNTAxIDM5LjM5MjggMzQyLjUzNCAzOS4yMjgxIDM0Mi41NjcgMzkuMDk2NEMzNDEuMjQ2IDM5LjEyOTcgMzM4Ljg2NyAzOS4xOTUyIDMzOC4zNzEgMzkuMTk1MlYzNC42NjQ5QzMzOS42NiAzNC42NjQ5IDM0MC45NDggMzQuNjY0OSAzNDIuMjM3IDM0Ljc5NjNDMzQyLjIwNCAzNC42MzI0IDM0Mi4xNzEgMzQuNDY3NyAzNDIuMTcxIDM0LjMzNjRDMzQyLjE3MSAzNC4yMDU4IDM0Mi4xNzEgMzQuMDQxOSAzNDIuMjM3IDMzLjg0NDdDMzQxLjMxMiAzMy45NDI4IDMzOS4xOTcgMzMuOTc2IDMzOC4zNzEgMzMuOTc2VjMwLjI2NkMzMzkuNzkyIDMwLjI2NiAzNDAuNjUxIDMwLjI2NiAzNDEuMTc5IDMwLjI5OTNMMzQyLjQ2OCAzMC4zNjUxQzM0Mi40MzUgMzAuMTY3OSAzNDIuNDM1IDMwLjA2OTIgMzQyLjQzNSAyOS45MDUzQzM0Mi40MzUgMjkuNzQxNCAzNDIuNDM1IDI5LjY3NTUgMzQyLjQ2OCAyOS40NDU4QzM0MS4zNzggMjkuNDc4MyAzMzkuODkxIDI5LjU0MzggMzM5LjIzIDI5LjU0MzhDMzM4Ljc2NyAyOS41NDM4IDMzNy4zMTQgMjkuNTExMyAzMzYuNTU0IDI5LjQ0NThDMzM2LjYyIDMwLjI2NjQgMzM2LjY1MyAzMS42MTIzIDMzNi42NTMgMzIuNTY0MlYzNi44NjUxQzMzNi42NTMgMzcuNDg4NSAzMzYuNTg3IDM4LjczNTcgMzM2LjU1NCA0MC4wMTYyQzMzNy41MTIgMzkuOTUwMyAzMzguNzY3IDM5Ljk1MDMgMzM5LjIzIDM5Ljk1MDNDMzM5Ljk5IDM5Ljk1IDM0MS42NDIgMzkuOTUgMzQyLjU2NyA0MC4wMTU4VjQwLjAxNThaTTMzMS4yMDEgMjYuODE5QzMzMC42NzMgMjMuMjQwNiAzMzAuMjEgMTkuNDk4NCAzMjkuODQ3IDE2LjExNjlDMzI5Ljc0OCAxNi4xNDk4IDMyOS43MTQgMTYuMTQ5OCAzMjkuNjQ5IDE2LjExNjlDMzI4Ljk1NSAxNy4zMzE1IDMyOC4xNjIgMTguNjQ0NSAzMjcuNTY3IDE5LjU2MzlDMzI3LjAwNiAyMC40NTAzIDMyNi4zNDUgMjEuNTAwNyAzMjUuNTg1IDIyLjYxNjlDMzIzLjk5OSAyMC41ODE3IDMyMi4zNDcgMTguMDIxMSAzMjEuMjU2IDE2LjExNjlDMzIxLjE5IDE2LjE0OTggMzIxLjE1NyAxNi4xMTY5IDMyMS4wOTEgMTYuMTE2OUMzMjAuNzI4IDE5LjQ5OCAzMjAuMjMyIDIzLjI3MzIgMzE5LjczNiAyNi44MTlDMzIwLjAwMSAyNi43MjA2IDMyMC4xNjYgMjYuNzIwNiAzMjAuMjk4IDI2LjcyMDZDMzIwLjQ5NiAyNi43MjA2IDMyMC42MjggMjYuNzUzNSAzMjAuODU5IDI2LjgxOUMzMjAuOTkyIDI0LjQ1NTMgMzIxLjI1NiAyMi4xMjQ0IDMyMS41NTMgMTkuNjYyM0MzMjIuODQyIDIxLjUzMzYgMzIzLjk2NSAyMy4xNDIyIDMyNS4yMjEgMjQuODQ5M0MzMjYuMjc4IDIzLjIwNzcgMzI3LjM2OCAyMS40MzQ4IDMyOC41NTggMTkuNjI5NEMzMjguODg4IDIyLjE1NyAzMjkuMTg2IDI0LjQ1NTMgMzI5LjM1MSAyNi44MTlDMzI5Ljc4IDI2LjcyMDYgMzMwLjA3OCAyNi43MjA2IDMzMC4yNzYgMjYuNzIwNkMzMzAuNTQgMjYuNzIwNiAzMzAuODA1IDI2LjcyMDYgMzMxLjIwMSAyNi44MTlWMjYuODE5Wk0zMzQuOTY4IDMyLjIwMjhDMzM0Ljk2OCAzMC4yOTg5IDMzMy40NDggMjkuNDQ1NCAzMzEuNTk4IDI5LjQ0NTRDMzMwLjc3MiAyOS40NDU0IDMyOS44OCAyOS41NDM1IDMyOS4yNTIgMjkuNTQzNUMzMjkuMDIxIDI5LjU0MzUgMzI4LjUyNSAyOS41NDM1IDMyNy45OTcgMjkuNDc3NkMzMjguMDMgMzAuNTI4MyAzMjguMDk2IDMxLjQxNDggMzI4LjA5NiAzMi40MzIyVjM2LjkyOTVDMzI4LjA5NiAzNy45MTQ4IDMyOC4wMyAzOC45OTggMzI3Ljk5NyA0MC4wMTU0QzMyOC40MjYgMzkuOTQ5NiAzMjguNzI0IDM5Ljk0OTYgMzI4LjkyMiAzOS45NDk2QzMyOS4xNTMgMzkuOTQ5NiAzMjkuNDg0IDM5Ljk0OTYgMzI5Ljg4IDQwLjAxNTRDMzI5LjgxNSAzOS4wMzE5IDMyOS43ODIgMzguMDQ2NSAzMjkuNzgxIDM3LjA2MDlWMzUuNDJDMzMwLjE0NSAzNS40NTI2IDMzMC41MDggMzUuNDUyNiAzMzAuOTA1IDM1LjQ1MjZDMzMyLjgyIDM1LjQ1MjYgMzM0Ljk2OCAzNC43MzA0IDMzNC45NjggMzIuMjAyOFYzMi4yMDI4Wk0zMjYuMDE0IDM2Ljg5NzNDMzI2LjAxNCAzNS4yNTU4IDMyNC45MjQgMzQuNTMzNiAzMjMuMDQgMzMuNzQ1NkMzMjEuNjg2IDMzLjE4OCAzMjAuOTkyIDMyLjY5NTYgMzIwLjk5MiAzMS42NDQ1QzMyMC45OTIgMzAuNjYgMzIxLjc1MiAzMC4wMzYyIDMyMy4wMDggMzAuMDM2MkMzMjMuODM0IDMwLjAzNjIgMzI0LjU2MSAzMC4zMzE1IDMyNS4yMjIgMzAuODU2OEMzMjUuMjg3IDMwLjQ5NTcgMzI1LjQ1MyAzMC4xMzQ3IDMyNS42NTEgMjkuODM5NEMzMjQuODU4IDI5LjQ3ODMgMzIzLjk5OSAyOS4zNDcgMzIzLjA3NCAyOS4zNDdDMzIwLjM2NSAyOS4zNDcgMzE5LjUwNSAzMC44OTA1IDMxOS41MDUgMzIuMjAzNUMzMTkuNTA1IDMzLjgxMTggMzIwLjI5OSAzNC41NjcyIDMyMi4zNDcgMzUuMzU1M0MzMjMuNjM2IDM1Ljg0NyAzMjQuMjk2IDM2LjQ3MTEgMzI0LjI5NiAzNy41NTQ0QzMyNC4yOTYgMzguNzAzNSAzMjMuNDM3IDM5LjQyNTcgMzIyLjI0OCAzOS40MjU3QzMyMS41NTQgMzkuNDI1NyAzMjAuMzY1IDM5LjA2NDYgMzE5LjUzOSAzOC4zMDk5QzMxOS41MDUgMzguNzM2MSAzMTkuNTA1IDM5LjEzMDQgMzE5LjM3MyAzOS40OTE1QzMxOS45MDIgMzkuNzU0NiAzMjEuMTI1IDQwLjE0NzkgMzIyLjIxNSA0MC4xNDc5QzMyNC45OSA0MC4xNDcxIDMyNi4wMTQgMzguNDM5NyAzMjYuMDE0IDM2Ljg5NzNWMzYuODk3M1pNMzc4LjE1MiAxNy45ODgyQzM3OC4xNTIgMTguOTczIDM3Ny40NTggMTkuNjYyMyAzNzYuNzY0IDIwLjIyMDJDMzc2LjMwMSAxOS41NjM5IDM3NS43NCAxOC42NzcxIDM3NS43NCAxNy45ODgyQzM3NS43NCAxNy4yMzMxIDM3Ni4yNjggMTYuODA2MSAzNzYuOTk1IDE2LjgwNjFDMzc3Ljk4NyAxNi44MDY1IDM3OC4xNTIgMTcuNjkyNiAzNzguMTUyIDE3Ljk4ODJWMTcuOTg4MlpNMzc4LjQ4MiAyNS4wMTMyQzM3OC4xMTkgMjUuMzQxNyAzNzcuMjYgMjUuOTY1NSAzNzYuNTMzIDI1Ljk2NTVDMzc1LjU3NCAyNS45NjU1IDM3NC40MTggMjUuMjc1OSAzNzQuNDE4IDIzLjc5ODZDMzc0LjQxOCAyMi40ODU1IDM3NS4yNzcgMjEuODk0NyAzNzUuODA2IDIxLjU2NjVDMzc3LjAyOCAyMy4yNDA2IDM3Ny4wOTUgMjMuMzM5MSAzNzguNDgyIDI1LjAxMzJaTTM3OS44MDQgMzIuMjAyOEMzNzkuODA0IDMzLjI1MzUgMzc5LjI3NSAzNC40MDI2IDM3Ny43NTUgMzQuNDAyNkMzNzcuMzI2IDM0LjQwMjYgMzc2LjkyOSAzNC40MDI2IDM3Ni41MzMgMzQuMzY5M1YzMC4yNjU2QzM3Ni45MjkgMzAuMTY3NiAzNzcuNDI1IDMwLjEzNDMgMzc3LjcyMiAzMC4xMzQzQzM3OS4wMTEgMzAuMTM0MyAzNzkuODA0IDMwLjg4OTggMzc5LjgwNCAzMi4yMDI4Wk0zMzguNjAyIDIyLjgxNDFDMzM3LjkwOSAyMi44NDY2IDMzNy41NDUgMjIuODQ2NiAzMzcuMDgyIDIyLjg0NjZDMzM2LjUyMSAyMi44NDY2IDMzNi4xOSAyMi44NDY2IDMzNS40NjMgMjIuODE0MUwzMzcuMDgyIDE5LjAwNkwzMzguNjAyIDIyLjgxNDFaTTMzMy4xNTEgMzIuMzAwOEMzMzMuMTUxIDMzLjgxMTEgMzMyLjI1OCAzNC43OTU5IDMzMC44MDUgMzQuNzk1OUMzMzAuNTA3IDM0Ljc5NTkgMzMwLjE3NyAzNC43OTU5IDMyOS43OCAzNC43MzAxVjMwLjIzMjdDMzMwLjI0MyAzMC4xNjY5IDMzMC42MzkgMzAuMTMzOSAzMzEuMDM2IDMwLjEzMzlDMzMyLjQyNCAzMC4xMzQzIDMzMy4xNTEgMzEuMDIxMSAzMzMuMTUxIDMyLjMwMDhaTTM2OS41MjggMjMuNjY3NkMzNjkuNTI4IDIyLjAyNiAzNjguNDM4IDIxLjMwMzkgMzY2LjU1NSAyMC41MTYyQzM2NS4yIDE5Ljk1ODMgMzY0LjUwNiAxOS40OTg4IDM2NC41MDYgMTguNDE1MUMzNjQuNTA2IDE3LjQ2MzIgMzY1LjI2NiAxNi44MDY1IDM2Ni41MjEgMTYuODA2NUMzNjcuMzQ4IDE2LjgwNjUgMzY4LjA3NSAxNy4xMDE3IDM2OC43MzUgMTcuNjI3NUMzNjguODAyIDE3LjI2NjQgMzY4Ljk2NyAxNi45MDQ5IDM2OS4xMzEgMTYuNjQyMkMzNjguMzcyIDE2LjI4MTEgMzY3LjQ3OSAxNi4xMTcyIDM2Ni41ODcgMTYuMTE3MkMzNjMuOTQ0IDE2LjExNzIgMzYyLjk4NiAxNy42NiAzNjIuOTg2IDE5LjAwNkMzNjIuOTg2IDIwLjU4MTcgMzYzLjgxMiAyMS4zMzY4IDM2NS44NjEgMjIuMTI0NEMzNjcuMTQ5IDIyLjYxNjkgMzY3LjgxIDIzLjI0MDYgMzY3LjgxIDI0LjM1NjhDMzY3LjgxIDI1LjQ3MyAzNjYuOTUxIDI2LjE5NTIgMzY1Ljc2MiAyNi4xOTUyQzM2NS4wMzUgMjYuMTk1MiAzNjMuODc5IDI1LjgzNDEgMzYzLjA1MiAyNS4xMTE5QzM2My4wMiAyNS41Mzg5IDM2Mi45ODYgMjUuOSAzNjIuODg3IDI2LjI2MTFDMzYzLjM4MyAyNi41MjM4IDM2NC42MDYgMjYuOTE3NCAzNjUuNzI5IDI2LjkxNzRDMzY4LjUwNCAyNi45MTc0IDM2OS41MjggMjUuMjQzMyAzNjkuNTI4IDIzLjY2NzZWMjMuNjY3NloiIGZpbGw9IiMwMzY1NTUiLz4NCjxwYXRoIGQ9Ik02NDAuNDE2IDIwLjU1NzNDNjM4LjY3MSAxOS44MzU0IDYzNy42MzEgMTkuNTU1MSA2MzYuNTk4IDE5LjU1NTFDNjM1LjUxNCAxOS41NTUxIDYzNC44MTkgMTkuOTE3IDYzNC44MTkgMjAuNDc2NUM2MzQuODE5IDIyLjE2NDUgNjQwLjk2MiAyMS42ODkzIDY0MC45NjIgMjUuNTkzNkM2NDAuOTYyIDI3Ljc0NjQgNjM5LjAyNCAyOC45OTc0IDYzNi4zMzIgMjguOTk3NEM2MzQuMjIgMjguOTk3NCA2MzMuMTggMjguNDg4IDYzMS45ODMgMjcuOTExNlYyNS40OTYyQzYzMy43MSAyNi41NjM1IDYzNC43NjggMjYuOTQwMSA2MzYuMTAxIDI2Ljk0MDFDNjM3LjI1NiAyNi45NDAxIDYzNy44NzkgMjYuNTYzNSA2MzcuODc5IDI1LjkwNjNDNjM3Ljg3OSAyNC4wNjg1IDYzMS43MzcgMjQuNzQxNSA2MzEuNzM3IDIwLjcyMTNDNjMxLjczNyAxOC43ODI3IDYzMy41MzQgMTcuNDk5IDYzNi4zMzIgMTcuNDk5QzYzNy42ODIgMTcuNDk5IDYzOC45MDEgMTcuNzYzNSA2NDAuNDE2IDE4LjM3MDdWMjAuNTU3M1pNNjQ5LjAxNiAyOC40ODQxQzY0Ny45OTIgMjguODMwNiA2NDcuMTI2IDI4Ljk5NTQgNjQ2LjI2MiAyOC45OTU0QzY0My40MDIgMjguOTk1NCA2NDEuNTUyIDI3LjQ0MjIgNjQxLjU1MiAyNS4wNzkyQzY0MS41NTIgMjIuNzU5NCA2NDMuNDczIDIxLjEyMDIgNjQ2LjE1NiAyMS4xMjAyQzY0Ni45ODUgMjEuMTIwMiA2NDguMDQ0IDIxLjMxODIgNjQ4Ljg5MSAyMS42MTIzVjIzLjM4ODFDNjQ4LjIyMSAyMy4wNTYyIDY0Ny40NDQgMjIuODc0MSA2NDYuODA5IDIyLjg3NDFDNjQ1LjI3MyAyMi44NzQxIDY0NC4yODYgMjMuNzM0MyA2NDQuMjg2IDI1LjA2MTlDNjQ0LjI4NiAyNi40MDggNjQ1LjI1NiAyNy4yOTQgNjQ2LjcyIDI3LjI5NEM2NDcuMzM3IDI3LjI5NCA2NDcuODg2IDI3LjE2MjMgNjQ5LjAxNiAyNi43NjhMNjQ5LjAxNiAyOC40ODQxWk02NzEuMzIgMjQuMjA5QzY3MS40MjUgMjMuMTU0OCA2NzIuMDgxIDIyLjU0NTcgNjczLjA4NyAyMi41NDU3QzY3NC4wNzYgMjIuNTQ1NyA2NzQuNzQ2IDIzLjE3MjEgNjc0Ljg1MiAyNC4yMDlINjcxLjMyWk02NzIuOTEgMjEuMTIyOUM2NzAuNCAyMS4xMjI5IDY2OC42MTQgMjIuNzc1NSA2NjguNjE0IDI1LjEwMTJDNjY4LjYxNCAyNy40NDQxIDY3MC40NzEgMjguOTk1NCA2NzMuMzM1IDI4Ljk5NTRDNjczLjk3IDI4Ljk5NTQgNjc1LjUwNCAyOC45OTU0IDY3Ni45NjYgMjcuOTg3VjI2LjUwNDJDNjc1Ljc2OSAyNy4yOTkzIDY3NC45NzcgMjcuNTczMSA2NzMuOTU1IDI3LjU3MzFDNjcyLjM0MSAyNy41NzMxIDY3MS4zNTQgMjYuNzk0OSA2NzEuMjY1IDI1LjQ2NjZINjc3LjExQzY3Ny4yMzIgMjIuNjkzOSA2NzUuMjc5IDIxLjEyMjkgNjcyLjkxIDIxLjEyMjlWMjEuMTIyOVpNNjc4LjA5OSAyOC44NTcySDY4MC42NTRWMjEuMjYyN0g2NzguMDk5VjI4Ljg1NzJaTTY4Ny43NjcgMjYuNzgxNUM2ODcuMjM0IDI3LjIyODEgNjg2Ljc5MiAyNy40MDcyIDY4Ni4yNDYgMjcuNDA3MkM2ODUuMDQzIDI3LjQwNzIgNjg0LjI4MSAyNi40ODM4IDY4NC4yODEgMjUuMTAwNEM2ODQuMjgxIDIzLjU4NDEgNjg1LjA0MyAyMi43MTAxIDY4Ni4zMzEgMjIuNzEwMUM2ODYuNzkyIDIyLjcxMDEgNjg3LjM5NCAyMi45MDggNjg3Ljc2NyAyMy4xNTU5VjI2Ljc4MTVaTTY4Ny43NjcgMTcuNjM5MVYyMS41OTU4QzY4Ny4wNzYgMjEuMjg0NyA2ODYuMzg4IDIxLjEyMDIgNjg1LjY0NCAyMS4xMjAyQzY4My4zMTMgMjEuMTIwMiA2ODEuNyAyMi43MjY2IDY4MS43IDI1LjA1MDdDNjgxLjcgMjcuMzI0OCA2ODMuMzEzIDI4Ljk5NzQgNjg1LjUgMjguOTk3NEM2ODYuMzY3IDI4Ljk5NzQgNjg3LjAzNyAyOC43ODU2IDY4Ny43NjcgMjguMjQzNVYyOC44NTQ5SDY5MC4zMjJWMTcuNjM5MUg2ODcuNzY3Wk02OTQuMTA1IDI0LjIwOUM2OTQuMjExIDIzLjE1NDggNjk0Ljg2NCAyMi41NDU3IDY5NS44NjggMjIuNTQ1N0M2OTYuODU4IDIyLjU0NTcgNjk3LjUzNSAyMy4xNzIxIDY5Ny42NDEgMjQuMjA5SDY5NC4xMDVaTTY5NS42OTQgMjEuMTIyOUM2OTMuMTg0IDIxLjEyMjkgNjkxLjQgMjIuNzc1NSA2OTEuNCAyNS4xMDEyQzY5MS40IDI3LjQ0NDEgNjkzLjI1OSAyOC45OTU0IDY5Ni4xMTkgMjguOTk1NEM2OTYuNzUzIDI4Ljk5NTQgNjk4LjI5IDI4Ljk5NTQgNjk5Ljc1NSAyNy45ODdWMjYuNTA0MkM2OTguNTU3IDI3LjI5OTMgNjk3Ljc2MyAyNy41NzMxIDY5Ni43MzYgMjcuNTczMUM2OTUuMTMxIDI3LjU3MzEgNjk0LjE0IDI2Ljc5NDkgNjk0LjA1MSAyNS40NjY2SDY5OS44OTRDNzAwLjAxNSAyMi42OTM5IDY5OC4wNjEgMjEuMTIyOSA2OTUuNjk0IDIxLjEyMjkiIGZpbGw9IiMwMDlFNEQiLz4NCjxwYXRoIGQ9Ik03MDMuNzIxIDIzLjQzNjhINzAzLjc1OEM3MDQuNTE3IDIxLjg1NjIgNzA1LjM2NiAyMS4xMTUgNzA2LjM1MiAyMS4xMTVDNzA2Ljg2MiAyMS4xMTUgNzA3LjMwMyAyMS4yOTY0IDcwOC4wNDQgMjEuODA3Nkw3MDcuMzQxIDIzLjkxMzNDNzA2LjY3IDIzLjUxODYgNzA2LjIyOSAyMy4zNTM1IDcwNS44MjMgMjMuMzUzNUM3MDQuODg2IDIzLjM1MzUgNzA0LjI4NiAyNC4xNzc1IDcwMy43MjEgMjUuNTcwNFYyOC44NDY2SDcwMS4xNjJWMjEuMjU0MUg3MDMuNzIxVjIzLjQzNjhaTTY4MC43NzUgMTguMDY3NEM2ODEuMDE1IDE4LjY1NzUgNjgwLjU4MyAxOS40ODA1IDY3OS44MTQgMTkuOTA0QzY3OS4wNDEgMjAuMzI3MSA2NzguMjI0IDIwLjE5MjggNjc3Ljk4NiAxOS42MDI3QzY3Ny43NDMgMTkuMDExNyA2NzguMTczIDE4LjE4NzcgNjc4Ljk0NSAxNy43NjY2QzY3OS43MTYgMTcuMzQxMSA2ODAuNTMzIDE3LjQ3NTkgNjgwLjc3NSAxOC4wNjc0WiIgZmlsbD0iIzAwOUU0RCIvPg0KPHBhdGggZD0iTTY1OC4yMiAyNC4wMjMxQzY1OC4yMiAyMS45NjUxIDY1Ni43MTkgMjEuMTIyNiA2NTUuMjM5IDIxLjEyMjZDNjU0LjIzMiAyMS4xMjI2IDY1My40MDQgMjEuNTE4NCA2NTIuNjY0IDIyLjM5MjFINjUyLjYyOVYxNy42MzkySDY1MC4wNzFWMjguODM1M0g2NTIuNjI5VjI0LjAyMzFDNjUzLjIyOCAyMy4yMTYxIDY1My43MzggMjIuODcxMSA2NTQuMzM4IDIyLjg3MTFDNjU1LjEzNCAyMi44NzExIDY1NS42NjIgMjMuMzk4NiA2NTUuNjYyIDI0LjUzMjlWMjcuMjAwOEM2NTYuNTIgMjYuNzg5NiA2NTcuMzkzIDI2LjUzNzQgNjU4LjIyIDI2LjQ0MzhWMjQuMDIzMVpNNjY0LjYzNiAyMS4xMTk5QzY2My41OTQgMjEuMTE5OSA2NjIuNzk5IDIxLjQ4MTEgNjYxLjk4NCAyMi4zNDkzVjIxLjI2MjRINjU5LjQyOFYyNi40MjM0QzY2MC4zMTMgMjYuNTA1OCA2NjEuNDQzIDI2Ljg4NDcgNjYxLjk4NCAyNy41MTA0VjIzLjk2MzRDNjYyLjY1NyAyMy4wMjMyIDY2My4xMzQgMjIuNzA5NyA2NjMuNzcgMjIuNzA5N0M2NjQuNDk0IDIyLjcwOTcgNjY1LjA0NSAyMy4xNTU2IDY2NS4wNDUgMjQuMjI2NFYyOC44MzcySDY2Ny42MDJWMjQuMDI4OUM2NjcuNjAyIDIxLjc5MjYgNjY1LjkwOCAyMS4xMTk5IDY2NC42MzYgMjEuMTE5OVYyMS4xMTk5Wk02NjkuMDE1IDMxLjAxODFINjY2LjA0M1YzMi45ODY0SDY2OC45MDlWMzMuODMxMkg2NjYuMDQzVjM1Ljg2MTlINjY5LjEwM1YzNi43MDU1SDY2NS4wNDZWMzAuMTc1Mkg2NjkuMDE1TDY2OS4wMTUgMzEuMDE4MVpNNjcxLjQ0MiAzNi43MDkzSDY3Mi4zNTJWMzAuMTczM0g2NzEuNDQyVjM2LjcwOTNaTTY3Ni44NTkgMzMuMDQ4NEM2NzcuNTA0IDMzLjA0ODQgNjc3LjkwNCAzMy40NjMxIDY3Ny45MzUgMzQuMTE0Mkg2NzUuNjE2QzY3NS43NDIgMzMuNDM0MiA2NzYuMTYxIDMzLjA0ODQgNjc2Ljg1OSAzMy4wNDg0Wk02NzUuNiAzNC42ODFINjc4Ljg0MkM2NzguODQyIDMzLjA4NjkgNjc4LjA2MiAzMi4zMTggNjc2LjgzOCAzMi4zMThDNjc1LjU2OSAzMi4zMTggNjc0LjY4OCAzMy4xOTI0IDY3NC42ODggMzQuNDk2OUM2NzQuNjg4IDM1LjY4OSA2NzUuNDg0IDM2Ljc4OTggNjc2LjkxNyAzNi43ODk4QzY3Ny42OTggMzYuNzg5OCA2NzguMjAzIDM2LjYyODEgNjc4Ljc2MyAzNi4yODJWMzUuNDU2QzY3OC4yMjIgMzUuNzg1NiA2NzcuNjk4IDM1Ljk3NTggNjc3LjE0NyAzNS45NzU4QzY3Ni4yNjUgMzUuOTc1OCA2NzUuNzQyIDM1LjUzNSA2NzUuNiAzNC42ODA2VjM0LjY4MVpNNjg0Ljc4NiAzMy41MzA5QzY4NC4yNjMgMzMuMTk2NiA2ODMuOTE0IDMzLjA5ODUgNjgzLjUxNSAzMy4wOTg1QzY4Mi42ODIgMzMuMDk4NSA2ODIuMTA1IDMzLjY5NDUgNjgyLjEwNSAzNC41NjdDNjgyLjEwNSAzNS40NTYgNjgyLjcxOSAzNS45OTE2IDY4My42NjggMzUuOTkxNkM2ODQuMDU4IDM1Ljk5MTYgNjg0LjQzIDM1Ljg5NzMgNjg0Ljg4OCAzNS43MDU5VjM2LjU0MjZDNjg0LjU4MiAzNi42Nzc0IDY4My45OTcgMzYuNzg5OCA2ODMuNTE1IDM2Ljc4OThDNjgyLjEzNiAzNi43ODk4IDY4MS4xOCAzNS45MDYyIDY4MS4xOCAzNC42NDMyQzY4MS4xOCAzMy4yMTc4IDY4Mi4wNTQgMzIuMzE4IDY4My40NTMgMzIuMzE4QzY4My45ODcgMzIuMzE4IDY4NC4zNDYgMzIuNDMzOSA2ODQuNzg3IDMyLjYxNDVMNjg0Ljc4NiAzMy41MzA5Wk02ODguOTM0IDMyLjQwMDRINjkwLjM5NVYzMy4xNjUxSDY4OC45MzRWMzUuMzc1MkM2ODguOTM0IDM1Ljg4MTEgNjg5LjMyNyAzNi4wMjc0IDY4OS41OTMgMzYuMDI3NEM2ODkuOTIyIDM2LjAyNzQgNjkwLjI2MiAzNS45MiA2OTAuNjMgMzUuNzA3OVYzNi41MDM3QzY5MC4zMSAzNi42Njc4IDY4OS44MiAzNi43ODk4IDY4OS41MTkgMzYuNzg5OEM2ODguNTI4IDM2Ljc4OTggNjg4LjAyNyAzNi4yMTYxIDY4OC4wMjcgMzUuNDM5MVYzMy4xNjUxSDY4Ny4yMjRWMzMuMDcwM0w2ODguOTM0IDMxLjUxMDJWMzIuNDAwNFpNNjkzLjg3NiAzMi40MDA0VjMzLjM5NjlINjkzLjg5NUM2OTQuMzU5IDMyLjYzNDUgNjk0LjggMzIuMzE4IDY5NS4yMyAzMi4zMThDNjk1LjYwMSAzMi4zMTggNjk1Ljk0NyAzMi40ODAxIDY5Ni4zMjkgMzIuODE2Nkw2OTUuODQ3IDMzLjU2NDRDNjk1LjU3IDMzLjMwOTEgNjk1LjIxMSAzMy4xMzMxIDY5NC45OTUgMzMuMTMzMUM2OTQuMzY4IDMzLjEzMzEgNjkzLjg3NiAzMy43MjY4IDY5My44NzYgMzQuNDYyNlYzNi43MDkzSDY5Mi45NjdWMzIuNDAwNEg2OTMuODc2Wk03MDUuNjU3IDMzLjUzMDlDNzA1LjEzMSAzMy4xOTY2IDcwNC43ODIgMzMuMDk4NSA3MDQuMzgxIDMzLjA5ODVDNzAzLjU0OSAzMy4wOTg1IDcwMi45NzcgMzMuNjk0NSA3MDIuOTc3IDM0LjU2N0M3MDIuOTc3IDM1LjQ1NiA3MDMuNTkyIDM1Ljk5MTYgNzA0LjUzNSAzNS45OTE2QzcwNC45MjUgMzUuOTkxNiA3MDUuMjk1IDM1Ljg5NzMgNzA1Ljc2IDM1LjcwNTlWMzYuNTQyNkM3MDUuNDQ3IDM2LjY3NzQgNzA0Ljg2MiAzNi43ODk4IDcwNC4zOCAzNi43ODk4QzcwMy4wMDQgMzYuNzg5OCA3MDIuMDQ0IDM1LjkwNjIgNzAyLjA0NCAzNC42NDMyQzcwMi4wNDQgMzMuMjE3OCA3MDIuOTIyIDMyLjMxOCA3MDQuMzIgMzIuMzE4QzcwNC44NTUgMzIuMzE4IDcwNS4yMTIgMzIuNDMzOSA3MDUuNjU3IDMyLjYxNDVMNzA1LjY1NyAzMy41MzA5Wk02OTguNzQyIDM2LjcwOTNINjk5LjY1MlYzMi40MDA4SDY5OC43NDJWMzYuNzA5M1oiIGZpbGw9IiMwMDlFNEQiLz4NCjxwYXRoIGQ9Ik02OTkuNjg0IDMwLjg1MjVDNjk5Ljc3MyAzMS4wNjA0IDY5OS42MTggMzEuMzU0NCA2OTkuMzQ0IDMxLjUwNDFDNjk5LjA2OCAzMS42NTQzIDY5OC43NzYgMzEuNjA2MiA2OTguNjkzIDMxLjM5NzhDNjk4LjYxIDMxLjE4NzQgNjk4Ljc2MSAzMC44OTU4IDY5OS4wMzggMzAuNzQ1NkM2OTkuMzExIDMwLjU5MzUgNjk5LjYwMSAzMC42NDIxIDY5OS42ODQgMzAuODUyNVYzMC44NTI1Wk02NTguOTQgMzEuMjAwOUM2NTguNzc5IDMxLjIwMDkgNjU4LjcxMSAzMS4yMjU1IDY1OC42NDYgMzEuMjkzOEM2NTguNjIgMzEuMzIwMyA2NTguNjEgMzEuMzQ3MiA2NTguNiAzMS40MDExTDY1Ny43ODQgMzQuMjg3QzY1Ny41OTMgMzUuMjk5MiA2NTYuMjU5IDM2LjMwOTkgNjU0LjUyMSAzNi4zMDk5SDY1Mi4xMDRMNjUyLjUyMyAzNC44MjdINjU0LjA3NkM2NTQuMjM0IDM0LjgyNyA2NTQuMzU4IDM0Ljc3MjEgNjU0LjQ2MiAzNC42NjQzQzY1NC41IDM0LjYyMjUgNjU0LjU1IDM0LjU1NyA2NTQuNTU2IDM0LjQ4OTZMNjU1LjIwMSAzMS45NjgxQzY1NS4zOTEgMzAuOTU1NSA2NTYuNTM4IDI5LjgzNjkgNjU4LjI3NiAyOS44MzY5SDY2MC43NTFMNjYwLjQzNSAzMS4yMDA5SDY1OC45NFpNNjU5LjQ5NyAzMi45NTk2TDY1OS43NzMgMzIuMDI1OUg2NjIuMjg4QzY2Mi41OTggMzAuNjcyIDY2Mi4zNTQgMjkuNDE3NyA2NjEuNDczIDI4LjU5NjFDNjU5LjY4OSAyNi45MzMyIDY1NS45NTcgMjcuNDk4MyA2NTMuMTc3IDI5Ljk3NzlDNjUyLjc0MyAzMC4zNjMgNjUyLjM3NiAzMC43NzkzIDY1Mi4wNDIgMzEuMjA0OEg2NTMuNTU2TDY1My4yMDQgMzIuMTQwNEg2NTEuMzk1QzY1MS4yMjIgMzIuNDM1NCA2NTEuMDYgMzIuNzI4MSA2NTAuOTM2IDMzLjAyNUg2NTMuMDgxTDY1Mi43MzcgMzMuOTYwN0g2NTAuNjNDNjUwLjI2OSAzNS4zOTAxIDY1MC40OTkgMzYuNzIzMyA2NTEuNDA2IDM3LjU2OTlDNjUzLjE2NyAzOS4yMTE2IDY1Ni44ODggMzguNjM0NiA2NTkuNjY3IDM2LjE1NTRDNjYwLjE1MyAzNS43MjQyIDY2MC41NTUgMzUuMjU4NyA2NjAuOTE4IDM0Ljc4MDhINjU4Ljk3M0w2NTkuMjY5IDMzLjg0NzFINjYxLjU0M0M2NjEuNzEgMzMuNTUwMSA2NjEuODYzIDMzLjI1NjUgNjYxLjk4MyAzMi45NTk2SDY1OS40OTdaIiBmaWxsPSIjMDA5RTREIi8+DQo8ZyBjbGlwLXBhdGg9InVybCgjY2xpcDBfNThfMTExKSI+DQo8cGF0aCBkPSJNNzc1LjA2OCA0MS4yMjc0Qzc2Ni4yODUgNDIuMDQ2MyA3NTcuMTMxIDQwLjc1NjQgNzU1Ljg0OCAzMy44MTlDNzU1LjIyMSAzMC4zOTkgNzU2Ljc2NSAyNi43NzI1IDc1OC44MSAyNC41MTg0VjIzLjMxNDhDNzU1LjEyNiAyNi41OCA3NTMuMTMgMzAuNzExNSA3NTQuMjggMzUuNTkyQzc1NS43NDggNDEuODUxOCA3NjMuNjAzIDQ1LjM5NjcgNzc1LjU5NSA0NC4yMTk1Qzc4MC4zNDIgNDMuNzU0NSA3ODYuNTUgNDIuMjEyIDc5MC44NjkgMzkuODE0NFYzNi40MTA5Qzc4Ni45NDkgMzguNzcxMyA3ODAuNDY4IDQwLjcyMTEgNzc1LjA2OCA0MS4yMjc0VjQxLjIyNzRaTTc5OC4yMDUgMjMuMjMzNUM3OTYuMTIyIDEyLjk1MzMgNzc2LjM3MyAxMi4zMDE2IDc2My42NDMgMjAuMTMzOFYyMC45OTg5Qzc3Ni4zNTkgMTQuMzkxNSA3OTQuMzk1IDE0LjQzMTcgNzk2LjAzNyAyMy45MDE2Qzc5Ni41ODkgMjcuMDM0MiA3OTQuODQzIDMwLjI5NzggNzkxLjcyMyAzMi4xNzdWMzQuNjM0MkM3OTUuNDc2IDMzLjI0MzIgNzk5LjMyNCAyOC43NDQyIDc5OC4yMDUgMjMuMjMzNVYyMy4yMzM1WiIgZmlsbD0iIzBFN0RDMiIvPg0KPHBhdGggZD0iTTc5MC4xNTkgMjEuNzM2OEg3ODcuODU2VjMyLjEwM0M3ODcuODU2IDMzLjMxNzkgNzg4LjQzNyAzNC4zNzQ0IDc5MC4xNTkgMzQuNTQzMlYyMS43MzY4Wk03NjIuNzM5IDI1LjUyMTdINzYwLjQzMkw3NjAuNDMxIDMyLjI5NDNDNzYwLjQzMSAzMy41MTM0IDc2MS4wMTMgMzQuNTY4OCA3NjIuNzM5IDM0LjczNDRWMjUuNTIxN1YyNS41MjE3Wk03NjAuNDMyIDIyLjA1MjFINzYyLjczMlYyNC4yNTg0SDc2MC40MzJWMjIuMDUyMVpNNzc2LjUzIDM0LjYyNzJDNzc0LjY2NiAzNC42MjcyIDc3My44NzcgMzMuMzE3NyA3NzMuODc3IDMyLjAyOFYyMy4wMzU1SDc3Ni4xNlYyNS41MjE3SDc3Ny44NzlWMjcuMzg1M0g3NzYuMTZWMzEuODg1NEM3NzYuMTYgMzIuNDExMyA3NzYuNDA3IDMyLjcwNDQgNzc2Ljk1IDMyLjcwNDRINzc3Ljg3OVYzNC42MjcyTDc3Ni41MyAzNC42MjcyVjM0LjYyNzJaTTc4MC43MzEgMzAuNzk2MUM3ODAuNzMxIDMxLjk3NjggNzgxLjQ2MSAzMi44NDQ2IDc4Mi43NTQgMzIuODQ0NkM3ODMuNzY2IDMyLjg0NDYgNzg0LjI2NiAzMi41NjA1IDc4NC44NSAzMS45NzY4TDc4Ni4yNjEgMzMuMzM0OUM3ODUuMzU3IDM0LjIzNzkgNzg0LjQwOSAzNC43ODcgNzgyLjczNyAzNC43ODdDNzgwLjU1MiAzNC43ODcgNzc4LjQ1OSAzMy41ODE5IDc3OC40NTkgMzAuMDY4NkM3NzguNDU5IDI3LjA2NTEgNzgwLjI4OCAyNS4zNjczIDc4Mi42ODYgMjUuMzY3M0M3ODUuMTI0IDI1LjM2NzMgNzg2LjUyNSAyNy4zNTQ5IDc4Ni41MjUgMjkuOTYzOVYzMC43OTYzSDc4MC43MzFWMzAuNzk2MVpNNzgyLjU4NiAyNy4yNzU2Qzc4MS44MDUgMjcuMjc1NiA3ODEuMjA0IDI3LjY4MjMgNzgwLjk1IDI4LjIzMDlDNzgwLjgwMiAyOC41NjA3IDc4MC43NDcgMjguODE3NyA3ODAuNzMxIDI5LjIyMjlINzg0LjI0OUM3ODQuMjA0IDI4LjIzMDkgNzgzLjc1OSAyNy4yNzU2IDc4Mi41ODYgMjcuMjc1NlpNNzY4LjkzOSAyNy4zODUzQzc2OS42MDggMjcuMzg1MyA3NjkuODg3IDI3LjcxOTggNzY5Ljg4NyAyOC4yNjI2VjM0LjY0MDZINzcyLjE3VjI4LjI0OTJDNzcyLjE3IDI2Ljk1NDIgNzcxLjQ4NyAyNS41MjQxIDc2OS40ODIgMjUuNTI0MUw3NjQuNzY2IDI1LjUyMTdWMzQuNjQwNkg3NjcuMDVWMjcuMzg1M0g3NjguOTM5VjI3LjM4NTNaTTc5Mi42MzcgMjMuNTg5MUM3OTIuMTI5IDIzLjU4OTEgNzkxLjcyNCAyMy4xNzU0IDc5MS43MjQgMjIuNjYyOUM3OTEuNzI0IDIyLjE1MjkgNzkyLjEyOSAyMS43MzY4IDc5Mi42MzcgMjEuNzM2OEM3OTMuMTQyIDIxLjczNjggNzkzLjU1NiAyMi4xNTI5IDc5My41NTYgMjIuNjYyOUM3OTMuNTU2IDIzLjE3NTQgNzkzLjE0MiAyMy41ODkxIDc5Mi42MzcgMjMuNTg5MVpNNzkyLjYzNyAyMS44OTEyQzc5Mi4yMTggMjEuODkxMiA3OTEuODgyIDIyLjI0MDcgNzkxLjg4MiAyMi42NjI5Qzc5MS44ODIgMjMuMDg3NiA3OTIuMjE4IDIzLjQzMDkgNzkyLjYzNyAyMy40MzA5Qzc5My4wNTUgMjMuNDMwOSA3OTMuNDAyIDIzLjA4NzYgNzkzLjQwMiAyMi42NjI5Qzc5My40MDIgMjIuMjQwNyA3OTMuMDU1IDIxLjg5MTIgNzkyLjYzNyAyMS44OTEyWk03OTMuMDQzIDIzLjIxOEg3OTIuODcyQzc5Mi44NjQgMjMuMjE3OSA3OTIuODU3IDIzLjIxNTcgNzkyLjg1MSAyMy4yMTE2Qzc5Mi44NDUgMjMuMjA3NSA3OTIuODQgMjMuMjAxNyA3OTIuODM3IDIzLjE5NDlMNzkyLjYwNSAyMi43OTdDNzkyLjU5OCAyMi43ODg1IDc5Mi41NzkgMjIuNzc4OCA3OTIuNTczIDIyLjc3ODhINzkyLjQ2N1YyMy4xNzU0Qzc5Mi40NjcgMjMuMTk1IDc5Mi40NTMgMjMuMjE4MSA3OTIuNDI4IDIzLjIxODFINzkyLjI3NEM3OTIuMjUxIDIzLjIxODEgNzkyLjIzNSAyMy4xOTUgNzkyLjIzNSAyMy4xNzU0VjIyLjE3NDlDNzkyLjIzNSAyMi4xMTY0IDc5Mi4yNTQgMjIuMDkyNCA3OTIuMzA1IDIyLjA4NUM3OTIuMzYxIDIyLjA3OSA3OTIuNTA1IDIyLjA3MTYgNzkyLjU4NiAyMi4wNzE2Qzc5Mi44NzIgMjIuMDcxNiA3OTMuMDM5IDIyLjE1NjYgNzkzLjAzOSAyMi40MjQ0VjIyLjQ0NEM3OTMuMDM5IDIyLjYwOTQgNzkyLjk1OSAyMi42OTk1IDc5Mi44MzMgMjIuNzM5N0w3OTMuMDc0IDIzLjE1NDdDNzkzLjA3OCAyMy4xNjQgNzkzLjA4IDIzLjE3MzkgNzkzLjA4IDIzLjE4NEM3OTMuMDggMjMuMTk5NyA3OTMuMDcyIDIzLjIxOCA3OTMuMDQzIDIzLjIxOFYyMy4yMThaTTc5Mi44MjEgMjIuNDI0NEM3OTIuODIxIDIyLjMxMjcgNzkyLjc1MiAyMi4yNzczIDc5Mi42MDUgMjIuMjc3M0g3OTIuNDU5VjIyLjU5NDdDNzkyLjQ4MiAyMi41OTQ3IDc5Mi41ODYgMjIuNTk5NiA3OTIuNjA1IDIyLjU5OTZDNzkyLjc1MiAyMi41OTk2IDc5Mi44MjEgMjIuNTUgNzkyLjgyMSAyMi40NDRWMjIuNDI0NFoiIGZpbGw9IiMwRTdEQzIiLz4NCjwvZz4NCjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMV81OF8xMTEpIj4NCjxwYXRoIGQ9Ik01MzMuNzczIDIwLjk5MTFDNTI5LjI2MyAyMC45OTExIDUyNS41OTkgMjQuNjU0NyA1MjUuNTk5IDI5LjE2NDRDNTI1LjU5OSAzMy42NzQxIDUyOS4yNjMgMzcuMzM3NyA1MzMuNzczIDM3LjMzNzdDNTM4LjI4MiAzNy4zMzc3IDU0MS45NDYgMzMuNjc0MSA1NDEuOTQ2IDI5LjE2NDRDNTQxLjk0NiAyNC42NTQ3IDUzOC4yODIgMjAuOTkxMSA1MzMuNzczIDIwLjk5MTFaTTUzMy43NzMgMzYuNTE4NkM1MjkuNzEzIDM2LjUxODYgNTI2LjQxOSAzMy4yMTUgNTI2LjQxOSAyOS4xNjQ0QzUyNi40MTkgMjUuMTEzNyA1MjkuNzEzIDIxLjgxMDIgNTMzLjc3MyAyMS44MTAyQzUzNy44MzIgMjEuODEwMiA1NDEuMTI3IDI1LjExMzcgNTQxLjEyNyAyOS4xNjQ0QzU0MS4xMjcgMzMuMjE1IDUzNy44MzIgMzYuNTE4NiA1MzMuNzczIDM2LjUxODZaIiBmaWxsPSJibGFjayIvPg0KPHBhdGggZD0iTTUzNi42OSAyMy45MjUyQzUzNi42NjMgMjMuOTA3MiA1MzYuNjI3IDIzLjg5ODIgNTM2LjU5MSAyMy44OTgyQzUzNi40ODMgMjMuODk4MiA1MzYuNDAyIDIzLjk3OTIgNTM2LjQwMiAyNC4wODczVjI2LjY0MzdDNTM2LjQwMiAyNi43MzM3IDUzNi4zMyAyNi44MDU3IDUzNi4yNCAyNi44MDU3SDUzMS4yOUM1MzEuMiAyNi44MDU3IDUzMS4xMzcgMjYuNzMzNyA1MzEuMTI4IDI2LjY0MzdWMjQuMDg3M0M1MzEuMTI4IDI0LjA1MTMgNTMxLjExOSAyNC4wMjQyIDUzMS4xMDEgMjMuOTg4MkM1MzEuMDQ3IDIzLjg5ODIgNTMwLjkzIDIzLjg3MTIgNTMwLjgzOSAyMy45MjUyQzUyOS4wMTIgMjUuMDUwNCA1MjcuOTA1IDI3LjAwMzcgNTI3LjkwNSAyOS4xNjQxQzUyNy45MDUgMzEuMzI0NCA1MjkuMDEyIDMzLjI3NzcgNTMwLjg1NyAzNC40MDI5QzUzMC44ODUgMzQuNDIwOSA1MzAuOTIxIDM0LjQyOTkgNTMwLjk1NyAzNC40Mjk5QzUzMS4wNjUgMzQuNDI5OSA1MzEuMTQ2IDM0LjM0ODkgNTMxLjE0NiAzNC4yNDA5VjMxLjY4NDVDNTMxLjE0NiAzMS41OTQ0IDUzMS4yMTggMzEuNTMxNCA1MzEuMzA4IDMxLjUyMjRINTM2LjI1OEM1MzYuMzQ4IDMxLjUyMjQgNTM2LjQyIDMxLjU5NDQgNTM2LjQyIDMxLjY4NDVWMzQuMjQwOUM1MzYuNDIgMzQuMjc2OSA1MzYuNDI5IDM0LjMwMzkgNTM2LjQ0NyAzNC4zMzk5QzUzNi41MDEgMzQuNDI5OSA1MzYuNjE4IDM0LjQ1NjkgNTM2LjcwOCAzNC40MDI5QzUzOC41NTQgMzMuMjc3NyA1MzkuNjYxIDMxLjMyNDQgNTM5LjY2MSAyOS4xNjQxQzUzOS42NjEgMjcuMDAzNyA1MzguNTM2IDI1LjA1MDQgNTM2LjY5IDIzLjkyNTJWMjMuOTI1MlpNNTMwLjE5MSAzMi4zNjg2TDUzMC4yMTggMzIuNjc0Nkw1MzAuMDIgMzIuNDMxNkM1MjguNDk5IDMwLjUxNDMgNTI4LjQ5OSAyNy44MDQ4IDUzMC4wMiAyNS44ODc1TDUzMC4xOTEgMjUuNjcxNUw1MzAuMjE4IDI1LjY0NDVMNTMwLjE5MSAyNS45NTk2QzUzMC4xNjQgMjYuMjExNiA1MzAuMTU1IDI2LjQ3MjYgNTMwLjE1NSAyNi43MzM3VjMxLjU4NTRDNTMwLjE1NSAzMS44NDY1IDUzMC4xNzMgMzIuMTA3NSA1MzAuMTkxIDMyLjM2ODZaTTUzNi40MDIgMzAuMzg4M0M1MzYuNDAyIDMwLjQ3ODMgNTM2LjMzIDMwLjU1MDMgNTM2LjI0IDMwLjU1MDNINTMxLjI5QzUzMS4yIDMwLjU1MDMgNTMxLjEzNyAzMC40NzgzIDUzMS4xMjggMzAuMzg4M1YyNy45Mzk5QzUzMS4xMjggMjcuODQ5OSA1MzEuMiAyNy43Nzc4IDUzMS4yOSAyNy43Nzc4SDUzNi4yNEM1MzYuMzMgMjcuNzc3OCA1MzYuNDAyIDI3Ljg0OTkgNTM2LjQwMiAyNy45Mzk5VjMwLjM4ODNaTTUzNy41MTkgMzIuNDMxNkw1MzcuMzIxIDMyLjY3NDZMNTM3LjM0OCAzMi4zNjg2QzUzNy4zNzUgMzIuMTE2NSA1MzcuMzg0IDMxLjg1NTUgNTM3LjM4NCAzMS41OTQ0VjI2LjczMzdDNTM3LjM4NCAyNi40NzI2IDUzNy4zNzUgMjYuMjExNiA1MzcuMzQ4IDI1Ljk1OTZMNTM3LjMzOSAyNS44MjQ1TDUzNy4zMyAyNS42ODA1VjI1LjY0NDVMNTM3LjUxOSAyNS44ODc1QzUzOC4yNTcgMjYuODA1NyA1MzguNjYyIDI3Ljk3NTkgNTM4LjY2MiAyOS4xNTUxQzUzOC42NjIgMzAuMzM0MiA1MzguMjU3IDMxLjUxMzQgNTM3LjUxOSAzMi40MzE2VjMyLjQzMTZaIiBmaWxsPSJibGFjayIvPg0KPHBhdGggZD0iTTU1NC4yNzYgMjkuMDIwMkM1NTQuMjMxIDI5LjAwMjIgNTU0LjE3NyAyOC45ODQyIDU1NC4xNzcgMjguOTMwMkM1NTQuMTc3IDI4Ljg5NDIgNTU0LjE5NSAyOC44NjcyIDU1NC4yMzEgMjguODQ5MkM1NTQuMjk0IDI4LjgyMjIgNTU1Ljg1MSAyOC4yNjQxIDU1NS44NTEgMjYuNDI3OEM1NTUuODUxIDI0LjM4NDUgNTU0LjQ3NCAyMy4xNjkzIDU1Mi4xNTIgMjMuMTY5M0g1NDYuNTI2VjM1LjE3NzJINTUyLjY2NUM1NTQuNDU2IDM1LjE3NzIgNTU2LjM4MiAzMy45MDggNTU2LjM4MiAzMS44NjQ2QzU1Ni4zODIgMjkuOTExMyA1NTQuOTA2IDI5LjIyNzIgNTU0LjI3NiAyOS4wMjAyVjI5LjAyMDJaTTU0OS4zNjEgMjUuNjI2N0M1NDkuMzYxIDI1LjU4MTcgNTQ5LjM5NyAyNS41NDU2IDU0OS40NDIgMjUuNTQ1Nkg1NTEuNjc1QzU1Mi40MTMgMjUuNTQ1NiA1NTIuOTE3IDI2LjA0MDcgNTUyLjkxNyAyNi43Nzg4QzU1Mi45MTcgMjcuMzU0OSA1NTIuNDY3IDI3Ljk3NiA1NTEuNjIxIDI3Ljk3Nkg1NDkuNDQyQzU0OS4zOTcgMjcuOTc2IDU0OS4zNjEgMjcuOTQgNTQ5LjM2MSAyNy44OTVWMjUuNjI2N1pNNTUxLjY3NSAzMi44MDk4SDU0OS40NDJDNTQ5LjM5NyAzMi44MDk4IDU0OS4zNjEgMzIuNzczOCA1NDkuMzYxIDMyLjcyODhWMzAuMzM0NEM1NDkuMzYxIDMwLjI4OTQgNTQ5LjM5NyAzMC4yNTM0IDU0OS40NDIgMzAuMjUzNEg1NTEuNjIxQzU1Mi42OTIgMzAuMjUzNCA1NTMuMzA0IDMwLjcxMjUgNTUzLjMwNCAzMS41MjI2QzU1My4zMDQgMzIuMzU5NyA1NTIuNzM3IDMyLjgwOTggNTUxLjY3NSAzMi44MDk4VjMyLjgwOThaTTU3NS4zODQgMjcuOTQ5TDU3NC45NTIgMjcuODU5QzU3My45OCAyNy42NTIgNTczLjAzNSAyNy4zOTA5IDU3My4wMzUgMjYuNTUzOEM1NzMuMDM1IDI1LjcxNjcgNTczLjgxOCAyNS4zMzg2IDU3NC41OTIgMjUuMzM4NkM1NzUuNTAxIDI1LjMzODYgNTc2LjQwMSAyNS43NDM3IDU3Ny4wODYgMjYuNDQ1OEw1NzguODY4IDI0LjY4MTVDNTc4LjEwMyAyMy44MzU0IDU3Ni43NDQgMjIuODYzMiA1NzQuNTQ3IDIyLjg2MzJDNTcxLjkwMSAyMi44NjMyIDU3MC4xMTggMjQuMzY2NSA1NzAuMTE4IDI2LjYwNzhDNTcwLjExOCAyOC45NzUyIDU3MS45ODIgMjkuODY2MyA1NzMuNTQ4IDMwLjE5OTRMNTczLjk3MSAzMC4yODk0QzU3NS40OTIgMzAuNjEzNSA1NzYuMjEyIDMwLjg1NjUgNTc2LjIxMiAzMS43MjA2QzU3Ni4yMTIgMzIuNDk0NyA1NzUuNTE5IDMzLjAwNzggNTc0LjQ5MyAzMy4wMDc4QzU3My4yODcgMzMuMDA3OCA1NzIuMjE2IDMyLjQ3NjcgNTcxLjQwNiAzMS40Nzc2TDU2OS41NzggMzMuMjY4OUM1NzAuNTUxIDM0LjQyMTEgNTcxLjgzOCAzNS40NjUyIDU3NC41MjkgMzUuNDY1MkM1NzYuODI1IDM1LjQ2NTIgNTc5LjE1NiAzNC4xMzMgNTc5LjE1NiAzMS41NzY2QzU3OS4xNDcgMjguOTU3MiA1NzcuMzY1IDI4LjM2MzEgNTc1LjM4NCAyNy45NDlWMjcuOTQ5Wk01OTkuMTAzIDIzLjE2OTNWMjcuNTYyQzU5OS4xMDMgMjcuNjA3IDU5OS4wNjcgMjcuNjQzIDU5OS4wMjIgMjcuNjQzSDU5NS4zMzFDNTk1LjI4NiAyNy42NDMgNTk1LjI1IDI3LjYwNyA1OTUuMjUgMjcuNTYyVjIzLjE2OTNINTkyLjIyNlYzNS4xNzcySDU5NS4yNVYzMC40NjA0QzU5NS4yNSAzMC40MTU0IDU5NS4yODYgMzAuMzc5NCA1OTUuMzMxIDMwLjM3OTRINTk5LjAyMkM1OTkuMDY3IDMwLjM3OTQgNTk5LjEwMyAzMC40MTU0IDU5OS4xMDMgMzAuNDYwNFYzNS4xNzcySDYwMi4xNDZWMjMuMTY5M0g1OTkuMTAzWk01ODYuMTQxIDMyLjcxOThDNTg0Ljc4MiAzMi43MTk4IDU4My4zMTUgMzEuNTg1NiA1ODMuMzE1IDI5LjA5MjJDNTgzLjMxNSAyNi44MTQ4IDU4NC42OTIgMjUuNjI2NyA1ODYuMDUxIDI1LjYyNjdDNTg3LjA0MSAyNS42MjY3IDU4Ny43MzQgMjYuMDQwNyA1ODguMjgzIDI2Ljk1ODlMNTkwLjYwNiAyNS40MTk2QzU4OS40MTggMjMuNjczMyA1ODguMDA0IDIyLjg4MTIgNTg2LjAzMyAyMi44ODEyQzU4Mi4xNzEgMjIuODgxMiA1ODAuNDQzIDI2LjAwNDcgNTgwLjQ0MyAyOS4wOTIyQzU4MC40NDMgMzIuODQ1OCA1ODIuNzI5IDM1LjQ2NTIgNTg1Ljk5NyAzNS40NjUyQzU4OC40MjcgMzUuNDY1MiA1ODkuNTM1IDM0LjU3NDEgNTkwLjY5NiAzMi45MjY4TDU4OC4zNTUgMzEuMzUxNkM1ODcuODMzIDMyLjE5NzcgNTg3LjI2NiAzMi43MTk4IDU4Ni4xNDEgMzIuNzE5OFpNNTYzLjE3OCAyMi44NjMyQzU1OS44NzUgMjIuODYzMiA1NTcuNjYxIDI1LjM5MjYgNTU3LjY2MSAyOS4xNjQyQzU1Ny42NjEgMzIuOTM1OCA1NTkuODc1IDM1LjQ2NTIgNTYzLjE3OCAzNS40NjUyQzU2Ni40ODIgMzUuNDY1MiA1NjguNjk2IDMyLjkzNTggNTY4LjY5NiAyOS4xNjQyQzU2OC42OTYgMjUuMzkyNiA1NjYuNDgyIDIyLjg2MzIgNTYzLjE3OCAyMi44NjMyVjIyLjg2MzJaTTU2My4xNzggMzIuNzE5OEM1NjEuNTU4IDMyLjcxOTggNTYwLjUxNCAzMS4zMjQ2IDU2MC41MTQgMjkuMTY0MkM1NjAuNTE0IDI3LjAxMjkgNTYxLjU1OCAyNS42MjY3IDU2My4xNzggMjUuNjI2N0M1NjQuODA4IDI1LjYyNjcgNTY1Ljg2MSAyNy4wMTI5IDU2NS44NjEgMjkuMTY0MkM1NjUuODYxIDMxLjMyNDYgNTY0LjgwOCAzMi43MTk4IDU2My4xNzggMzIuNzE5OFoiIGZpbGw9IiNGODAwMDAiLz4NCjwvZz4NCjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTQ2LjM0NCAyMi4xODExQzE0Ny41OTUgMjIuMjg1NCAxNDguODQ1IDIxLjU1NTMgMTQ5LjYyNyAyMC42Mjk4QzE1MC4zOTUgMTkuNjc4MSAxNTAuOTAzIDE4LjQwMDUgMTUwLjc3MyAxNy4wOTY5QzE0OS42NjYgMTcuMTQ5MSAxNDguMjk4IDE3LjgyNjkgMTQ3LjUxNyAxOC43Nzg2QzE0Ni44IDE5LjU5OTkgMTQ2LjE4OCAyMC45Mjk2IDE0Ni4zNDQgMjIuMTgxMVpNMTQ3Ljg0MSAyMy4wNzk3QzE0OC42NTMgMjIuNzYwNiAxNDkuNjU4IDIyLjM2NTYgMTUwLjc2IDIyLjQyOTFDMTUxLjQ2MyAyMi40ODEyIDE1My40OTUgMjIuNjg5OCAxNTQuNzk4IDI0LjYxOTJDMTU0Ljc5MiAyNC42MjM3IDE1NC43NzggMjQuNjMyMyAxNTQuNzU5IDI0LjY0NUMxNTQuNDM2IDI0Ljg1NDggMTUyLjM5IDI2LjE4NzEgMTUyLjQxNCAyOC44MTY5QzE1Mi40MzkgMzEuOTQ5OSAxNTQuOTg4IDMzLjExODMgMTU1LjMyMiAzMy4yNzExQzE1NS4zNDQgMzMuMjgxMSAxNTUuMzU2IDMzLjI4NjcgMTU1LjM1OCAzMy4yODgzQzE1NS4zNTYgMzMuMjkyNiAxNTUuMzU0IDMzLjMwMSAxNTUuMzUgMzMuMzEzM0MxNTUuMjgzIDMzLjUyODggMTU0Ljg0NSAzNC45NDg5IDE1My44NDcgMzYuNDA0QzE1Mi45MjIgMzcuNzU5OCAxNTEuOTcxIDM5LjA4OTUgMTUwLjQ2IDM5LjExNTZDMTQ5Ljc0OSAzOS4xMjgzIDE0OS4yNyAzOC45MjExIDE0OC43NzIgMzguNzA1NEMxNDguMjQ3IDM4LjQ3ODUgMTQ3LjcwMSAzOC4yNDIyIDE0Ni44NCAzOC4yNDIyQzE0NS45NDcgMzguMjQyMiAxNDUuMzc2IDM4LjQ4NDggMTQ0LjgyNiAzOC43MTg0QzE0NC4zNDggMzguOTIxNCAxNDMuODg3IDM5LjExNzQgMTQzLjI0NSAzOS4xNDE3QzE0MS43ODYgMzkuMTkzOCAxNDAuNjc5IDM3LjcwNzcgMTM5Ljc1NCAzNi4zNTE5QzEzNy44NjYgMzMuNjE0MyAxMzYuNDIgMjguNjM0NCAxMzguMzc0IDI1LjI3MUMxMzkuMzI1IDIzLjU4OTMgMTQxLjA1NyAyMi41MzM0IDE0Mi45MTkgMjIuNTA3M0MxNDMuNzMyIDIyLjQ5MjUgMTQ0LjUwNyAyMi44MDA2IDE0NS4xODQgMjMuMDcwMUMxNDUuNzAyIDIzLjI3NTggMTQ2LjE2MiAyMy40NTg5IDE0Ni41NCAyMy40NTg5QzE0Ni44NzcgMjMuNDU4OSAxNDcuMzE5IDIzLjI4NTEgMTQ3Ljg0MSAyMy4wNzk3WiIgZmlsbD0iYmxhY2siLz4NCjxwYXRoIGQ9Ik0zNi44NTg3IDM3LjUyNDFIMzEuOTg3NEwzNS4wMzQyIDE5LjY2NjhIMzkuOTA1MkwzNi44NTg3IDM3LjUyNDFaIiBmaWxsPSIjMDA1NzlGIi8+DQo8cGF0aCBkPSJNNTQuNTE1NyAyMC4xMDQxQzUzLjU1NDkgMTkuNzQyOCA1Mi4wMzA5IDE5LjM0MzggNTAuMTQ2NiAxOS4zNDM4QzQ1LjMzNjEgMTkuMzQzOCA0MS45NDg2IDIxLjc3NTMgNDEuOTI3OCAyNS4yNTE2QzQxLjg4NzggMjcuODE2NSA0NC4zNTMxIDI5LjI0MSA0Ni4xOTcgMzAuMDk2MkM0OC4wODE2IDMwLjk3MDEgNDguNzIyMyAzMS41NDA1IDQ4LjcyMjMgMzIuMzE5NEM0OC43MDMxIDMzLjUxNTcgNDcuMTk5NCAzNC4wNjcyIDQ1Ljc5NjkgMzQuMDY3MkM0My44NTIxIDM0LjA2NzIgNDIuODEgMzMuNzgyOSA0MS4yMjY0IDMzLjExNzNMNDAuNTg1IDMyLjgzMkwzOS45MDMzIDM2Ljg0MDZDNDEuMDQ1OCAzNy4zMzM5IDQzLjE1MDcgMzcuNzcxNyA0NS4zMzYxIDM3Ljc5MDlDNTAuNDQ3MyAzNy43OTA5IDUzLjc3NDkgMzUuMzk3MSA1My44MTQzIDMxLjY5MjVDNTMuODMzOCAyOS42NTk3IDUyLjUzMiAyOC4xMDIgNDkuNzI1NCAyNi44MjkyQzQ4LjAyMTcgMjYuMDEyMSA0Ni45NzgzIDI1LjQ2MTIgNDYuOTc4MyAyNC42MjUyQzQ2Ljk5ODMgMjMuODY1MiA0Ny44NjA4IDIzLjA4NjggNDkuNzg0IDIzLjA4NjhDNTEuMzY3NyAyMy4wNDg2IDUyLjUzMTIgMjMuNDA5NCA1My40MTI2IDIzLjc3MDVMNTMuODUzMiAyMy45NjAxTDU0LjUxNTcgMjAuMTA0MVoiIGZpbGw9IiMwMDU3OUYiLz4NCjxwYXRoIGQ9Ik02MC45OTI0IDMxLjE5NzlDNjEuMzkzNiAzMC4xNzIgNjIuOTM3MiAyNi4yMDE2IDYyLjkzNzIgMjYuMjAxNkM2Mi45MTcgMjYuMjM5NyA2My4zMzc2IDI1LjE1NjggNjMuNTc4MSAyNC40OTE5TDYzLjkxODYgMjYuMDMwNkM2My45MTg2IDI2LjAzMDYgNjQuODQxIDMwLjMwNTEgNjUuMDQxNCAzMS4xOTc5QzY0LjI4IDMxLjE5NzkgNjEuOTU0NiAzMS4xOTc5IDYwLjk5MjQgMzEuMTk3OVpNNjcuMDA1NCAxOS42NjY4SDYzLjIzNzRDNjIuMDc1NSAxOS42NjY4IDYxLjE5MjcgMTkuOTg5NSA2MC42OTE0IDIxLjE0ODRMNTMuNDU1OCAzNy41MjM5SDU4LjU2NzFDNTguNTY3MSAzNy41MjM5IDU5LjQwODUgMzUuMzE5OSA1OS41ODk0IDM0Ljg0NTJDNjAuMTUwMSAzNC44NDUyIDY1LjEyMjMgMzQuODQ1MiA2NS44NDM3IDM0Ljg0NTJDNjUuOTgzNSAzNS40NzIxIDY2LjQyNDkgMzcuNTIzOSA2Ni40MjQ5IDM3LjUyMzlINzAuOTM1Mkw2Ny4wMDU0IDE5LjY2NjhWMTkuNjY2OFoiIGZpbGw9IiMwMDU3OUYiLz4NCjxwYXRoIGQ9Ik0yNy45MTggMTkuNjY2OEwyMy4xNDc1IDMxLjg0MzhMMjIuNjI2MiAyOS4zNzQxQzIxLjc0NDIgMjYuNTI0NSAxOC45NzgxIDIzLjQyODQgMTUuODkxNCAyMS44ODlMMjAuMjYxIDM3LjUwNTJIMjUuNDEyMkwzMy4wNjkgMTkuNjY2OEgyNy45MThWMTkuNjY2OFoiIGZpbGw9IiMwMDU3OUYiLz4NCjxwYXRoIGQ9Ik0xOC43MTg0IDE5LjY2NjhIMTAuODgxMUwxMC44MDA5IDIwLjAyNzZDMTYuOTE0NSAyMS41MDk1IDIwLjk2MzUgMjUuMDgxNSAyMi42MjcgMjkuMzc0OUwyMC45MjMyIDIxLjE2NzlDMjAuNjQyNyAyMC4wMjc0IDE5Ljc4MDcgMTkuNzA0NCAxOC43MTg0IDE5LjY2NjhaIiBmaWxsPSIjRkFBNjFBIi8+DQo8ZyBjbGlwLXBhdGg9InVybCgjY2xpcDJfNThfMTExKSI+DQo8cGF0aCBkPSJNMjIxLjE1OCAxNy40OTlWMTguOTM1NkgyMzEuMzA2VjE3LjQ5OUgyMjEuMTU4Wk0yMzIuNzQ0IDE3LjQ5OVYxOC45MzU2SDI0Ny4yMDZDMjQ3LjIwNiAxOC45MzU2IDI0NS43MjkgMTcuNDk5IDI0My43NzMgMTcuNDk5SDIzMi43NDRaTTI1MC4wNDMgMTcuNDk5VjE4LjkzNTZIMjU4Ljc5M0wyNTguMjczIDE3LjQ5OUgyNTAuMDQzWk0yNjUuMDY1IDE3LjQ5OUwyNjQuNTQ2IDE4LjkzNTZIMjczLjIxNlYxNy40OTlIMjY1LjA2NVpNMjIxLjE1OCAyMC4yOTI5VjIxLjcyOTZIMjMxLjMwNlYyMC4yOTI5SDIyMS4xNThaTTIzMi43NDQgMjAuMjk1VjIxLjcyOTdIMjQ4Ljg4NEMyNDguODg0IDIxLjcyOTcgMjQ4LjY5NiAyMC42MjM5IDI0OC4zNjcgMjAuMjk1SDIzMi43NDRaTTI1MC4wNDMgMjAuMjk1VjIxLjcyOTdIMjU5Ljc1MkwyNTkuMjcxIDIwLjI5NUgyNTAuMDQzWk0yNjQuMDI3IDIwLjI5NUwyNjMuNTQ2IDIxLjcyOTdIMjczLjIxNlYyMC4yOTVIMjY0LjAyN1YyMC4yOTVaTTIyNC4wNzQgMjMuMDg2OVYyNC41MjU3SDIyOC40NjlWMjMuMDg2OUgyMjQuMDc0VjIzLjA4NjlaTTIzNS42NjEgMjMuMDg2OVYyNC41MjU3SDI0MC4wNTZWMjMuMDg2OUgyMzUuNjYxVjIzLjA4NjlaTTI0NC4zMzEgMjMuMDg2OVYyNC41MjU3SDI0OC43MjZDMjQ4LjcyNiAyNC41MjU3IDI0OS4wMDUgMjMuNzY1OSAyNDkuMDA1IDIzLjA4NjlIMjQ0LjMzMVYyMy4wODY5Wk0yNTIuOTYgMjMuMDg2OVYyNC41MjU3SDI2MC43NTJMMjYwLjIzMiAyMy4wODY5SDI1Mi45NlYyMy4wODY5Wk0yNjMuMDY5IDIzLjA4NjlMMjYyLjU0OCAyNC41MjU3SDI3MC4zNzlWMjMuMDg2OUgyNjMuMDY5VjIzLjA4NjlaTTIyNC4wNzQgMjUuODgzVjI3LjMxOTdIMjI4LjQ2OVYyNS44ODNIMjI0LjA3NFYyNS44ODNaTTIzNS42NjEgMjUuODgzVjI3LjMxOTdIMjQ2Ljg4N0MyNDYuODg3IDI3LjMxOTcgMjQ3LjgyNiAyNi41ODI1IDI0OC4xMjUgMjUuODgzSDIzNS42NjFaTTI1Mi45NiAyNS44ODNWMjcuMzE5N0gyNTcuMzU1VjI2LjUyTDI1Ny42MzQgMjcuMzE5N0gyNjUuNjg0TDI2NS45ODQgMjYuNTJWMjcuMzE5N0gyNzAuMzc5VjI1Ljg4M0gyNjIuMTI5TDI2MS42OTEgMjcuMDk5OUwyNjEuMjUxIDI1Ljg4M0gyNTIuOTZaTTIyNC4wNzQgMjguNjc3VjMwLjExMzdIMjI4LjQ2OVYyOC42NzdIMjI0LjA3NFpNMjM1LjY2MSAyOC42NzdWMzAuMTEzN0gyNDguMTI1QzI0Ny44MjYgMjkuNDE2NSAyNDYuODg3IDI4LjY3NyAyNDYuODg3IDI4LjY3N0gyMzUuNjYxWk0yNTIuOTYgMjguNjc3VjMwLjExMzdIMjU3LjM1NVYyOC42NzdIMjUyLjk2Wk0yNTguMTUzIDI4LjY3N0wyNTguNjg1IDMwLjExMzdIMjY0LjcyMUwyNjUuMjI2IDI4LjY3N0gyNTguMTUzWk0yNjUuOTg0IDI4LjY3N1YzMC4xMTM3SDI3MC4zNzlWMjguNjc3SDI2NS45ODRaTTIyNC4wNzQgMzEuNDcxVjMyLjkwNzZIMjI4LjQ2OVYzMS40NzFIMjI0LjA3NFpNMjM1LjY2MSAzMS40NzFWMzIuOTA3NkgyNDAuMDU2VjMxLjQ3MUgyMzUuNjYxWk0yNDQuMzMxIDMxLjQ3MVYzMi45MDc2SDI0OS4wMDVDMjQ5LjAwNSAzMi4yMjk2IDI0OC43MjYgMzEuNDcxIDI0OC43MjYgMzEuNDcxSDI0NC4zMzFWMzEuNDcxWk0yNTIuOTYgMzEuNDcxVjMyLjkwNzZIMjU3LjM1NVYzMS40NzFIMjUyLjk2Wk0yNTkuMTUxIDMxLjQ3MUwyNTkuNjY2IDMyLjkwNzZIMjYzLjcxM0wyNjQuMjMyIDMxLjQ3MUgyNTkuMTUxWk0yNjUuOTg0IDMxLjQ3MVYzMi45MDc2SDI3MC4zNzlWMzEuNDcxSDI2NS45ODRaTTIyMS4yMzcgMzQuMjY1VjM1LjcwMzdIMjMxLjM4NlYzNC4yNjVIMjIxLjIzN1pNMjMyLjc0NCAzNC4yNjVWMzUuNzAzN0gyNDguMzY3QzI0OC42OTYgMzUuMzc0MyAyNDguODg0IDM0LjI2NSAyNDguODg0IDM0LjI2NUgyMzIuNzQ0VjM0LjI2NVpNMjUwLjEyMyAzNC4yNjVWMzUuNzAzN0gyNTcuMzU1VjM0LjI2NUgyNTAuMTIzWk0yNjAuMTUxIDM0LjI2NUwyNjAuNjggMzUuNzAzN0gyNjIuNzM5TDI2My4yMzYgMzQuMjY1SDI2MC4xNTFaTTI2NS45ODQgMzQuMjY1VjM1LjcwMzdIMjczLjI5NVYzNC4yNjVIMjY1Ljk4NFpNMjIxLjIzNyAzNy4wNjFWMzguNDk3N0gyMzEuMzg2VjM3LjA2MUgyMjEuMjM3Wk0yMzIuNzQ0IDM3LjA2MVYzOC40OTU2SDI0My43NzNDMjQ1LjcyOSAzOC40OTU2IDI0Ny4yMDYgMzcuMDYxIDI0Ny4yMDYgMzcuMDYxSDIzMi43NDRaTTI1MC4xMjMgMzcuMDYxVjM4LjQ5NzdIMjU3LjM1NVYzNy4wNjFIMjUwLjEyM1pNMjYxLjE1NSAzNy4wNjFMMjYxLjY2NCAzOC40OTM2TDI2MS43NTIgMzguNDk1NkwyNjIuMjY5IDM3LjA2MUgyNjEuMTU1VjM3LjA2MVpNMjY1Ljk4NCAzNy4wNjFWMzguNDk3N0gyNzMuMjk1VjM3LjA2MUgyNjUuOTg0WiIgZmlsbD0iIzFGNzBDMSIvPg0KPC9nPg0KPGRlZnM+DQo8Y2xpcFBhdGggaWQ9ImNsaXAwXzU4XzExMSI+DQo8cmVjdCB3aWR0aD0iNDQuNDQ3MyIgaGVpZ2h0PSIyOS42MzE1IiBmaWxsPSJ3aGl0ZSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNzUzLjk1NSAxNC44MTU1KSIvPg0KPC9jbGlwUGF0aD4NCjxjbGlwUGF0aCBpZD0iY2xpcDFfNThfMTExIj4NCjxyZWN0IHdpZHRoPSI3Ni41NDgxIiBoZWlnaHQ9IjE2LjM1MDciIGZpbGw9IndoaXRlIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg1MjUuNTk5IDIwLjk4ODkpIi8+DQo8L2NsaXBQYXRoPg0KPGNsaXBQYXRoIGlkPSJjbGlwMl81OF8xMTEiPg0KPHJlY3Qgd2lkdGg9IjUyLjEzNzIiIGhlaWdodD0iMjAuOTk4NyIgZmlsbD0id2hpdGUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIyMS4xNTggMTcuNDk5KSIvPg0KPC9jbGlwUGF0aD4NCjwvZGVmcz4NCjwvc3ZnPg0K" style="
|
|
7161
|
-
width: 742.5px;
|
|
7162
|
-
position: relative;
|
|
7163
|
-
top: 107px;
|
|
7164
|
-
left: 32px;
|
|
7165
|
-
">
|
|
7166
|
-
<a href=${accountURL} style="
|
|
7167
|
-
float: left;
|
|
7168
|
-
border-radius: 56px;
|
|
7169
|
-
background: #0D6EFD;
|
|
7170
|
-
padding-top: 8px;
|
|
7171
|
-
width: 280px;
|
|
7172
|
-
height: 38px;
|
|
7173
|
-
text-align: center;
|
|
7174
|
-
position: relative;
|
|
7175
|
-
top: 127px;
|
|
7176
|
-
left: 274px;
|
|
7177
|
-
font-size: 16px;
|
|
7178
|
-
color: white;
|
|
7179
|
-
text-decoration: none;
|
|
7180
|
-
letter-spacing: 0.02em;
|
|
7181
|
-
">Claim your FREE account</a>
|
|
7182
|
-
<div style="
|
|
7183
|
-
font-size: 14px;
|
|
7184
|
-
position: relative;
|
|
7185
|
-
top: 180px;
|
|
7186
|
-
left: 19px;
|
|
7187
|
-
letter-spacing: 0.02em;
|
|
7188
|
-
font-weight: 500;
|
|
7189
|
-
line-height: 125%;
|
|
7190
|
-
">have a Syncfusion account? <a href="https://www.syncfusion.com/account/login?ReturnUrl=/account/login" style="text-decoration: none;
|
|
7191
|
-
color: #0D6EFD;
|
|
7192
|
-
font-weight: 500;">Sign In</a></div>
|
|
7193
|
-
</div>
|
|
7194
|
-
</div>`;
|
|
7195
|
-
if (typeof document !== 'undefined' && !isNullOrUndefined(document)) {
|
|
7196
|
-
const errorBackground = createElement('div', {
|
|
7197
|
-
innerHTML: bannerTemplate
|
|
7198
|
-
});
|
|
7199
|
-
document.body.appendChild(errorBackground);
|
|
7200
|
-
}
|
|
7201
|
-
};
|
|
7202
|
-
|
|
7203
|
-
var __decorate$1 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
7204
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
7205
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
7206
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
7207
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7208
|
-
};
|
|
6319
|
+
var __decorate$1 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
6320
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
6321
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
6322
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6323
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6324
|
+
};
|
|
7209
6325
|
let componentCount = 0;
|
|
7210
6326
|
let lastPageID;
|
|
7211
6327
|
let lastHistoryLen = 0;
|
|
7212
|
-
// Decalre the static variable to count the instance
|
|
7213
|
-
let instancecount = 0;
|
|
7214
|
-
// Decalre the static variable to find if control limit exceed or not
|
|
7215
|
-
let isvalid = true;
|
|
7216
|
-
// We have added styles to inline type so here declare the static variable to detect if banner is added or not
|
|
7217
|
-
let isBannerAdded = false;
|
|
7218
6328
|
let versionBasedStatePersistence = false;
|
|
7219
6329
|
/**
|
|
7220
6330
|
* To enable or disable version based statePersistence functionality for all components globally.
|
|
@@ -7257,14 +6367,6 @@ let Component = class Component extends Base {
|
|
|
7257
6367
|
// tslint:disable-next-line:no-function-constructor-with-string-args
|
|
7258
6368
|
onIntlChange.on('notifyExternalChange', this.detectFunction, this, this.randomId);
|
|
7259
6369
|
// Based on the considered control list we have count the instance
|
|
7260
|
-
if (typeof window !== "undefined" && typeof document !== "undefined" && !validateLicense()) {
|
|
7261
|
-
if (componentList.indexOf(this.getModuleName()) !== -1) {
|
|
7262
|
-
instancecount = instancecount + 1;
|
|
7263
|
-
if (instancecount > 5) {
|
|
7264
|
-
isvalid = false;
|
|
7265
|
-
}
|
|
7266
|
-
}
|
|
7267
|
-
}
|
|
7268
6370
|
if (!isUndefined(selector)) {
|
|
7269
6371
|
this.appendTo();
|
|
7270
6372
|
}
|
|
@@ -7347,6 +6449,8 @@ let Component = class Component extends Base {
|
|
|
7347
6449
|
}
|
|
7348
6450
|
/**
|
|
7349
6451
|
* Adding unload event to persist data when enable persistence true
|
|
6452
|
+
*
|
|
6453
|
+
* @returns {void}
|
|
7350
6454
|
*/
|
|
7351
6455
|
attachUnloadEvent() {
|
|
7352
6456
|
this.handleUnload = this.handleUnload.bind(this);
|
|
@@ -7354,12 +6458,16 @@ let Component = class Component extends Base {
|
|
|
7354
6458
|
}
|
|
7355
6459
|
/**
|
|
7356
6460
|
* Handling unload event to persist data when enable persistence true
|
|
6461
|
+
*
|
|
6462
|
+
* @returns {void}
|
|
7357
6463
|
*/
|
|
7358
6464
|
handleUnload() {
|
|
7359
6465
|
this.setPersistData();
|
|
7360
6466
|
}
|
|
7361
6467
|
/**
|
|
7362
6468
|
* Removing unload event to persist data when enable persistence true
|
|
6469
|
+
*
|
|
6470
|
+
* @returns {void}
|
|
7363
6471
|
*/
|
|
7364
6472
|
detachUnloadEvent() {
|
|
7365
6473
|
window.removeEventListener('unload', this.handleUnload);
|
|
@@ -7394,11 +6502,31 @@ let Component = class Component extends Base {
|
|
|
7394
6502
|
}
|
|
7395
6503
|
this.preRender();
|
|
7396
6504
|
this.injectModules();
|
|
7397
|
-
//
|
|
7398
|
-
|
|
7399
|
-
|
|
7400
|
-
|
|
6505
|
+
// Throw a warning for the required modules to be injected.
|
|
6506
|
+
const ignoredComponents = {
|
|
6507
|
+
schedule: 'all',
|
|
6508
|
+
diagram: 'all',
|
|
6509
|
+
PdfViewer: 'all',
|
|
6510
|
+
grid: ['logger'],
|
|
6511
|
+
richtexteditor: ['link', 'table', 'image', 'audio', 'video', 'formatPainter', 'emojiPicker', 'pasteCleanup', 'htmlEditor', 'toolbar'],
|
|
6512
|
+
treegrid: ['filter'],
|
|
6513
|
+
gantt: ['tooltip'],
|
|
6514
|
+
chart: ['Export', 'Zoom'],
|
|
6515
|
+
accumulationchart: ['Export']
|
|
6516
|
+
};
|
|
6517
|
+
const component = this.getModuleName();
|
|
6518
|
+
if (this.requiredModules && (!ignoredComponents[`${component}`] || ignoredComponents[`${component}`] !== 'all')) {
|
|
6519
|
+
const modulesRequired = this.requiredModules();
|
|
6520
|
+
for (const module of this.moduleLoader.getNonInjectedModules(modulesRequired)) {
|
|
6521
|
+
const moduleName = module.name ? module.name : module.member;
|
|
6522
|
+
if (ignoredComponents[`${component}`] && ignoredComponents[`${component}`].indexOf(module.member) !== -1) {
|
|
6523
|
+
continue;
|
|
6524
|
+
}
|
|
6525
|
+
const componentName = component.charAt(0).toUpperCase() + component.slice(1); // To capitalize the component name
|
|
6526
|
+
console.warn(`[WARNING] :: Module "${moduleName}" is not available in ${componentName} component! You either misspelled the module name or forgot to load it.`);
|
|
6527
|
+
}
|
|
7401
6528
|
}
|
|
6529
|
+
// Checked weather cases are valid or not. If control leads to more than five counts
|
|
7402
6530
|
this.render();
|
|
7403
6531
|
if (!this.mount) {
|
|
7404
6532
|
this.trigger('created');
|
|
@@ -7675,12 +6803,12 @@ Component = __decorate$1([
|
|
|
7675
6803
|
}
|
|
7676
6804
|
})();
|
|
7677
6805
|
|
|
7678
|
-
var __decorate$2 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
7679
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
7680
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
7681
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
7682
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7683
|
-
};
|
|
6806
|
+
var __decorate$2 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
6807
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
6808
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
6809
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6810
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6811
|
+
};
|
|
7684
6812
|
var Draggable_1;
|
|
7685
6813
|
const defaultPosition = { left: 0, top: 0, bottom: 0, right: 0 };
|
|
7686
6814
|
const isDraggedObject = { isDragged: false };
|
|
@@ -7805,6 +6933,7 @@ let Draggable = Draggable_1 = class Draggable extends Base {
|
|
|
7805
6933
|
return this.getScrollableParent(element.parentNode, axis);
|
|
7806
6934
|
}
|
|
7807
6935
|
}
|
|
6936
|
+
/* eslint-disable */
|
|
7808
6937
|
getScrollableValues() {
|
|
7809
6938
|
this.parentScrollX = 0;
|
|
7810
6939
|
this.parentScrollY = 0;
|
|
@@ -7812,6 +6941,7 @@ let Draggable = Draggable_1 = class Draggable extends Base {
|
|
|
7812
6941
|
const verticalScrollParent = this.getScrollableParent(this.element.parentNode, 'vertical');
|
|
7813
6942
|
const horizontalScrollParent = this.getScrollableParent(this.element.parentNode, 'horizontal');
|
|
7814
6943
|
}
|
|
6944
|
+
/* eslint-enable */
|
|
7815
6945
|
initialize(evt, curTarget) {
|
|
7816
6946
|
this.currentStateTarget = evt.target;
|
|
7817
6947
|
if (this.isDragStarted()) {
|
|
@@ -7825,6 +6955,7 @@ let Draggable = Draggable_1 = class Draggable extends Base {
|
|
|
7825
6955
|
this.dragProcessStarted = false;
|
|
7826
6956
|
if (this.abort) {
|
|
7827
6957
|
/* tslint:disable no-any */
|
|
6958
|
+
// eslint-disable-next-line
|
|
7828
6959
|
let abortSelectors = this.abort;
|
|
7829
6960
|
if (typeof abortSelectors === 'string') {
|
|
7830
6961
|
abortSelectors = [abortSelectors];
|
|
@@ -7895,6 +7026,7 @@ let Draggable = Draggable_1 = class Draggable extends Base {
|
|
|
7895
7026
|
}
|
|
7896
7027
|
/* istanbul ignore next */
|
|
7897
7028
|
if (this.isReplaceDragEle) {
|
|
7029
|
+
// eslint-disable-next-line
|
|
7898
7030
|
element = this.currentStateCheck(evt.target, element);
|
|
7899
7031
|
}
|
|
7900
7032
|
this.offset = this.calculateParentPosition(element);
|
|
@@ -8047,6 +7179,7 @@ let Draggable = Draggable_1 = class Draggable extends Base {
|
|
|
8047
7179
|
}
|
|
8048
7180
|
}
|
|
8049
7181
|
if (flag) {
|
|
7182
|
+
// eslint-disable-next-line
|
|
8050
7183
|
eleObj.instance.dragData[this.scope] = this.droppables[this.scope];
|
|
8051
7184
|
eleObj.instance.intOver(evt, eleObj.target);
|
|
8052
7185
|
this.hoverObject = eleObj;
|
|
@@ -8125,7 +7258,7 @@ let Draggable = Draggable_1 = class Draggable extends Base {
|
|
|
8125
7258
|
}
|
|
8126
7259
|
else {
|
|
8127
7260
|
if (this.dragArea) {
|
|
8128
|
-
|
|
7261
|
+
const isDialogEle = this.helperElement.classList.contains('e-dialog');
|
|
8129
7262
|
this.dragLimit.top = this.clone ? this.dragLimit.top : 0;
|
|
8130
7263
|
draEleTop = (top - iTop) < 0 ? this.dragLimit.top : (top - iTop);
|
|
8131
7264
|
draEleLeft = (left - iLeft) < 0 ? isDialogEle ? (left - (iLeft - this.borderWidth.left)) :
|
|
@@ -8196,6 +7329,7 @@ let Draggable = Draggable_1 = class Draggable extends Base {
|
|
|
8196
7329
|
elements = this.getPathElements(evt);
|
|
8197
7330
|
}
|
|
8198
7331
|
/* tslint:disable no-any */
|
|
7332
|
+
// eslint-disable-next-line
|
|
8199
7333
|
let scrollParent = this.getScrollParent(elements, false);
|
|
8200
7334
|
if (this.elementInViewport(this.helperElement)) {
|
|
8201
7335
|
this.getScrollPosition(scrollParent, draEleTop);
|
|
@@ -8218,8 +7352,10 @@ let Draggable = Draggable_1 = class Draggable extends Base {
|
|
|
8218
7352
|
this.pageY = pagey;
|
|
8219
7353
|
}
|
|
8220
7354
|
/* tslint:disable no-any */
|
|
7355
|
+
// eslint-disable-next-line
|
|
8221
7356
|
getScrollParent(node, reverse) {
|
|
8222
7357
|
/* tslint:disable no-any */
|
|
7358
|
+
// eslint-disable-next-line
|
|
8223
7359
|
const nodeEl = reverse ? node.reverse() : node;
|
|
8224
7360
|
let hasScroll;
|
|
8225
7361
|
for (let i = nodeEl.length - 1; i >= 0; i--) {
|
|
@@ -8246,10 +7382,12 @@ let Draggable = Draggable_1 = class Draggable extends Base {
|
|
|
8246
7382
|
}
|
|
8247
7383
|
}
|
|
8248
7384
|
else if (nodeEle && nodeEle !== document.scrollingElement) {
|
|
8249
|
-
|
|
7385
|
+
const docScrollTop = document.scrollingElement.scrollTop;
|
|
7386
|
+
const helperClientHeight = this.helperElement.clientHeight;
|
|
7387
|
+
if ((nodeEle.clientHeight + nodeEle.getBoundingClientRect().top - helperClientHeight + docScrollTop) < draEleTop) {
|
|
8250
7388
|
nodeEle.scrollTop += this.helperElement.clientHeight;
|
|
8251
7389
|
}
|
|
8252
|
-
else if (nodeEle.getBoundingClientRect().top > (draEleTop -
|
|
7390
|
+
else if (nodeEle.getBoundingClientRect().top > (draEleTop - helperClientHeight - docScrollTop)) {
|
|
8253
7391
|
nodeEle.scrollTop -= this.helperElement.clientHeight;
|
|
8254
7392
|
}
|
|
8255
7393
|
}
|
|
@@ -8301,6 +7439,7 @@ let Draggable = Draggable_1 = class Draggable extends Base {
|
|
|
8301
7439
|
const eleObj = this.checkTargetElement(evt);
|
|
8302
7440
|
if (eleObj.target && eleObj.instance) {
|
|
8303
7441
|
eleObj.instance.dragStopCalled = true;
|
|
7442
|
+
// eslint-disable-next-line
|
|
8304
7443
|
eleObj.instance.dragData[this.scope] = this.droppables[this.scope];
|
|
8305
7444
|
eleObj.instance.intDrop(evt, eleObj.target);
|
|
8306
7445
|
}
|
|
@@ -8308,8 +7447,11 @@ let Draggable = Draggable_1 = class Draggable extends Base {
|
|
|
8308
7447
|
document.body.classList.remove('e-prevent-select');
|
|
8309
7448
|
}
|
|
8310
7449
|
/**
|
|
7450
|
+
* @param {MouseEvent | TouchEvent} evt ?
|
|
7451
|
+
* @returns {void}
|
|
8311
7452
|
* @private
|
|
8312
7453
|
*/
|
|
7454
|
+
// eslint-disable-next-line
|
|
8313
7455
|
intDestroy(evt) {
|
|
8314
7456
|
this.dragProcessStarted = false;
|
|
8315
7457
|
this.toggleEvents();
|
|
@@ -8324,6 +7466,7 @@ let Draggable = Draggable_1 = class Draggable extends Base {
|
|
|
8324
7466
|
}
|
|
8325
7467
|
}
|
|
8326
7468
|
// triggers when property changed
|
|
7469
|
+
// eslint-disable-next-line
|
|
8327
7470
|
onPropertyChanged(newProp, oldProp) {
|
|
8328
7471
|
//No Code to handle
|
|
8329
7472
|
}
|
|
@@ -8354,6 +7497,7 @@ let Draggable = Draggable_1 = class Draggable extends Base {
|
|
|
8354
7497
|
eleWidthBound = ele.scrollWidth ? ele.scrollWidth : elementArea.right - elementArea.left;
|
|
8355
7498
|
eleHeightBound = ele.scrollHeight ? (this.dragArea && !isNullOrUndefined(this.helperElement) && this.helperElement.classList.contains('e-treeview')) ? ele.clientHeight : ele.scrollHeight : elementArea.bottom - elementArea.top;
|
|
8356
7499
|
const keys = ['Top', 'Left', 'Bottom', 'Right'];
|
|
7500
|
+
/* eslint-disable */
|
|
8357
7501
|
const styles = getComputedStyle(ele);
|
|
8358
7502
|
for (let i = 0; i < keys.length; i++) {
|
|
8359
7503
|
const key = keys[parseInt(i.toString(), 10)];
|
|
@@ -8363,6 +7507,7 @@ let Draggable = Draggable_1 = class Draggable extends Base {
|
|
|
8363
7507
|
this.borderWidth[`${lowerKey}`] = isNaN(parseFloat(tborder)) ? 0 : parseFloat(tborder);
|
|
8364
7508
|
this.padding[`${lowerKey}`] = isNaN(parseFloat(tpadding)) ? 0 : parseFloat(tpadding);
|
|
8365
7509
|
}
|
|
7510
|
+
/* eslint-enable */
|
|
8366
7511
|
if (this.dragArea && !isNullOrUndefined(this.helperElement) && this.helperElement.classList.contains('e-treeview')) {
|
|
8367
7512
|
top = elementArea.top + document.scrollingElement.scrollTop;
|
|
8368
7513
|
}
|
|
@@ -8380,7 +7525,7 @@ let Draggable = Draggable_1 = class Draggable extends Base {
|
|
|
8380
7525
|
const intCoord = this.getCoordinates(evt);
|
|
8381
7526
|
let ele;
|
|
8382
7527
|
const prevStyle = this.helperElement.style.pointerEvents || '';
|
|
8383
|
-
|
|
7528
|
+
const isPointer = evt.type.indexOf('pointer') !== -1 && Browser.info.name === 'safari' && parseInt(Browser.info.version, 10) > 12;
|
|
8384
7529
|
if (compareElementParent(evt.target, this.helperElement) || evt.type.indexOf('touch') !== -1 || isPointer) {
|
|
8385
7530
|
this.helperElement.style.pointerEvents = 'none';
|
|
8386
7531
|
ele = document.elementFromPoint(intCoord.clientX, intCoord.clientY);
|
|
@@ -8404,6 +7549,7 @@ let Draggable = Draggable_1 = class Draggable extends Base {
|
|
|
8404
7549
|
}
|
|
8405
7550
|
getMousePosition(evt, isdragscroll) {
|
|
8406
7551
|
/* tslint:disable no-any */
|
|
7552
|
+
// eslint-disable-next-line
|
|
8407
7553
|
const dragEle = evt.srcElement !== undefined ? evt.srcElement : evt.target;
|
|
8408
7554
|
const intCoord = this.getCoordinates(evt);
|
|
8409
7555
|
let pageX;
|
|
@@ -8421,10 +7567,11 @@ let Draggable = Draggable_1 = class Draggable extends Base {
|
|
|
8421
7567
|
pageY = this.clone ? intCoord.pageY : (intCoord.pageY + window.pageYOffset) - this.relativeYPosition;
|
|
8422
7568
|
}
|
|
8423
7569
|
if (document.scrollingElement && (!isdragscroll && !this.clone)) {
|
|
8424
|
-
|
|
8425
|
-
|
|
8426
|
-
|
|
8427
|
-
|
|
7570
|
+
const ele = document.scrollingElement;
|
|
7571
|
+
const isVerticalScroll = ele.scrollHeight > 0 && ele.scrollHeight > ele.clientHeight && ele.scrollTop > 0;
|
|
7572
|
+
const isHorrizontalScroll = ele.scrollWidth > 0 && ele.scrollWidth > ele.clientWidth && ele.scrollLeft > 0;
|
|
7573
|
+
pageX = isHorrizontalScroll ? pageX - ele.scrollLeft : pageX;
|
|
7574
|
+
pageY = isVerticalScroll ? pageY - ele.scrollTop : pageY;
|
|
8428
7575
|
}
|
|
8429
7576
|
return {
|
|
8430
7577
|
left: pageX - (this.margin.left + this.cursorAt.left),
|
|
@@ -8566,12 +7713,12 @@ Draggable = Draggable_1 = __decorate$2([
|
|
|
8566
7713
|
NotifyPropertyChanges
|
|
8567
7714
|
], Draggable);
|
|
8568
7715
|
|
|
8569
|
-
var __decorate$3 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
8570
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
8571
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
8572
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
8573
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
8574
|
-
};
|
|
7716
|
+
var __decorate$3 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
7717
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
7718
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
7719
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
7720
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7721
|
+
};
|
|
8575
7722
|
/**
|
|
8576
7723
|
* Droppable Module provides support to enable droppable functionality in Dom Elements.
|
|
8577
7724
|
* ```html
|
|
@@ -8684,12 +7831,12 @@ Droppable = __decorate$3([
|
|
|
8684
7831
|
NotifyPropertyChanges
|
|
8685
7832
|
], Droppable);
|
|
8686
7833
|
|
|
8687
|
-
var __decorate$4 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
8688
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
8689
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
8690
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
8691
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
8692
|
-
};
|
|
7834
|
+
var __decorate$4 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
7835
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
7836
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
7837
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
7838
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7839
|
+
};
|
|
8693
7840
|
var KeyboardEvents_1;
|
|
8694
7841
|
const keyCode = {
|
|
8695
7842
|
'backspace': 8,
|
|
@@ -8971,12 +8118,12 @@ class L10n {
|
|
|
8971
8118
|
}
|
|
8972
8119
|
L10n.locale = {};
|
|
8973
8120
|
|
|
8974
|
-
var __decorate$5 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
8975
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
8976
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
8977
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
8978
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
8979
|
-
};
|
|
8121
|
+
var __decorate$5 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
8122
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
8123
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
8124
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
8125
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
8126
|
+
};
|
|
8980
8127
|
/**
|
|
8981
8128
|
* SwipeSettings is a framework module that provides support to handle swipe event like swipe up, swipe right, etc..,
|
|
8982
8129
|
*/
|
|
@@ -9362,37 +8509,38 @@ function compile$1(template, helper, ignorePrefix) {
|
|
|
9362
8509
|
else {
|
|
9363
8510
|
const argName = 'data';
|
|
9364
8511
|
const evalExpResult = evalExp(template, argName, helper, ignorePrefix);
|
|
9365
|
-
|
|
9366
|
-
const condtion = `var valueRegEx = (/value=\\'([A-Za-z0-9 _]*)((.)([\\w)(!-;?-■\\s]+)['])/g);
|
|
9367
|
-
var hrefRegex = (/(?:href)([\\s='"./]+)([\\w-./?=&\\\\#"]+)((.)([\\w)(!-;/?-■\\s]+)['])/g);
|
|
9368
|
-
if(str.match(valueRegEx)){
|
|
9369
|
-
var check = str.match(valueRegEx);
|
|
9370
|
-
var str1 = str;
|
|
9371
|
-
for (var i=0; i < check.length; i++) {
|
|
9372
|
-
var check1 = str.match(valueRegEx)[i].split('value=')[1];
|
|
9373
|
-
var change = check1.match(/^'/) !== null ? check1.replace(/^'/, '\"') : check1;
|
|
9374
|
-
change =change.match(/.$/)[0] === '\\'' ? change.replace(/.$/,'\"') : change;
|
|
9375
|
-
str1 = str1.replace(check1, change);
|
|
9376
|
-
}
|
|
9377
|
-
str = str.replace(str, str1);
|
|
9378
|
-
}
|
|
9379
|
-
else if (str.match(/(?:href='')/) === null) {
|
|
9380
|
-
if(str.match(hrefRegex)) {
|
|
9381
|
-
var check = str.match(hrefRegex);
|
|
9382
|
-
var str1 = str;
|
|
9383
|
-
for (var i=0; i < check.length; i++) {
|
|
9384
|
-
var check1 = str.match(hrefRegex)[i].split('href=')[1];
|
|
9385
|
-
if (check1) {
|
|
9386
|
-
var change = check1.match(/^'/) !== null ? check1.replace(/^'/, '\"') : check1;
|
|
9387
|
-
change =change.match(/.$/)[0] === '\\'' ? change.replace(/.$/,'\"') : change;
|
|
9388
|
-
str1 = str1.replace(check1, change);
|
|
9389
|
-
}
|
|
9390
|
-
}
|
|
9391
|
-
str = str.replace(str, str1);
|
|
9392
|
-
}
|
|
9393
|
-
}
|
|
8512
|
+
/* eslint-disable */
|
|
8513
|
+
const condtion = `var valueRegEx = (/value=\\'([A-Za-z0-9 _]*)((.)([\\w)(!-;?-■\\s]+)['])/g);
|
|
8514
|
+
var hrefRegex = (/(?:href)([\\s='"./]+)([\\w-./?=&\\\\#"]+)((.)([\\w)(!-;/?-■\\s]+)['])/g);
|
|
8515
|
+
if(str.match(valueRegEx)){
|
|
8516
|
+
var check = str.match(valueRegEx);
|
|
8517
|
+
var str1 = str;
|
|
8518
|
+
for (var i=0; i < check.length; i++) {
|
|
8519
|
+
var check1 = str.match(valueRegEx)[i].split('value=')[1];
|
|
8520
|
+
var change = check1.match(/^'/) !== null ? check1.replace(/^'/, '\"') : check1;
|
|
8521
|
+
change =change.match(/.$/)[0] === '\\'' ? change.replace(/.$/,'\"') : change;
|
|
8522
|
+
str1 = str1.replace(check1, change);
|
|
8523
|
+
}
|
|
8524
|
+
str = str.replace(str, str1);
|
|
8525
|
+
}
|
|
8526
|
+
else if (str.match(/(?:href='')/) === null) {
|
|
8527
|
+
if(str.match(hrefRegex)) {
|
|
8528
|
+
var check = str.match(hrefRegex);
|
|
8529
|
+
var str1 = str;
|
|
8530
|
+
for (var i=0; i < check.length; i++) {
|
|
8531
|
+
var check1 = str.match(hrefRegex)[i].split('href=')[1];
|
|
8532
|
+
if (check1) {
|
|
8533
|
+
var change = check1.match(/^'/) !== null ? check1.replace(/^'/, '\"') : check1;
|
|
8534
|
+
change =change.match(/.$/)[0] === '\\'' ? change.replace(/.$/,'\"') : change;
|
|
8535
|
+
str1 = str1.replace(check1, change);
|
|
8536
|
+
}
|
|
8537
|
+
}
|
|
8538
|
+
str = str.replace(str, str1);
|
|
8539
|
+
}
|
|
8540
|
+
}
|
|
9394
8541
|
`;
|
|
9395
8542
|
const fnCode = 'var str=\"' + evalExpResult + '\";' + condtion + ' return str;';
|
|
8543
|
+
/* eslint-enable */
|
|
9396
8544
|
const fn = new Function(argName, fnCode);
|
|
9397
8545
|
return fn.bind(helper);
|
|
9398
8546
|
}
|
|
@@ -9539,7 +8687,7 @@ function evalExp(str, nameSpace, helper, ignorePrefix) {
|
|
|
9539
8687
|
* @returns {string} ?
|
|
9540
8688
|
*/
|
|
9541
8689
|
function addNameSpace(str, addNS, nameSpace, ignoreList, ignorePrefix) {
|
|
9542
|
-
return ((addNS && !(NOT_NUMBER.test(str)) && ignoreList.indexOf(str.split('.')[0]) === -1 && !ignorePrefix && str !==
|
|
8690
|
+
return ((addNS && !(NOT_NUMBER.test(str)) && ignoreList.indexOf(str.split('.')[0]) === -1 && !ignorePrefix && str !== 'true' && str !== 'false') ? nameSpace + '.' + str : str);
|
|
9543
8691
|
}
|
|
9544
8692
|
/**
|
|
9545
8693
|
*
|
|
@@ -9761,6 +8909,7 @@ function getTemplateEngine() {
|
|
|
9761
8909
|
* @returns {Function} ?
|
|
9762
8910
|
* @private
|
|
9763
8911
|
*/
|
|
8912
|
+
// eslint-disable-next-line
|
|
9764
8913
|
function initializeCSPTemplate(template, helper) {
|
|
9765
8914
|
let boundFunc;
|
|
9766
8915
|
template.prototype.CSPTemplate = true;
|
|
@@ -9901,6 +9050,9 @@ class SanitizeHtmlHelper {
|
|
|
9901
9050
|
};
|
|
9902
9051
|
}
|
|
9903
9052
|
static sanitize(value) {
|
|
9053
|
+
if (isNullOrUndefined(value)) {
|
|
9054
|
+
return value;
|
|
9055
|
+
}
|
|
9904
9056
|
const item = this.beforeSanitize();
|
|
9905
9057
|
const output = this.serializeValue(item, value);
|
|
9906
9058
|
return output;
|
|
@@ -9915,6 +9067,7 @@ class SanitizeHtmlHelper {
|
|
|
9915
9067
|
this.removeXssAttrs();
|
|
9916
9068
|
const tempEleValue = this.wrapElement.innerHTML;
|
|
9917
9069
|
this.removeElement();
|
|
9070
|
+
this.wrapElement = null;
|
|
9918
9071
|
return tempEleValue.replace(/&/g, '&');
|
|
9919
9072
|
}
|
|
9920
9073
|
static removeElement() {
|
|
@@ -9970,5 +9123,5 @@ class SanitizeHtmlHelper {
|
|
|
9970
9123
|
* Base modules
|
|
9971
9124
|
*/
|
|
9972
9125
|
|
|
9973
|
-
export { blazorCultureFormats, IntlBase, Ajax,
|
|
9126
|
+
export { blazorCultureFormats, IntlBase, Ajax, Animation, rippleEffect, isRippleEnabled, enableRipple, animationMode, setGlobalAnimation, GlobalAnimationMode, Base, getComponent, removeChildInstance, proxyToRaw, setProxyToRaw, Browser, versionBasedStatePersistence, enableVersionBasedPersistence, Component, ChildProperty, Position, Draggable, Droppable, EventHandler, onIntlChange, rightToLeft, cldrData, defaultCulture, defaultCurrencyCode, Internationalization, setCulture, setCurrencyCode, loadCldr, enableRtl, getNumericObject, getNumberDependable, getDefaultDateObject, KeyboardEvents, L10n, ModuleLoader, Property, Complex, ComplexFactory, Collection, CollectionFactory, Event$1 as Event, NotifyPropertyChanges, CreateBuilder, SwipeSettings, Touch, blazorTemplates, getRandomId, compile$$1 as compile, updateBlazorTemplate, resetBlazorTemplate, setTemplateEngine, getTemplateEngine, initializeCSPTemplate, disableBlazorMode, createInstance, setImmediate, getValue, setValue, deleteObject, containerObject, isObject, getEnumValue, merge, extend, isNullOrUndefined, isUndefined, getUniqueID, debounce, queryParams, isObjectArray, compareElementParent, throwError, print, formatUnit, enableBlazorMode, isBlazor, getElement, getInstance, addInstance, uniqueID, createElement, addClass, removeClass, isVisible, prepend, append, detach, remove, attributes, select, selectAll, closest, siblings, getAttributeOrDefault, setStyleAttribute, classList, matches, includeInnerHTML, containsClass, cloneNode, Observer, SanitizeHtmlHelper };
|
|
9974
9127
|
//# sourceMappingURL=ej2-base.es2015.js.map
|