From 22a36a7df44376b3cf6daf7454b92a6558ec642d Mon Sep 17 00:00:00 2001 From: cdemmigs Date: Sat, 6 Jul 2024 15:20:19 -0400 Subject: [PATCH] Refactorings.... --- coverage/tests.lcov | 8878 +++++++++++++++++++++-------------------- dist/gssql.js | 430 +- package-lock.json | 4 +- package.json | 2 +- src/JoinTables.js | 30 +- src/ScriptSettings.js | 124 +- src/Select2Object.js | 96 + src/SqlTest.js | 3 +- src/TableData.js | 6 +- src/Views.js | 185 +- 10 files changed, 5069 insertions(+), 4689 deletions(-) diff --git a/coverage/tests.lcov b/coverage/tests.lcov index 3968d32..bc09ad1 100644 --- a/coverage/tests.lcov +++ b/coverage/tests.lcov @@ -1,30 +1,30 @@ -------------------|---------|----------|---------|---------|--------------------------------------- File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s -------------------|---------|----------|---------|---------|--------------------------------------- -All files | 96.22 | 94.56 | 95.36 | 96.22 | - JoinTables.js | 99.69 | 98.01 | 100 | 99.69 | 291,576 - ScriptSettings.js | 90.84 | 75 | 88.88 | 90.84 | 51-52,81-83,88-90,100-103,137-138 - Select2Object.js | 96.73 | 89.47 | 100 | 96.73 | 75-76,101-103 +All files | 95.4 | 94.39 | 93.85 | 95.4 | + JoinTables.js | 99.69 | 98.01 | 100 | 99.69 | 287,568 + ScriptSettings.js | 67.09 | 64.7 | 58.33 | 67.09 | ...54,158-172,181-184,215-216,227-230 + Select2Object.js | 77.1 | 89.47 | 50 | 77.1 | ...66,174-178,187-197,238-239,243-245 SimpleParser.js | 98.42 | 97.63 | 100 | 98.42 | ...19,402-407,446-449,620-625,952-953 Sql.js | 98.4 | 92.79 | 100 | 98.4 | ...311,571-572,706-707,1068-1069,1106 - SqlTest.js | 94 | 95.3 | 90.54 | 94 | ...4475,5237-5241,5252-5255,5258-5269 + SqlTest.js | 94.02 | 95.3 | 90.54 | 94.02 | ...4474,5236-5240,5251-5254,5257-5268 Table.js | 99.62 | 91.25 | 100 | 99.62 | 77-78 - TableData.js | 83.58 | 68.08 | 83.33 | 83.58 | ...28,363-364,391-392,402-404,410-413 - Views.js | 99.01 | 95.98 | 98.93 | 99.01 | ...2103-2104,2141-2142,2389,2691-2692 + TableData.js | 83.66 | 68.08 | 83.33 | 83.66 | ...30,365-366,393-394,404-406,412-415 + Views.js | 98.93 | 95.82 | 98.93 | 98.93 | ...2115-2116,2159-2160,2361,2658-2659 -------------------|---------|----------|---------|---------|--------------------------------------- -------------------|---------|----------|---------|---------|--------------------------------------- File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s -------------------|---------|----------|---------|---------|--------------------------------------- -All files | 96.22 | 94.56 | 95.36 | 96.22 | - JoinTables.js | 99.69 | 98.01 | 100 | 99.69 | 291,576 - ScriptSettings.js | 90.84 | 75 | 88.88 | 90.84 | 51-52,81-83,88-90,100-103,137-138 - Select2Object.js | 96.73 | 89.47 | 100 | 96.73 | 75-76,101-103 +All files | 95.4 | 94.39 | 93.85 | 95.4 | + JoinTables.js | 99.69 | 98.01 | 100 | 99.69 | 287,568 + ScriptSettings.js | 67.09 | 64.7 | 58.33 | 67.09 | ...54,158-172,181-184,215-216,227-230 + Select2Object.js | 77.1 | 89.47 | 50 | 77.1 | ...66,174-178,187-197,238-239,243-245 SimpleParser.js | 98.42 | 97.63 | 100 | 98.42 | ...19,402-407,446-449,620-625,952-953 Sql.js | 98.4 | 92.79 | 100 | 98.4 | ...311,571-572,706-707,1068-1069,1106 - SqlTest.js | 94 | 95.3 | 90.54 | 94 | ...4475,5237-5241,5252-5255,5258-5269 + SqlTest.js | 94.02 | 95.3 | 90.54 | 94.02 | ...4474,5236-5240,5251-5254,5257-5268 Table.js | 99.62 | 91.25 | 100 | 99.62 | 77-78 - TableData.js | 83.58 | 68.08 | 83.33 | 83.58 | ...28,363-364,391-392,402-404,410-413 - Views.js | 99.01 | 95.98 | 98.93 | 99.01 | ...2103-2104,2141-2142,2389,2691-2692 + TableData.js | 83.66 | 68.08 | 83.33 | 83.66 | ...30,365-366,393-394,404-406,412-415 + Views.js | 98.93 | 95.82 | 98.93 | 98.93 | ...2115-2116,2159-2160,2361,2658-2659 -------------------|---------|----------|---------|---------|--------------------------------------- TN: SF:JoinTables.js @@ -38,28 +38,28 @@ FN:87,joinNextTable FN:104,joinCondition FN:128,resolveCondition FN:169,andJoinIds -FN:193,orJoinIds -FN:215,isDerivedTable -FN:227,getJoinedTableInfo -FN:238,joinTables -FN:305,JoinTablesRecordIds -FN:335,getRecordIDs -FN:350,setTableFields -FN:360,setTableInfo -FN:370,setBindVariables -FN:380,setRightTableName -FN:390,setLeftTableName -FN:400,setJoinType -FN:410,setPrimaryTableInfo -FN:419,getJoinFieldsInfo -FN:441,getLeftRightFieldInfo -FN:480,getTableInfoFromCalculatedField -FN:496,getReferencedTableInfo -FN:533,searchColumnsForTable -FN:556,getMatchedRecordIds -FN:590,leftRightJoin -FN:625,getJoinColumnData -FN:648,createKeyFieldRecordMap +FN:189,orJoinIds +FN:211,isDerivedTable +FN:223,getJoinedTableInfo +FN:234,joinTables +FN:301,JoinTablesRecordIds +FN:330,getRecordIDs +FN:343,setTableFields +FN:353,setTableInfo +FN:363,setBindVariables +FN:373,setRightTableName +FN:383,setLeftTableName +FN:393,setJoinType +FN:403,setPrimaryTableInfo +FN:412,getJoinFieldsInfo +FN:434,getLeftRightFieldInfo +FN:473,getTableInfoFromCalculatedField +FN:489,getReferencedTableInfo +FN:525,searchColumnsForTable +FN:548,getMatchedRecordIds +FN:582,leftRightJoin +FN:617,getJoinColumnData +FN:636,createKeyFieldRecordMap FNF:32 FNH:32 FNDA:377,JoinTables @@ -269,102 +269,102 @@ DA:172,4 DA:173,22 DA:174,22 DA:175,22 -DA:176,44 -DA:177,44 -DA:178,22 +DA:176,22 +DA:177,12 +DA:178,12 DA:179,22 DA:180,22 -DA:181,12 -DA:182,12 -DA:183,22 -DA:184,22 -DA:185,22 -DA:186,4 +DA:181,22 +DA:182,4 +DA:183,1 +DA:184,1 +DA:185,1 +DA:186,1 DA:187,1 DA:188,1 DA:189,1 -DA:190,1 -DA:191,1 -DA:192,1 -DA:193,1 -DA:194,122 -DA:195,122 -DA:196,122 -DA:197,647 +DA:190,122 +DA:191,122 +DA:192,122 +DA:193,647 +DA:194,647 +DA:195,647 +DA:196,658 +DA:197,658 DA:198,647 DA:199,647 -DA:200,658 -DA:201,658 +DA:200,606 +DA:201,606 DA:202,647 -DA:203,647 -DA:204,606 -DA:205,606 -DA:206,647 -DA:207,122 -DA:208,122 -DA:209,122 +DA:203,122 +DA:204,122 +DA:205,122 +DA:206,1 +DA:207,1 +DA:208,1 +DA:209,1 DA:210,1 DA:211,1 -DA:212,1 -DA:213,1 -DA:214,1 -DA:215,1 -DA:216,853 -DA:217,703 -DA:218,703 -DA:219,150 -DA:220,150 -DA:221,853 +DA:212,853 +DA:213,703 +DA:214,703 +DA:215,150 +DA:216,150 +DA:217,853 +DA:218,1 +DA:219,1 +DA:220,1 +DA:221,1 DA:222,1 DA:223,1 -DA:224,1 -DA:225,1 +DA:224,63 +DA:225,63 DA:226,1 DA:227,1 -DA:228,63 -DA:229,63 +DA:228,1 +DA:229,1 DA:230,1 DA:231,1 DA:232,1 DA:233,1 DA:234,1 -DA:235,1 -DA:236,1 -DA:237,1 -DA:238,1 +DA:235,62 +DA:236,62 +DA:237,62 +DA:238,62 DA:239,62 -DA:240,62 -DA:241,62 -DA:242,62 -DA:243,62 +DA:240,28 +DA:241,28 +DA:242,28 +DA:243,28 DA:244,28 DA:245,28 DA:246,28 -DA:247,28 -DA:248,28 -DA:249,28 -DA:250,28 -DA:251,62 -DA:252,62 +DA:247,62 +DA:248,62 +DA:249,25 +DA:250,25 +DA:251,25 +DA:252,25 DA:253,25 DA:254,25 DA:255,25 -DA:256,25 -DA:257,25 -DA:258,25 -DA:259,25 -DA:260,62 -DA:261,62 +DA:256,62 +DA:257,62 +DA:258,4 +DA:259,4 +DA:260,4 +DA:261,4 DA:262,4 DA:263,4 DA:264,4 DA:265,4 -DA:266,4 -DA:267,4 -DA:268,4 -DA:269,4 -DA:270,62 -DA:271,62 +DA:266,62 +DA:267,62 +DA:268,5 +DA:269,5 +DA:270,5 +DA:271,5 DA:272,5 DA:273,5 DA:274,5 @@ -378,16 +378,16 @@ DA:281,5 DA:282,5 DA:283,5 DA:284,5 -DA:285,5 -DA:286,5 -DA:287,5 -DA:288,5 +DA:285,62 +DA:286,62 +DA:287,0 +DA:288,62 DA:289,62 DA:290,62 -DA:291,0 -DA:292,62 -DA:293,62 -DA:294,62 +DA:291,1 +DA:292,1 +DA:293,1 +DA:294,1 DA:295,1 DA:296,1 DA:297,1 @@ -395,10 +395,10 @@ DA:298,1 DA:299,1 DA:300,1 DA:301,1 -DA:302,1 -DA:303,1 -DA:304,1 -DA:305,1 +DA:302,377 +DA:303,377 +DA:304,377 +DA:305,377 DA:306,377 DA:307,377 DA:308,377 @@ -418,103 +418,103 @@ DA:321,377 DA:322,377 DA:323,377 DA:324,377 -DA:325,377 -DA:326,377 -DA:327,377 -DA:328,377 +DA:325,1 +DA:326,1 +DA:327,1 +DA:328,1 DA:329,1 DA:330,1 -DA:331,1 -DA:332,1 -DA:333,1 -DA:334,1 -DA:335,1 +DA:331,69 +DA:332,69 +DA:333,69 +DA:334,69 +DA:335,69 DA:336,69 DA:337,69 -DA:338,69 -DA:339,69 -DA:340,69 -DA:341,69 -DA:342,69 -DA:343,69 -DA:344,1 -DA:345,1 -DA:346,1 -DA:347,1 +DA:338,1 +DA:339,1 +DA:340,1 +DA:341,1 +DA:342,1 +DA:343,1 +DA:344,444 +DA:345,444 +DA:346,444 +DA:347,444 DA:348,1 DA:349,1 DA:350,1 -DA:351,444 -DA:352,444 -DA:353,444 -DA:354,1 -DA:355,1 -DA:356,1 -DA:357,1 +DA:351,1 +DA:352,1 +DA:353,1 +DA:354,377 +DA:355,377 +DA:356,377 +DA:357,377 DA:358,1 DA:359,1 DA:360,1 -DA:361,377 -DA:362,377 -DA:363,377 -DA:364,1 -DA:365,1 -DA:366,1 -DA:367,1 +DA:361,1 +DA:362,1 +DA:363,1 +DA:364,377 +DA:365,377 +DA:366,377 +DA:367,377 DA:368,1 DA:369,1 DA:370,1 -DA:371,377 -DA:372,377 -DA:373,377 -DA:374,1 -DA:375,1 -DA:376,1 -DA:377,1 +DA:371,1 +DA:372,1 +DA:373,1 +DA:374,67 +DA:375,67 +DA:376,67 +DA:377,67 DA:378,1 DA:379,1 DA:380,1 -DA:381,67 -DA:382,67 -DA:383,67 -DA:384,1 -DA:385,1 -DA:386,1 -DA:387,1 +DA:381,1 +DA:382,1 +DA:383,1 +DA:384,67 +DA:385,67 +DA:386,67 +DA:387,67 DA:388,1 DA:389,1 DA:390,1 -DA:391,67 -DA:392,67 -DA:393,67 -DA:394,1 -DA:395,1 -DA:396,1 -DA:397,1 +DA:391,1 +DA:392,1 +DA:393,1 +DA:394,67 +DA:395,67 +DA:396,67 +DA:397,67 DA:398,1 DA:399,1 DA:400,1 -DA:401,67 -DA:402,67 -DA:403,67 -DA:404,1 -DA:405,1 -DA:406,1 -DA:407,1 +DA:401,1 +DA:402,1 +DA:403,1 +DA:404,377 +DA:405,377 +DA:406,377 +DA:407,377 DA:408,1 DA:409,1 DA:410,1 -DA:411,377 -DA:412,377 -DA:413,377 -DA:414,1 +DA:411,1 +DA:412,1 +DA:413,62 +DA:414,62 DA:415,1 DA:416,1 DA:417,1 DA:418,1 DA:419,1 -DA:420,62 -DA:421,62 +DA:420,1 +DA:421,1 DA:422,1 DA:423,1 DA:424,1 @@ -528,13 +528,13 @@ DA:431,1 DA:432,1 DA:433,1 DA:434,1 -DA:435,1 -DA:436,1 -DA:437,1 -DA:438,1 -DA:439,1 -DA:440,1 -DA:441,1 +DA:435,69 +DA:436,69 +DA:437,69 +DA:438,69 +DA:439,69 +DA:440,69 +DA:441,69 DA:442,69 DA:443,69 DA:444,69 @@ -552,212 +552,200 @@ DA:455,69 DA:456,69 DA:457,69 DA:458,69 -DA:459,69 -DA:460,69 -DA:461,69 -DA:462,69 -DA:463,69 -DA:464,69 -DA:465,69 -DA:466,9 -DA:467,9 -DA:468,9 -DA:469,9 -DA:470,9 -DA:471,56 -DA:472,56 -DA:473,69 -DA:474,1 -DA:475,1 -DA:476,1 -DA:477,1 -DA:478,1 -DA:479,1 -DA:480,1 -DA:481,135 +DA:459,9 +DA:460,9 +DA:461,9 +DA:462,9 +DA:463,9 +DA:464,56 +DA:465,56 +DA:466,69 +DA:467,1 +DA:468,1 +DA:469,1 +DA:470,1 +DA:471,1 +DA:472,1 +DA:473,1 +DA:474,135 +DA:475,135 +DA:476,135 +DA:477,13 +DA:478,13 +DA:479,13 +DA:480,131 +DA:481,131 DA:482,135 -DA:483,135 -DA:484,13 -DA:485,13 -DA:486,13 -DA:487,131 -DA:488,131 -DA:489,135 -DA:490,1 -DA:491,1 -DA:492,1 -DA:493,1 -DA:494,1 -DA:495,1 -DA:496,1 +DA:483,1 +DA:484,1 +DA:485,1 +DA:486,1 +DA:487,1 +DA:488,1 +DA:489,1 +DA:490,13 +DA:491,13 +DA:492,13 +DA:493,13 +DA:494,13 +DA:495,13 +DA:496,13 DA:497,13 DA:498,13 DA:499,13 -DA:500,13 -DA:501,13 -DA:502,13 -DA:503,13 -DA:504,13 -DA:505,13 -DA:506,13 -DA:507,8 -DA:508,8 +DA:500,8 +DA:501,8 +DA:502,5 +DA:503,5 +DA:504,5 +DA:505,5 +DA:506,5 +DA:507,5 +DA:508,5 DA:509,5 DA:510,5 DA:511,5 DA:512,5 -DA:513,5 -DA:514,5 -DA:515,5 -DA:516,5 -DA:517,5 -DA:518,5 -DA:519,5 -DA:520,13 -DA:521,3 -DA:522,3 -DA:523,2 -DA:524,2 -DA:525,13 -DA:526,1 -DA:527,1 -DA:528,1 -DA:529,1 -DA:530,1 -DA:531,1 -DA:532,1 -DA:533,1 -DA:534,18 -DA:535,18 +DA:513,13 +DA:514,3 +DA:515,3 +DA:516,2 +DA:517,2 +DA:518,13 +DA:519,1 +DA:520,1 +DA:521,1 +DA:522,1 +DA:523,1 +DA:524,1 +DA:525,1 +DA:526,18 +DA:527,18 +DA:528,18 +DA:529,18 +DA:530,10 +DA:531,10 +DA:532,10 +DA:533,10 +DA:534,8 +DA:535,8 DA:536,18 -DA:537,18 -DA:538,10 -DA:539,10 -DA:540,10 -DA:541,10 -DA:542,8 -DA:543,8 -DA:544,18 +DA:537,1 +DA:538,1 +DA:539,1 +DA:540,1 +DA:541,1 +DA:542,1 +DA:543,1 +DA:544,1 DA:545,1 DA:546,1 DA:547,1 DA:548,1 -DA:549,1 -DA:550,1 -DA:551,1 -DA:552,1 -DA:553,1 -DA:554,1 -DA:555,1 -DA:556,1 +DA:549,65 +DA:550,65 +DA:551,65 +DA:552,65 +DA:553,65 +DA:554,65 +DA:555,28 +DA:556,28 DA:557,65 -DA:558,65 -DA:559,65 +DA:558,28 +DA:559,28 DA:560,65 -DA:561,65 -DA:562,65 -DA:563,28 -DA:564,28 -DA:565,65 -DA:566,28 -DA:567,28 -DA:568,65 -DA:569,4 -DA:570,4 +DA:561,4 +DA:562,4 +DA:563,65 +DA:564,5 +DA:565,5 +DA:566,5 +DA:567,65 +DA:568,0 +DA:569,65 +DA:570,65 DA:571,65 -DA:572,5 -DA:573,5 -DA:574,5 -DA:575,65 -DA:576,0 -DA:577,65 -DA:578,65 -DA:579,65 -DA:580,65 +DA:572,65 +DA:573,1 +DA:574,1 +DA:575,1 +DA:576,1 +DA:577,1 +DA:578,1 +DA:579,1 +DA:580,1 DA:581,1 DA:582,1 -DA:583,1 -DA:584,1 -DA:585,1 -DA:586,1 -DA:587,1 -DA:588,1 -DA:589,1 -DA:590,1 +DA:583,70 +DA:584,70 +DA:585,70 +DA:586,70 +DA:587,70 +DA:588,70 +DA:589,70 +DA:590,70 DA:591,70 DA:592,70 DA:593,70 -DA:594,70 -DA:595,70 -DA:596,70 -DA:597,70 -DA:598,70 -DA:599,70 -DA:600,70 -DA:601,70 -DA:602,640 -DA:603,640 -DA:604,640 -DA:605,640 -DA:606,150 -DA:607,97 -DA:608,97 -DA:609,150 -DA:610,490 -DA:611,473 -DA:612,473 -DA:613,473 -DA:614,640 -DA:615,70 -DA:616,70 -DA:617,70 -DA:618,1 -DA:619,1 -DA:620,1 -DA:621,1 -DA:622,1 -DA:623,1 -DA:624,1 -DA:625,1 -DA:626,640 +DA:594,640 +DA:595,640 +DA:596,640 +DA:597,640 +DA:598,150 +DA:599,97 +DA:600,97 +DA:601,150 +DA:602,490 +DA:603,473 +DA:604,473 +DA:605,473 +DA:606,640 +DA:607,70 +DA:608,70 +DA:609,70 +DA:610,1 +DA:611,1 +DA:612,1 +DA:613,1 +DA:614,1 +DA:615,1 +DA:616,1 +DA:617,1 +DA:618,640 +DA:619,640 +DA:620,640 +DA:621,640 +DA:622,600 +DA:623,600 +DA:624,40 +DA:625,40 +DA:626,40 DA:627,640 DA:628,640 DA:629,640 -DA:630,600 -DA:631,600 -DA:632,40 -DA:633,40 -DA:634,40 -DA:635,640 -DA:636,640 -DA:637,637 -DA:638,637 -DA:639,640 -DA:640,640 -DA:641,640 -DA:642,1 -DA:643,1 -DA:644,1 -DA:645,1 -DA:646,1 -DA:647,1 -DA:648,1 +DA:630,1 +DA:631,1 +DA:632,1 +DA:633,1 +DA:634,1 +DA:635,1 +DA:636,1 +DA:637,70 +DA:638,70 +DA:639,70 +DA:640,65 +DA:641,65 +DA:642,5 +DA:643,5 +DA:644,5 +DA:645,5 +DA:646,5 +DA:647,70 +DA:648,70 DA:649,70 -DA:650,70 -DA:651,70 -DA:652,65 -DA:653,65 -DA:654,5 -DA:655,5 -DA:656,5 -DA:657,5 -DA:658,5 -DA:659,70 -DA:660,70 -DA:661,70 -DA:662,1 -LF:662 -LH:660 +DA:650,1 +LF:650 +LH:648 BRDA:1,0,0,1 BRDA:14,1,0,377 BRDA:30,2,0,377 @@ -784,106 +772,112 @@ BRDA:156,22,0,61 BRDA:160,23,0,63 BRDA:169,24,0,4 BRDA:172,25,0,22 -BRDA:175,26,0,44 -BRDA:176,27,0,10 -BRDA:176,28,0,34 -BRDA:180,29,0,12 -BRDA:178,30,0,44 -BRDA:178,31,0,76 -BRDA:193,32,0,122 -BRDA:196,33,0,647 -BRDA:199,34,0,658 -BRDA:203,35,0,606 -BRDA:215,36,0,853 -BRDA:216,37,0,703 -BRDA:219,38,0,150 -BRDA:227,39,0,63 -BRDA:238,40,0,62 -BRDA:243,41,0,28 -BRDA:252,42,0,25 -BRDA:261,43,0,4 -BRDA:271,44,0,5 -BRDA:290,45,0,0 -BRDA:305,46,0,377 -BRDA:335,47,0,69 -BRDA:337,48,0,22 -BRDA:337,49,0,47 -BRDA:350,50,0,444 -BRDA:360,51,0,377 -BRDA:370,52,0,377 -BRDA:380,53,0,67 -BRDA:390,54,0,67 -BRDA:400,55,0,67 -BRDA:410,56,0,377 -BRDA:419,57,0,62 -BRDA:441,58,0,69 -BRDA:447,59,0,5 -BRDA:447,60,0,64 -BRDA:448,61,0,5 -BRDA:448,62,0,64 -BRDA:465,63,0,65 -BRDA:465,64,0,9 -BRDA:471,65,0,56 -BRDA:480,66,0,135 -BRDA:483,67,0,13 -BRDA:483,68,0,13 -BRDA:487,69,0,131 -BRDA:496,70,0,13 -BRDA:506,71,0,8 -BRDA:509,72,0,5 -BRDA:520,73,0,3 -BRDA:523,74,0,2 -BRDA:516,75,0,8 -BRDA:516,76,0,8 -BRDA:533,77,0,18 -BRDA:537,78,0,10 -BRDA:542,79,0,8 -BRDA:534,80,0,13 -BRDA:535,81,0,13 -BRDA:556,82,0,65 -BRDA:562,83,0,28 -BRDA:565,84,0,28 -BRDA:568,85,0,4 -BRDA:571,86,0,5 -BRDA:575,87,0,0 -BRDA:590,88,0,70 -BRDA:601,89,0,640 -BRDA:605,90,0,150 -BRDA:606,91,0,97 -BRDA:610,92,0,490 -BRDA:610,93,0,473 -BRDA:625,94,0,640 -BRDA:629,95,0,600 -BRDA:632,96,0,40 -BRDA:636,97,0,637 -BRDA:648,98,0,70 -BRDA:651,99,0,65 -BRDA:654,100,0,5 +BRDA:176,26,0,12 +BRDA:173,27,0,44 +BRDA:173,28,0,10 +BRDA:173,29,0,34 +BRDA:174,30,0,44 +BRDA:174,31,0,76 +BRDA:189,32,0,122 +BRDA:192,33,0,647 +BRDA:195,34,0,658 +BRDA:199,35,0,606 +BRDA:211,36,0,853 +BRDA:212,37,0,703 +BRDA:215,38,0,150 +BRDA:223,39,0,63 +BRDA:234,40,0,62 +BRDA:239,41,0,28 +BRDA:248,42,0,25 +BRDA:257,43,0,4 +BRDA:267,44,0,5 +BRDA:286,45,0,0 +BRDA:301,46,0,377 +BRDA:330,47,0,69 +BRDA:332,48,0,22 +BRDA:332,49,0,47 +BRDA:343,50,0,444 +BRDA:353,51,0,377 +BRDA:363,52,0,377 +BRDA:373,53,0,67 +BRDA:383,54,0,67 +BRDA:393,55,0,67 +BRDA:403,56,0,377 +BRDA:412,57,0,62 +BRDA:434,58,0,69 +BRDA:440,59,0,5 +BRDA:440,60,0,64 +BRDA:441,61,0,5 +BRDA:441,62,0,64 +BRDA:458,63,0,65 +BRDA:458,64,0,9 +BRDA:464,65,0,56 +BRDA:473,66,0,135 +BRDA:476,67,0,13 +BRDA:476,68,0,13 +BRDA:480,69,0,131 +BRDA:489,70,0,13 +BRDA:499,71,0,8 +BRDA:502,72,0,5 +BRDA:513,73,0,3 +BRDA:516,74,0,2 +BRDA:509,75,0,8 +BRDA:509,76,0,8 +BRDA:525,77,0,18 +BRDA:529,78,0,10 +BRDA:534,79,0,8 +BRDA:526,80,0,13 +BRDA:527,81,0,13 +BRDA:548,82,0,65 +BRDA:554,83,0,28 +BRDA:557,84,0,28 +BRDA:560,85,0,4 +BRDA:563,86,0,5 +BRDA:567,87,0,0 +BRDA:582,88,0,70 +BRDA:593,89,0,640 +BRDA:597,90,0,150 +BRDA:598,91,0,97 +BRDA:602,92,0,490 +BRDA:602,93,0,473 +BRDA:617,94,0,640 +BRDA:621,95,0,600 +BRDA:624,96,0,40 +BRDA:628,97,0,637 +BRDA:636,98,0,70 +BRDA:639,99,0,65 +BRDA:642,100,0,5 BRF:101 BRH:99 end_of_record TN: SF:ScriptSettings.js -FN:13,ScriptSettings -FN:22,get -FN:40,put -FN:60,putAll -FN:69,expire -FN:99,delete -FN:115,PropertyData -FN:129,getData -FN:148,isExpired -FNF:9 -FNH:8 +FN:8,log +FN:21,ScriptSettings +FN:30,get +FN:48,put +FN:67,putAll +FN:78,putAllKeysWithData +FN:98,getAll +FN:140,expire +FN:180,delete +FN:196,PropertyData +FN:209,getData +FN:226,isExpired +FNF:12 +FNH:7 +FNDA:0,log FNDA:3,ScriptSettings FNDA:6,get FNDA:3,put FNDA:1,putAll +FNDA:0,putAllKeysWithData +FNDA:0,getAll FNDA:2,expire FNDA:0,delete FNDA:3,PropertyData FNDA:4,getData -FNDA:6,isExpired +FNDA:0,isExpired DA:1,1 DA:2,1 DA:3,1 @@ -892,59 +886,59 @@ DA:5,1 DA:6,1 DA:7,1 DA:8,1 -DA:9,1 -DA:10,1 +DA:9,0 +DA:10,0 DA:11,1 DA:12,1 DA:13,1 -DA:14,3 -DA:15,3 +DA:14,1 +DA:15,1 DA:16,1 DA:17,1 DA:18,1 DA:19,1 DA:20,1 DA:21,1 -DA:22,1 -DA:23,6 -DA:24,6 -DA:25,6 -DA:26,6 -DA:27,4 -DA:28,4 -DA:29,4 -DA:30,4 -DA:31,4 +DA:22,3 +DA:23,3 +DA:24,1 +DA:25,1 +DA:26,1 +DA:27,1 +DA:28,1 +DA:29,1 +DA:30,1 +DA:31,6 DA:32,6 -DA:33,1 -DA:34,1 -DA:35,1 -DA:36,1 -DA:37,1 -DA:38,1 -DA:39,1 -DA:40,1 -DA:41,3 -DA:42,3 -DA:43,3 -DA:44,3 -DA:45,3 -DA:46,3 -DA:47,3 -DA:48,3 +DA:33,6 +DA:34,6 +DA:35,4 +DA:36,4 +DA:37,4 +DA:38,4 +DA:39,4 +DA:40,6 +DA:41,1 +DA:42,1 +DA:43,1 +DA:44,1 +DA:45,1 +DA:46,1 +DA:47,1 +DA:48,1 DA:49,3 DA:50,3 -DA:51,0 -DA:52,0 +DA:51,3 +DA:52,3 DA:53,3 -DA:54,1 -DA:55,1 -DA:56,1 -DA:57,1 -DA:58,1 -DA:59,1 -DA:60,1 -DA:61,1 +DA:54,3 +DA:55,3 +DA:56,3 +DA:57,3 +DA:58,3 +DA:59,0 +DA:60,0 +DA:61,3 DA:62,1 DA:63,1 DA:64,1 @@ -953,110 +947,189 @@ DA:66,1 DA:67,1 DA:68,1 DA:69,1 -DA:70,2 -DA:71,2 -DA:72,2 -DA:73,2 -DA:74,2 -DA:75,2 -DA:76,2 -DA:77,2 -DA:78,2 -DA:79,2 -DA:80,2 -DA:81,0 -DA:82,0 -DA:83,0 -DA:84,2 -DA:85,2 -DA:86,2 -DA:87,2 -DA:88,0 -DA:89,0 -DA:90,0 -DA:91,2 -DA:92,2 -DA:93,2 -DA:94,1 -DA:95,1 +DA:70,1 +DA:71,1 +DA:72,1 +DA:73,1 +DA:74,1 +DA:75,1 +DA:76,1 +DA:77,1 +DA:78,1 +DA:79,0 +DA:80,0 +DA:81,0 +DA:82,0 +DA:83,0 +DA:84,0 +DA:85,0 +DA:86,0 +DA:87,0 +DA:88,0 +DA:89,0 +DA:90,0 +DA:91,1 +DA:92,1 +DA:93,1 +DA:94,1 +DA:95,1 DA:96,1 DA:97,1 DA:98,1 -DA:99,1 +DA:99,0 DA:100,0 DA:101,0 DA:102,0 DA:103,0 -DA:104,1 -DA:105,1 -DA:106,1 -DA:107,1 -DA:108,1 -DA:109,1 -DA:110,1 -DA:111,1 -DA:112,1 -DA:113,1 -DA:114,1 -DA:115,1 -DA:116,3 -DA:117,3 -DA:118,3 -DA:119,3 -DA:120,3 -DA:121,3 -DA:122,3 -DA:123,1 -DA:124,1 -DA:125,1 -DA:126,1 -DA:127,1 -DA:128,1 -DA:129,1 -DA:130,4 -DA:131,4 -DA:132,4 -DA:133,4 -DA:134,4 -DA:135,4 -DA:136,4 -DA:137,0 -DA:138,0 -DA:139,4 -DA:140,4 -DA:141,4 -DA:142,1 -DA:143,1 -DA:144,1 -DA:145,1 -DA:146,1 -DA:147,1 -DA:148,1 -DA:149,6 -DA:150,6 -DA:151,6 -DA:152,6 -DA:153,1 -LF:153 -LH:139 +DA:104,0 +DA:105,0 +DA:106,0 +DA:107,0 +DA:108,0 +DA:109,0 +DA:110,0 +DA:111,0 +DA:112,0 +DA:113,0 +DA:114,0 +DA:115,0 +DA:116,0 +DA:117,0 +DA:118,0 +DA:119,0 +DA:120,0 +DA:121,0 +DA:122,0 +DA:123,0 +DA:124,0 +DA:125,0 +DA:126,0 +DA:127,0 +DA:128,0 +DA:129,0 +DA:130,0 +DA:131,0 +DA:132,0 +DA:133,1 +DA:134,1 +DA:135,1 +DA:136,1 +DA:137,1 +DA:138,1 +DA:139,1 +DA:140,1 +DA:141,2 +DA:142,2 +DA:143,2 +DA:144,2 +DA:145,2 +DA:146,2 +DA:147,2 +DA:148,2 +DA:149,2 +DA:150,2 +DA:151,2 +DA:152,2 +DA:153,2 +DA:154,0 +DA:155,2 +DA:156,2 +DA:157,2 +DA:158,0 +DA:159,0 +DA:160,0 +DA:161,0 +DA:162,0 +DA:163,0 +DA:164,0 +DA:165,0 +DA:166,0 +DA:167,0 +DA:168,0 +DA:169,0 +DA:170,0 +DA:171,0 +DA:172,0 +DA:173,2 +DA:174,2 +DA:175,1 +DA:176,1 +DA:177,1 +DA:178,1 +DA:179,1 +DA:180,1 +DA:181,0 +DA:182,0 +DA:183,0 +DA:184,0 +DA:185,1 +DA:186,1 +DA:187,1 +DA:188,1 +DA:189,1 +DA:190,1 +DA:191,1 +DA:192,1 +DA:193,1 +DA:194,1 +DA:195,1 +DA:196,1 +DA:197,3 +DA:198,3 +DA:199,3 +DA:200,3 +DA:201,3 +DA:202,3 +DA:203,3 +DA:204,1 +DA:205,1 +DA:206,1 +DA:207,1 +DA:208,1 +DA:209,1 +DA:210,4 +DA:211,4 +DA:212,4 +DA:213,4 +DA:214,4 +DA:215,0 +DA:216,0 +DA:217,4 +DA:218,4 +DA:219,4 +DA:220,1 +DA:221,1 +DA:222,1 +DA:223,1 +DA:224,1 +DA:225,1 +DA:226,1 +DA:227,0 +DA:228,0 +DA:229,0 +DA:230,0 +DA:231,1 +LF:231 +LH:155 BRDA:1,0,0,1 -BRDA:13,1,0,3 -BRDA:22,2,0,6 -BRDA:26,3,0,2 -BRDA:27,4,0,4 -BRDA:40,5,0,3 -BRDA:50,6,0,0 -BRDA:60,7,0,1 -BRDA:62,8,0,1 -BRDA:69,9,0,2 -BRDA:80,10,0,0 -BRDA:87,11,0,0 -BRDA:115,12,0,3 -BRDA:129,13,0,4 -BRDA:136,14,0,0 -BRDA:148,15,0,6 -BRF:16 -BRH:12 +BRDA:21,1,0,3 +BRDA:30,2,0,6 +BRDA:34,3,0,2 +BRDA:35,4,0,4 +BRDA:48,5,0,3 +BRDA:58,6,0,0 +BRDA:67,7,0,1 +BRDA:69,8,0,1 +BRDA:140,9,0,2 +BRDA:141,10,0,0 +BRDA:154,11,0,0 +BRDA:157,12,0,0 +BRDA:157,13,0,0 +BRDA:196,14,0,3 +BRDA:209,15,0,4 +BRDA:214,16,0,0 +BRF:17 +BRH:11 end_of_record TN: SF:Select2Object.js @@ -1065,17 +1138,31 @@ FN:28,addTableData FN:41,addBindVariable FN:55,execute FN:89,cleanupColumnNames -FN:119,createTableObjectArray -FN:144,createEmptyRecordObject -FNF:7 +FN:118,convertTableArrayToObjectArray +FN:132,convertObjectArrayToTableArray +FN:158,convertObjectToArray +FN:173,convertColumnTitleToPropertyName +FN:186,getColumnNumber +FN:205,createTableObjectArray +FN:230,createEmptyRecordObject +FN:237,dataObject.get +FN:242,dataObject.set +FNF:14 FNH:7 FNDA:3,Select2Object FNDA:5,addTableData FNDA:1,addBindVariable FNDA:3,execute FNDA:3,cleanupColumnNames +FNDA:0,convertTableArrayToObjectArray +FNDA:0,convertObjectArrayToTableArray +FNDA:0,convertObjectToArray +FNDA:0,convertColumnTitleToPropertyName +FNDA:0,getColumnNumber FNDA:3,createTableObjectArray FNDA:3,createEmptyRecordObject +FNDA:0,dataObject.get +FNDA:0,dataObject.set DA:1,1 DA:2,1 DA:3,1 @@ -1194,43 +1281,139 @@ DA:115,1 DA:116,1 DA:117,1 DA:118,1 -DA:119,1 -DA:120,3 -DA:121,3 -DA:122,3 -DA:123,3 -DA:124,3 -DA:125,3 -DA:126,10 -DA:127,10 -DA:128,10 -DA:129,10 -DA:130,38 -DA:131,38 -DA:132,10 -DA:133,10 -DA:134,10 -DA:135,3 -DA:136,3 -DA:137,3 -DA:138,1 -DA:139,1 -DA:140,1 -DA:141,1 -DA:142,1 -DA:143,1 -DA:144,1 -DA:145,3 -DA:146,3 -DA:147,3 -DA:148,11 -DA:149,11 -DA:150,3 -DA:151,3 -DA:152,3 +DA:119,0 +DA:120,0 +DA:121,0 +DA:122,0 +DA:123,0 +DA:124,1 +DA:125,1 +DA:126,1 +DA:127,1 +DA:128,1 +DA:129,1 +DA:130,1 +DA:131,1 +DA:132,1 +DA:133,0 +DA:134,0 +DA:135,0 +DA:136,0 +DA:137,0 +DA:138,0 +DA:139,0 +DA:140,0 +DA:141,0 +DA:142,0 +DA:143,0 +DA:144,0 +DA:145,0 +DA:146,0 +DA:147,0 +DA:148,0 +DA:149,0 +DA:150,0 +DA:151,1 +DA:152,1 DA:153,1 -LF:153 -LH:148 +DA:154,1 +DA:155,1 +DA:156,1 +DA:157,1 +DA:158,1 +DA:159,0 +DA:160,0 +DA:161,0 +DA:162,0 +DA:163,0 +DA:164,0 +DA:165,0 +DA:166,0 +DA:167,1 +DA:168,1 +DA:169,1 +DA:170,1 +DA:171,1 +DA:172,1 +DA:173,1 +DA:174,0 +DA:175,0 +DA:176,0 +DA:177,0 +DA:178,0 +DA:179,1 +DA:180,1 +DA:181,1 +DA:182,1 +DA:183,1 +DA:184,1 +DA:185,1 +DA:186,1 +DA:187,0 +DA:188,0 +DA:189,0 +DA:190,0 +DA:191,0 +DA:192,0 +DA:193,0 +DA:194,0 +DA:195,0 +DA:196,0 +DA:197,0 +DA:198,1 +DA:199,1 +DA:200,1 +DA:201,1 +DA:202,1 +DA:203,1 +DA:204,1 +DA:205,1 +DA:206,3 +DA:207,3 +DA:208,3 +DA:209,3 +DA:210,3 +DA:211,3 +DA:212,10 +DA:213,10 +DA:214,10 +DA:215,10 +DA:216,38 +DA:217,38 +DA:218,10 +DA:219,10 +DA:220,10 +DA:221,3 +DA:222,3 +DA:223,3 +DA:224,1 +DA:225,1 +DA:226,1 +DA:227,1 +DA:228,1 +DA:229,1 +DA:230,1 +DA:231,3 +DA:232,3 +DA:233,3 +DA:234,11 +DA:235,11 +DA:236,3 +DA:237,3 +DA:238,0 +DA:239,0 +DA:240,3 +DA:241,3 +DA:242,3 +DA:243,0 +DA:244,0 +DA:245,0 +DA:246,3 +DA:247,3 +DA:248,3 +DA:249,1 +LF:249 +LH:192 BRDA:1,0,0,1 BRDA:17,1,0,3 BRDA:28,2,0,5 @@ -1245,11 +1428,11 @@ BRDA:101,10,0,0 BRDA:108,11,0,1 BRDA:109,12,0,2 BRDA:90,13,0,11 -BRDA:119,14,0,3 -BRDA:125,15,0,10 -BRDA:129,16,0,38 -BRDA:144,17,0,3 -BRDA:147,18,0,11 +BRDA:205,14,0,3 +BRDA:211,15,0,10 +BRDA:215,16,0,38 +BRDA:230,17,0,3 +BRDA:233,18,0,11 BRF:19 BRH:17 end_of_record @@ -4666,250 +4849,250 @@ FN:211,customMenuGenerateTests FN:225,isEqual FN:245,TestedStatements FN:265,getTableDefinitionString -FN:296,TestSql -FN:305,execute -FN:319,generateTestCustomFunctions -FN:399,makeCustomFormulaString -FN:431,makeTestResultFormulaString -FN:457,bookTable -FN:501,bookSalesTable -FN:546,bookReturnsTable -FN:577,customerTable -FN:605,authorsTable -FN:630,editorsTable -FN:661,translatorsTable -FN:672,masterTransactionsTable -FN:702,yearlySalesTable -FN:714,selectAll1 -FN:718,selectAllCase1 -FN:722,selectIsNotNull1 -FN:726,selectAllAuthors -FN:742,selectAllAuthorsToObject -FN:758,selectAnAuthorsToObject -FN:771,selectIsNull1 -FN:785,innerJoin1a -FN:795,innerJoin1case -FN:805,innerJoin1 -FN:825,innerJoin2 -FN:851,innerJoin2ToObject -FN:882,innerJoinAlias1 -FN:908,innerJoinAlias2 -FN:954,join2a -FN:963,join2b -FN:973,join2 -FN:991,join3 -FN:1018,joinLimit1 -FN:1042,leftJoin1 -FN:1073,rightJoin1 -FN:1104,rightJoin1a -FN:1134,rightJoin2 -FN:1162,fullJoin1 -FN:1194,fullJoin2 -FN:1224,fullJoin3 -FN:1259,whereIn1 -FN:1284,whereIn2 -FN:1304,whereIn3 -FN:1322,whereIn4 -FN:1348,whereIn5 -FN:1374,whereIn6 -FN:1390,whereIn7 -FN:1409,whereNotIn1 -FN:1427,whereNotIn2 -FN:1445,whereNotIn3 -FN:1468,whereNotIn4 -FN:1489,whereAndOr1 -FN:1508,whereAndOr2 -FN:1530,whereAndOr3 -FN:1557,whereAndNotEqual2 -FN:1563,whereAndNotEqual3 -FN:1568,whereAndNotEqual2base -FN:1591,selectAgainNewBinds1 -FN:1629,groupBy1 -FN:1649,groupBy2 -FN:1666,groupBy3 -FN:1688,groupBy4 -FN:1711,groupBy5 -FN:1744,avgSelect1 -FN:1757,funcsSelect2 -FN:1771,innerSelect1 -FN:1791,whereLike1 -FN:1818,whereLike2 -FN:1845,whereNotLike1 -FN:1871,union1 -FN:1899,unionAlias1 -FN:1927,unionBind1 -FN:1947,unionAll1 -FN:1976,unionAll2 -FN:2010,unionAll3 -FN:2043,unionAll4 -FN:2072,unionJoin1 -FN:2110,except1 -FN:2127,intersect1 -FN:2142,orderByDesc1 -FN:2165,orderByDesc2 -FN:2188,orderByDesc3 -FN:2207,distinct1 -FN:2229,selectMath1 -FN:2252,selectMathFunc1 -FN:2275,selectMathFunc2 -FN:2297,selectFuncs2 -FN:2317,selectFuncs3 -FN:2337,selectFuncs4 -FN:2357,selectFuncs5 -FN:2387,selectFuncs6 -FN:2410,selectFuncs7 -FN:2430,selectFuncInFunc1 -FN:2450,selectFuncInFunc2 -FN:2470,selectIF1 -FN:2502,selectIF2 -FN:2526,selectIF3 -FN:2550,selectIF4 -FN:2574,selectWhereCalc1 -FN:2590,selectWhereCalc2 -FN:2608,selectCase1 -FN:2639,selectCase2 -FN:2671,selectAlias1 -FN:2689,liveTest1 -FN:2709,liveTest2 -FN:2725,groupPivot1 -FN:2742,groupPivot2 -FN:2759,groupPivot3 -FN:2779,groupFunc1 -FN:2796,groupFunc2 -FN:2809,selectInGroupByPivot1 -FN:2827,selectInGroupByPivot2 -FN:2845,selectInGroupByPivot3 -FN:2863,selectCount1 -FN:2877,selectCount2 -FN:2893,selectCount3 -FN:2907,selectCount4 -FN:2921,selectCount5 -FN:2935,selectCount6 -FN:2953,selectGroupByNotInSelect -FN:2971,selectGroupByNotInSelect2 -FN:2991,selectOrderByNotInSelect -FN:3014,selectCoalesce -FN:3033,selectConcat_Ws -FN:3049,selectConcat_Ws2 -FN:3068,selectNoTitle1 -FN:3101,selectNested -FN:3118,selectNested2 -FN:3135,selectCorrelatedSubQuery1 -FN:3158,selectCorrelatedSubQuery2 -FN:3175,selectCorrelatedSubQuery3 -FN:3191,selectCorrelatedSubQuery4 -FN:3208,selectCorrelatedSubQuery5 -FN:3226,selectCorrelatedSubQuery6 -FN:3242,selectCorrelatedSubQuery7 -FN:3258,selectCorrelatedSubQuery8 -FN:3276,selectCorrelatedSubQuery9 -FN:3297,selectCorrelatedSubQuery10 -FN:3314,selectCorrelatedSubQuery11 -FN:3331,selectFromSubQuery1 -FN:3349,selectFromSubQuery2 -FN:3367,selectFromSubQuery3 -FN:3382,selectFromSubQuery4 -FN:3402,selectFromSubQuery5 -FN:3422,selectFromSubQuery6 -FN:3439,selectFromSubQuery7 -FN:3457,selectConvertFunction -FN:3477,selectJoinMultipleConditions -FN:3511,selectJoinOnExpression1 -FN:3535,selectJoinMultipleConditions2 -FN:3559,selectJoinOnExpression2 -FN:3584,selectJoinOnExpression3 -FN:3608,selectJoinLeftRightSwitchedInCondition -FN:3631,selectJoinMultipleConditions3 -FN:3645,selectSingleQuoteDataWithCalculation -FN:3659,selectWithBadDate -FN:3698,selectWhereBadDate -FN:3724,selectGroupByCalculatedField -FN:3741,selectGroupByCalculatedFieldNotInSelectFieldList -FN:3758,selectGroupByCalculatedField2 -FN:3778,selectOrderByCalculated -FN:3801,selectOrderByCalculated2 -FN:3825,joinBigTables1 -FN:3846,selectWhereLike3 -FN:3861,selectWhereLike4 -FN:3877,selectFromSubQuery8 -FN:3892,selectFromSubQuery9 -FN:3906,selectConcat1 -FN:3929,selectBadHavingButStillWork -FN:3947,selectDateDiff -FN:3966,selectDateDiff2 -FN:3986,selectNotLikeInMiddle1 -FN:4006,selectGroupConcat -FN:4021,selectGroupConcat2 -FN:4036,selectBetween1 -FN:4053,selectNotBetween1 -FN:4072,selectNotBetweenAndIN -FN:4087,selectBetweenFromFunction -FN:4105,selectCountWithNullOnJoin -FN:4125,selectCalculatedFieldWitinGroupBY -FN:4145,selectCalculatedFieldNotInSelectFieldsWitinGroupBY -FN:4165,selectJoinCaseInSensitiveCondition -FN:4183,selectCaseInSensitiveCondition -FN:4199,concatWsWithDayFunction -FN:4222,selectAddDateLastDay -FN:4240,selectLocate -FN:4262,removeTrailingEmptyRecords -FN:4286,parseTableSettings1 -FN:4295,parseTableSettings2 -FN:4303,parseTableSettings3 -FN:4322,parseTableSettings4 -FN:4331,parseTableSettings5 -FN:4346,parseTableSettings6 -FN:4358,parseTableSettings7 -FN:4369,parseTableSettings8 -FN:4379,parseTableSettings9 -FN:4389,parseTableSettings10 -FN:4399,parseTableSettings11 -FN:4409,parseTableSettings12 -FN:4423,parseTableSettings13 -FN:4433,parseTableSettings14 -FN:4442,parseTableSettings15 -FN:4452,parseTableSettings16 -FN:4464,testTableData1 -FN:4502,testTableData2 -FN:4514,testTableData -FN:4587,selectBadTable1 -FN:4606,selectBadMath1 -FN:4624,selectBadField1 -FN:4642,selectBadField1a -FN:4661,selectBadField2 -FN:4679,selectBadField3 -FN:4697,selectBadField4 -FN:4715,selectBadField5 -FN:4733,selectBadField6 -FN:4751,selectBadOp1 -FN:4769,selectBadAs1 -FN:4787,selectBadConstant1 -FN:4805,selectBadConstant2 -FN:4823,nonSelect1 -FN:4841,badJoin1 -FN:4864,badJoin2 -FN:4887,badJoin3 -FN:4911,badJoin4 -FN:4930,badJoin5 -FN:4950,badOrderBy1 -FN:4969,badOrderBy2 -FN:4988,badOrderBy3 -FN:5007,badGroupBy1 -FN:5026,selectBadGroupByField -FN:5045,bindVariableMissing -FN:5065,bindVariableMissing1 -FN:5085,selectNoFrom -FN:5103,selectNoTitles -FN:5124,selectFromSubQueryNoAlias -FN:5142,badParseTableSettings1 -FN:5154,pivotGroupByMissing -FN:5174,badUnion1 -FN:5193,badFieldNames1 -FN:5215,viewsToUpperCaseExceptQuoted -FN:5221,columnLetterTest -FN:5231,isFail -FN:5244,isEqual -FN:5284,testerSql +FN:295,TestSql +FN:304,execute +FN:318,generateTestCustomFunctions +FN:398,makeCustomFormulaString +FN:430,makeTestResultFormulaString +FN:456,bookTable +FN:500,bookSalesTable +FN:545,bookReturnsTable +FN:576,customerTable +FN:604,authorsTable +FN:629,editorsTable +FN:660,translatorsTable +FN:671,masterTransactionsTable +FN:701,yearlySalesTable +FN:713,selectAll1 +FN:717,selectAllCase1 +FN:721,selectIsNotNull1 +FN:725,selectAllAuthors +FN:741,selectAllAuthorsToObject +FN:757,selectAnAuthorsToObject +FN:770,selectIsNull1 +FN:784,innerJoin1a +FN:794,innerJoin1case +FN:804,innerJoin1 +FN:824,innerJoin2 +FN:850,innerJoin2ToObject +FN:881,innerJoinAlias1 +FN:907,innerJoinAlias2 +FN:953,join2a +FN:962,join2b +FN:972,join2 +FN:990,join3 +FN:1017,joinLimit1 +FN:1041,leftJoin1 +FN:1072,rightJoin1 +FN:1103,rightJoin1a +FN:1133,rightJoin2 +FN:1161,fullJoin1 +FN:1193,fullJoin2 +FN:1223,fullJoin3 +FN:1258,whereIn1 +FN:1283,whereIn2 +FN:1303,whereIn3 +FN:1321,whereIn4 +FN:1347,whereIn5 +FN:1373,whereIn6 +FN:1389,whereIn7 +FN:1408,whereNotIn1 +FN:1426,whereNotIn2 +FN:1444,whereNotIn3 +FN:1467,whereNotIn4 +FN:1488,whereAndOr1 +FN:1507,whereAndOr2 +FN:1529,whereAndOr3 +FN:1556,whereAndNotEqual2 +FN:1562,whereAndNotEqual3 +FN:1567,whereAndNotEqual2base +FN:1590,selectAgainNewBinds1 +FN:1628,groupBy1 +FN:1648,groupBy2 +FN:1665,groupBy3 +FN:1687,groupBy4 +FN:1710,groupBy5 +FN:1743,avgSelect1 +FN:1756,funcsSelect2 +FN:1770,innerSelect1 +FN:1790,whereLike1 +FN:1817,whereLike2 +FN:1844,whereNotLike1 +FN:1870,union1 +FN:1898,unionAlias1 +FN:1926,unionBind1 +FN:1946,unionAll1 +FN:1975,unionAll2 +FN:2009,unionAll3 +FN:2042,unionAll4 +FN:2071,unionJoin1 +FN:2109,except1 +FN:2126,intersect1 +FN:2141,orderByDesc1 +FN:2164,orderByDesc2 +FN:2187,orderByDesc3 +FN:2206,distinct1 +FN:2228,selectMath1 +FN:2251,selectMathFunc1 +FN:2274,selectMathFunc2 +FN:2296,selectFuncs2 +FN:2316,selectFuncs3 +FN:2336,selectFuncs4 +FN:2356,selectFuncs5 +FN:2386,selectFuncs6 +FN:2409,selectFuncs7 +FN:2429,selectFuncInFunc1 +FN:2449,selectFuncInFunc2 +FN:2469,selectIF1 +FN:2501,selectIF2 +FN:2525,selectIF3 +FN:2549,selectIF4 +FN:2573,selectWhereCalc1 +FN:2589,selectWhereCalc2 +FN:2607,selectCase1 +FN:2638,selectCase2 +FN:2670,selectAlias1 +FN:2688,liveTest1 +FN:2708,liveTest2 +FN:2724,groupPivot1 +FN:2741,groupPivot2 +FN:2758,groupPivot3 +FN:2778,groupFunc1 +FN:2795,groupFunc2 +FN:2808,selectInGroupByPivot1 +FN:2826,selectInGroupByPivot2 +FN:2844,selectInGroupByPivot3 +FN:2862,selectCount1 +FN:2876,selectCount2 +FN:2892,selectCount3 +FN:2906,selectCount4 +FN:2920,selectCount5 +FN:2934,selectCount6 +FN:2952,selectGroupByNotInSelect +FN:2970,selectGroupByNotInSelect2 +FN:2990,selectOrderByNotInSelect +FN:3013,selectCoalesce +FN:3032,selectConcat_Ws +FN:3048,selectConcat_Ws2 +FN:3067,selectNoTitle1 +FN:3100,selectNested +FN:3117,selectNested2 +FN:3134,selectCorrelatedSubQuery1 +FN:3157,selectCorrelatedSubQuery2 +FN:3174,selectCorrelatedSubQuery3 +FN:3190,selectCorrelatedSubQuery4 +FN:3207,selectCorrelatedSubQuery5 +FN:3225,selectCorrelatedSubQuery6 +FN:3241,selectCorrelatedSubQuery7 +FN:3257,selectCorrelatedSubQuery8 +FN:3275,selectCorrelatedSubQuery9 +FN:3296,selectCorrelatedSubQuery10 +FN:3313,selectCorrelatedSubQuery11 +FN:3330,selectFromSubQuery1 +FN:3348,selectFromSubQuery2 +FN:3366,selectFromSubQuery3 +FN:3381,selectFromSubQuery4 +FN:3401,selectFromSubQuery5 +FN:3421,selectFromSubQuery6 +FN:3438,selectFromSubQuery7 +FN:3456,selectConvertFunction +FN:3476,selectJoinMultipleConditions +FN:3510,selectJoinOnExpression1 +FN:3534,selectJoinMultipleConditions2 +FN:3558,selectJoinOnExpression2 +FN:3583,selectJoinOnExpression3 +FN:3607,selectJoinLeftRightSwitchedInCondition +FN:3630,selectJoinMultipleConditions3 +FN:3644,selectSingleQuoteDataWithCalculation +FN:3658,selectWithBadDate +FN:3697,selectWhereBadDate +FN:3723,selectGroupByCalculatedField +FN:3740,selectGroupByCalculatedFieldNotInSelectFieldList +FN:3757,selectGroupByCalculatedField2 +FN:3777,selectOrderByCalculated +FN:3800,selectOrderByCalculated2 +FN:3824,joinBigTables1 +FN:3845,selectWhereLike3 +FN:3860,selectWhereLike4 +FN:3876,selectFromSubQuery8 +FN:3891,selectFromSubQuery9 +FN:3905,selectConcat1 +FN:3928,selectBadHavingButStillWork +FN:3946,selectDateDiff +FN:3965,selectDateDiff2 +FN:3985,selectNotLikeInMiddle1 +FN:4005,selectGroupConcat +FN:4020,selectGroupConcat2 +FN:4035,selectBetween1 +FN:4052,selectNotBetween1 +FN:4071,selectNotBetweenAndIN +FN:4086,selectBetweenFromFunction +FN:4104,selectCountWithNullOnJoin +FN:4124,selectCalculatedFieldWitinGroupBY +FN:4144,selectCalculatedFieldNotInSelectFieldsWitinGroupBY +FN:4164,selectJoinCaseInSensitiveCondition +FN:4182,selectCaseInSensitiveCondition +FN:4198,concatWsWithDayFunction +FN:4221,selectAddDateLastDay +FN:4239,selectLocate +FN:4261,removeTrailingEmptyRecords +FN:4285,parseTableSettings1 +FN:4294,parseTableSettings2 +FN:4302,parseTableSettings3 +FN:4321,parseTableSettings4 +FN:4330,parseTableSettings5 +FN:4345,parseTableSettings6 +FN:4357,parseTableSettings7 +FN:4368,parseTableSettings8 +FN:4378,parseTableSettings9 +FN:4388,parseTableSettings10 +FN:4398,parseTableSettings11 +FN:4408,parseTableSettings12 +FN:4422,parseTableSettings13 +FN:4432,parseTableSettings14 +FN:4441,parseTableSettings15 +FN:4451,parseTableSettings16 +FN:4463,testTableData1 +FN:4501,testTableData2 +FN:4513,testTableData +FN:4586,selectBadTable1 +FN:4605,selectBadMath1 +FN:4623,selectBadField1 +FN:4641,selectBadField1a +FN:4660,selectBadField2 +FN:4678,selectBadField3 +FN:4696,selectBadField4 +FN:4714,selectBadField5 +FN:4732,selectBadField6 +FN:4750,selectBadOp1 +FN:4768,selectBadAs1 +FN:4786,selectBadConstant1 +FN:4804,selectBadConstant2 +FN:4822,nonSelect1 +FN:4840,badJoin1 +FN:4863,badJoin2 +FN:4886,badJoin3 +FN:4910,badJoin4 +FN:4929,badJoin5 +FN:4949,badOrderBy1 +FN:4968,badOrderBy2 +FN:4987,badOrderBy3 +FN:5006,badGroupBy1 +FN:5025,selectBadGroupByField +FN:5044,bindVariableMissing +FN:5064,bindVariableMissing1 +FN:5084,selectNoFrom +FN:5102,selectNoTitles +FN:5123,selectFromSubQueryNoAlias +FN:5141,badParseTableSettings1 +FN:5153,pivotGroupByMissing +FN:5173,badUnion1 +FN:5192,badFieldNames1 +FN:5214,viewsToUpperCaseExceptQuoted +FN:5220,columnLetterTest +FN:5230,isFail +FN:5243,isEqual +FN:5283,testerSql FNF:275 FNH:249 FNDA:8,getActiveSpreadsheet @@ -5478,20 +5661,20 @@ DA:288,0 DA:289,0 DA:290,0 DA:291,0 -DA:292,0 +DA:292,1 DA:293,1 DA:294,1 DA:295,1 -DA:296,1 +DA:296,200 DA:297,200 -DA:298,200 +DA:298,1 DA:299,1 DA:300,1 DA:301,1 DA:302,1 DA:303,1 DA:304,1 -DA:305,1 +DA:305,200 DA:306,200 DA:307,200 DA:308,200 @@ -5503,9 +5686,9 @@ DA:313,200 DA:314,200 DA:315,200 DA:316,200 -DA:317,200 +DA:317,1 DA:318,1 -DA:319,1 +DA:319,0 DA:320,0 DA:321,0 DA:322,0 @@ -5578,14 +5761,14 @@ DA:388,0 DA:389,0 DA:390,0 DA:391,0 -DA:392,0 +DA:392,1 DA:393,1 DA:394,1 DA:395,1 DA:396,1 DA:397,1 DA:398,1 -DA:399,1 +DA:399,0 DA:400,0 DA:401,0 DA:402,0 @@ -5615,9 +5798,9 @@ DA:425,0 DA:426,0 DA:427,0 DA:428,0 -DA:429,0 +DA:429,1 DA:430,1 -DA:431,1 +DA:431,0 DA:432,0 DA:433,0 DA:434,0 @@ -5625,7 +5808,7 @@ DA:435,0 DA:436,0 DA:437,0 DA:438,0 -DA:439,0 +DA:439,1 DA:440,1 DA:441,1 DA:442,1 @@ -5643,7 +5826,7 @@ DA:453,1 DA:454,1 DA:455,1 DA:456,1 -DA:457,1 +DA:457,49 DA:458,49 DA:459,49 DA:460,49 @@ -5657,7 +5840,7 @@ DA:467,49 DA:468,49 DA:469,49 DA:470,49 -DA:471,49 +DA:471,0 DA:472,0 DA:473,0 DA:474,0 @@ -5668,10 +5851,10 @@ DA:478,0 DA:479,0 DA:480,0 DA:481,0 -DA:482,0 +DA:482,49 DA:483,49 DA:484,49 -DA:485,49 +DA:485,1 DA:486,1 DA:487,1 DA:488,1 @@ -5687,7 +5870,7 @@ DA:497,1 DA:498,1 DA:499,1 DA:500,1 -DA:501,1 +DA:501,114 DA:502,114 DA:503,114 DA:504,114 @@ -5702,7 +5885,7 @@ DA:512,114 DA:513,114 DA:514,114 DA:515,114 -DA:516,114 +DA:516,0 DA:517,0 DA:518,0 DA:519,0 @@ -5713,10 +5896,10 @@ DA:523,0 DA:524,0 DA:525,0 DA:526,0 -DA:527,0 +DA:527,114 DA:528,114 DA:529,114 -DA:530,114 +DA:530,1 DA:531,1 DA:532,1 DA:533,1 @@ -5732,7 +5915,7 @@ DA:542,1 DA:543,1 DA:544,1 DA:545,1 -DA:546,1 +DA:546,9 DA:547,9 DA:548,9 DA:549,9 @@ -5747,7 +5930,7 @@ DA:557,9 DA:558,9 DA:559,9 DA:560,9 -DA:561,9 +DA:561,1 DA:562,1 DA:563,1 DA:564,1 @@ -5763,7 +5946,7 @@ DA:573,1 DA:574,1 DA:575,1 DA:576,1 -DA:577,1 +DA:577,35 DA:578,35 DA:579,35 DA:580,35 @@ -5775,7 +5958,7 @@ DA:585,35 DA:586,35 DA:587,35 DA:588,35 -DA:589,35 +DA:589,1 DA:590,1 DA:591,1 DA:592,1 @@ -5791,7 +5974,7 @@ DA:601,1 DA:602,1 DA:603,1 DA:604,1 -DA:605,1 +DA:605,46 DA:606,46 DA:607,46 DA:608,46 @@ -5800,7 +5983,7 @@ DA:610,46 DA:611,46 DA:612,46 DA:613,46 -DA:614,46 +DA:614,1 DA:615,1 DA:616,1 DA:617,1 @@ -5816,7 +5999,7 @@ DA:626,1 DA:627,1 DA:628,1 DA:629,1 -DA:630,1 +DA:630,32 DA:631,32 DA:632,32 DA:633,32 @@ -5830,7 +6013,7 @@ DA:640,32 DA:641,32 DA:642,32 DA:643,32 -DA:644,32 +DA:644,1 DA:645,1 DA:646,1 DA:647,1 @@ -5847,7 +6030,7 @@ DA:657,1 DA:658,1 DA:659,1 DA:660,1 -DA:661,1 +DA:661,15 DA:662,15 DA:663,15 DA:664,15 @@ -5856,9 +6039,9 @@ DA:666,15 DA:667,15 DA:668,15 DA:669,15 -DA:670,15 +DA:670,1 DA:671,1 -DA:672,1 +DA:672,15 DA:673,15 DA:674,15 DA:675,15 @@ -5886,7 +6069,7 @@ DA:696,15 DA:697,15 DA:698,15 DA:699,15 -DA:700,15 +DA:700,1 DA:701,1 DA:702,1 DA:703,1 @@ -5912,7 +6095,7 @@ DA:722,1 DA:723,1 DA:724,1 DA:725,1 -DA:726,1 +DA:726,3 DA:727,3 DA:728,3 DA:729,3 @@ -5926,7 +6109,7 @@ DA:736,3 DA:737,3 DA:738,3 DA:739,3 -DA:740,3 +DA:740,1 DA:741,1 DA:742,1 DA:743,1 @@ -5991,7 +6174,7 @@ DA:801,1 DA:802,1 DA:803,1 DA:804,1 -DA:805,1 +DA:805,2 DA:806,2 DA:807,2 DA:808,2 @@ -6009,7 +6192,7 @@ DA:819,2 DA:820,2 DA:821,2 DA:822,2 -DA:823,2 +DA:823,1 DA:824,1 DA:825,1 DA:826,1 @@ -6159,7 +6342,7 @@ DA:969,1 DA:970,1 DA:971,1 DA:972,1 -DA:973,1 +DA:973,2 DA:974,2 DA:975,2 DA:976,2 @@ -6175,7 +6358,7 @@ DA:985,2 DA:986,2 DA:987,2 DA:988,2 -DA:989,2 +DA:989,1 DA:990,1 DA:991,1 DA:992,1 @@ -6754,7 +6937,7 @@ DA:1564,1 DA:1565,1 DA:1566,1 DA:1567,1 -DA:1568,1 +DA:1568,2 DA:1569,2 DA:1570,2 DA:1571,2 @@ -6775,7 +6958,7 @@ DA:1585,2 DA:1586,2 DA:1587,2 DA:1588,2 -DA:1589,2 +DA:1589,1 DA:1590,1 DA:1591,1 DA:1592,1 @@ -7560,11 +7743,11 @@ DA:2370,1 DA:2371,1 DA:2372,1 DA:2373,1 -DA:2374,1 +DA:2374,2 DA:2375,2 DA:2376,2 DA:2377,2 -DA:2378,2 +DA:2378,1 DA:2379,1 DA:2380,1 DA:2381,1 @@ -7875,7 +8058,7 @@ DA:2685,1 DA:2686,1 DA:2687,1 DA:2688,1 -DA:2689,1 +DA:2689,0 DA:2690,0 DA:2691,0 DA:2692,0 @@ -7893,9 +8076,9 @@ DA:2703,0 DA:2704,0 DA:2705,0 DA:2706,0 -DA:2707,0 +DA:2707,1 DA:2708,1 -DA:2709,1 +DA:2709,0 DA:2710,0 DA:2711,0 DA:2712,0 @@ -7909,7 +8092,7 @@ DA:2719,0 DA:2720,0 DA:2721,0 DA:2722,0 -DA:2723,0 +DA:2723,1 DA:2724,1 DA:2725,1 DA:2726,1 @@ -9011,7 +9194,7 @@ DA:3821,1 DA:3822,1 DA:3823,1 DA:3824,1 -DA:3825,1 +DA:3825,0 DA:3826,0 DA:3827,0 DA:3828,0 @@ -9030,7 +9213,7 @@ DA:3840,0 DA:3841,0 DA:3842,0 DA:3843,0 -DA:3844,0 +DA:3844,1 DA:3845,1 DA:3846,1 DA:3847,1 @@ -9133,7 +9316,7 @@ DA:3943,1 DA:3944,1 DA:3945,1 DA:3946,1 -DA:3947,1 +DA:3947,0 DA:3948,0 DA:3949,0 DA:3950,0 @@ -9150,7 +9333,7 @@ DA:3960,0 DA:3961,0 DA:3962,0 DA:3963,0 -DA:3964,0 +DA:3964,1 DA:3965,1 DA:3966,1 DA:3967,1 @@ -9451,9 +9634,9 @@ DA:4261,1 DA:4262,1 DA:4263,1 DA:4264,1 -DA:4265,1 +DA:4265,10 DA:4266,10 -DA:4267,10 +DA:4267,1 DA:4268,1 DA:4269,1 DA:4270,1 @@ -9652,16 +9835,16 @@ DA:4462,1 DA:4463,1 DA:4464,1 DA:4465,1 -DA:4466,1 +DA:4466,0 DA:4467,0 DA:4468,0 DA:4469,0 -DA:4470,0 +DA:4470,1 DA:4471,1 -DA:4472,1 +DA:4472,0 DA:4473,0 DA:4474,0 -DA:4475,0 +DA:4475,1 DA:4476,1 DA:4477,1 DA:4478,1 @@ -10417,33 +10600,33 @@ DA:5227,1 DA:5228,1 DA:5229,1 DA:5230,1 -DA:5231,1 +DA:5231,33 DA:5232,33 DA:5233,33 DA:5234,33 DA:5235,33 -DA:5236,33 +DA:5236,0 DA:5237,0 DA:5238,0 DA:5239,0 DA:5240,0 -DA:5241,0 -DA:5242,33 +DA:5241,33 +DA:5242,1 DA:5243,1 -DA:5244,1 +DA:5244,195 DA:5245,195 DA:5246,195 DA:5247,195 DA:5248,195 DA:5249,195 DA:5250,195 -DA:5251,195 +DA:5251,0 DA:5252,0 DA:5253,0 DA:5254,0 -DA:5255,0 +DA:5255,195 DA:5256,195 -DA:5257,195 +DA:5257,0 DA:5258,0 DA:5259,0 DA:5260,0 @@ -10455,14 +10638,14 @@ DA:5265,0 DA:5266,0 DA:5267,0 DA:5268,0 -DA:5269,0 +DA:5269,195 DA:5270,195 DA:5271,195 DA:5272,195 DA:5273,195 DA:5274,195 DA:5275,195 -DA:5276,195 +DA:5276,1 DA:5277,1 DA:5278,1 DA:5279,1 @@ -10706,8 +10889,7 @@ DA:5516,1 DA:5517,1 DA:5518,1 DA:5519,1 -DA:5520,1 -LF:5520 +LF:5519 LH:5189 BRDA:1,0,0,1 BRDA:17,1,0,8 @@ -10737,255 +10919,255 @@ BRDA:150,24,0,1 BRDA:245,25,0,170 BRDA:255,26,0,277 BRDA:257,27,0,2 -BRDA:296,28,0,200 -BRDA:305,29,0,200 -BRDA:457,30,0,49 -BRDA:471,31,0,0 -BRDA:501,32,0,114 -BRDA:516,33,0,0 -BRDA:546,34,0,9 -BRDA:577,35,0,35 -BRDA:605,36,0,46 -BRDA:630,37,0,32 -BRDA:661,38,0,15 -BRDA:672,39,0,15 -BRDA:702,40,0,1 -BRDA:714,41,0,1 -BRDA:718,42,0,1 -BRDA:722,43,0,1 -BRDA:726,44,0,3 -BRDA:742,45,0,1 -BRDA:758,46,0,1 -BRDA:771,47,0,1 -BRDA:785,48,0,1 -BRDA:795,49,0,1 -BRDA:805,50,0,2 -BRDA:825,51,0,1 -BRDA:851,52,0,1 -BRDA:875,53,0,4 -BRDA:882,54,0,1 -BRDA:908,55,0,1 -BRDA:954,56,0,1 -BRDA:963,57,0,1 -BRDA:973,58,0,2 -BRDA:991,59,0,1 -BRDA:1018,60,0,1 -BRDA:1042,61,0,1 -BRDA:1073,62,0,1 -BRDA:1104,63,0,1 -BRDA:1134,64,0,1 -BRDA:1162,65,0,1 -BRDA:1194,66,0,1 -BRDA:1224,67,0,1 -BRDA:1259,68,0,1 -BRDA:1284,69,0,1 -BRDA:1304,70,0,1 -BRDA:1322,71,0,1 -BRDA:1348,72,0,1 -BRDA:1374,73,0,1 -BRDA:1390,74,0,1 -BRDA:1409,75,0,1 -BRDA:1427,76,0,1 -BRDA:1445,77,0,1 -BRDA:1468,78,0,1 -BRDA:1489,79,0,1 -BRDA:1508,80,0,1 -BRDA:1530,81,0,1 -BRDA:1557,82,0,1 -BRDA:1563,83,0,1 -BRDA:1568,84,0,2 -BRDA:1591,85,0,1 -BRDA:1629,86,0,1 -BRDA:1649,87,0,1 -BRDA:1666,88,0,1 -BRDA:1688,89,0,1 -BRDA:1711,90,0,1 -BRDA:1744,91,0,1 -BRDA:1757,92,0,1 -BRDA:1771,93,0,1 -BRDA:1791,94,0,1 -BRDA:1818,95,0,1 -BRDA:1845,96,0,1 -BRDA:1871,97,0,1 -BRDA:1899,98,0,1 -BRDA:1927,99,0,1 -BRDA:1947,100,0,1 -BRDA:1976,101,0,1 -BRDA:2010,102,0,1 -BRDA:2043,103,0,1 -BRDA:2072,104,0,1 -BRDA:2110,105,0,1 -BRDA:2127,106,0,1 -BRDA:2142,107,0,1 -BRDA:2165,108,0,1 -BRDA:2188,109,0,1 -BRDA:2207,110,0,1 -BRDA:2229,111,0,1 -BRDA:2252,112,0,1 -BRDA:2275,113,0,1 -BRDA:2297,114,0,1 -BRDA:2317,115,0,1 -BRDA:2337,116,0,1 -BRDA:2357,117,0,1 -BRDA:2368,118,0,2 -BRDA:2374,119,0,2 -BRDA:2377,120,0,1 -BRDA:2387,121,0,1 -BRDA:2410,122,0,1 -BRDA:2430,123,0,1 -BRDA:2450,124,0,1 -BRDA:2470,125,0,1 -BRDA:2502,126,0,1 -BRDA:2526,127,0,1 -BRDA:2550,128,0,1 -BRDA:2574,129,0,1 -BRDA:2590,130,0,1 -BRDA:2608,131,0,1 -BRDA:2639,132,0,1 -BRDA:2671,133,0,1 -BRDA:2725,134,0,1 -BRDA:2742,135,0,1 -BRDA:2759,136,0,1 -BRDA:2779,137,0,1 -BRDA:2796,138,0,1 -BRDA:2809,139,0,1 -BRDA:2827,140,0,1 -BRDA:2845,141,0,1 -BRDA:2863,142,0,1 -BRDA:2877,143,0,1 -BRDA:2893,144,0,1 -BRDA:2907,145,0,1 -BRDA:2921,146,0,1 -BRDA:2935,147,0,1 -BRDA:2953,148,0,1 -BRDA:2971,149,0,1 -BRDA:2991,150,0,1 -BRDA:3014,151,0,1 -BRDA:3033,152,0,1 -BRDA:3049,153,0,1 -BRDA:3068,154,0,1 -BRDA:3101,155,0,1 -BRDA:3118,156,0,1 -BRDA:3135,157,0,1 -BRDA:3158,158,0,1 -BRDA:3175,159,0,1 -BRDA:3191,160,0,1 -BRDA:3208,161,0,1 -BRDA:3226,162,0,1 -BRDA:3242,163,0,1 -BRDA:3258,164,0,1 -BRDA:3276,165,0,1 -BRDA:3297,166,0,1 -BRDA:3314,167,0,1 -BRDA:3331,168,0,1 -BRDA:3349,169,0,1 -BRDA:3367,170,0,1 -BRDA:3382,171,0,1 -BRDA:3402,172,0,1 -BRDA:3422,173,0,1 -BRDA:3439,174,0,1 -BRDA:3457,175,0,1 -BRDA:3477,176,0,1 -BRDA:3511,177,0,1 -BRDA:3535,178,0,1 -BRDA:3559,179,0,1 -BRDA:3584,180,0,1 -BRDA:3608,181,0,1 -BRDA:3631,182,0,1 -BRDA:3645,183,0,1 -BRDA:3659,184,0,1 -BRDA:3698,185,0,1 -BRDA:3724,186,0,1 -BRDA:3741,187,0,1 -BRDA:3758,188,0,1 -BRDA:3778,189,0,1 -BRDA:3801,190,0,1 -BRDA:3846,191,0,1 -BRDA:3861,192,0,1 -BRDA:3877,193,0,1 -BRDA:3892,194,0,1 -BRDA:3906,195,0,1 -BRDA:3929,196,0,1 -BRDA:3966,197,0,1 -BRDA:3986,198,0,1 -BRDA:4006,199,0,1 -BRDA:4021,200,0,1 -BRDA:4036,201,0,1 -BRDA:4053,202,0,1 -BRDA:4072,203,0,1 -BRDA:4087,204,0,1 -BRDA:4105,205,0,1 -BRDA:4125,206,0,1 -BRDA:4145,207,0,1 -BRDA:4165,208,0,1 -BRDA:4183,209,0,1 -BRDA:4199,210,0,1 -BRDA:4222,211,0,1 -BRDA:4240,212,0,1 -BRDA:4262,213,0,1 -BRDA:4265,214,0,10 -BRDA:4286,215,0,1 -BRDA:4295,216,0,1 -BRDA:4303,217,0,1 -BRDA:4322,218,0,1 -BRDA:4331,219,0,1 -BRDA:4346,220,0,1 -BRDA:4358,221,0,1 -BRDA:4369,222,0,1 -BRDA:4379,223,0,1 -BRDA:4389,224,0,1 -BRDA:4399,225,0,1 -BRDA:4409,226,0,1 -BRDA:4423,227,0,1 -BRDA:4433,228,0,1 -BRDA:4442,229,0,1 -BRDA:4452,230,0,1 -BRDA:4464,231,0,1 -BRDA:4466,232,0,0 -BRDA:4472,233,0,0 -BRDA:4502,234,0,1 -BRDA:4514,235,0,1 -BRDA:4587,236,0,1 -BRDA:4606,237,0,1 -BRDA:4624,238,0,1 -BRDA:4642,239,0,1 -BRDA:4661,240,0,1 -BRDA:4679,241,0,1 -BRDA:4697,242,0,1 -BRDA:4715,243,0,1 -BRDA:4733,244,0,1 -BRDA:4751,245,0,1 -BRDA:4769,246,0,1 -BRDA:4787,247,0,1 -BRDA:4805,248,0,1 -BRDA:4823,249,0,1 -BRDA:4841,250,0,1 -BRDA:4864,251,0,1 -BRDA:4887,252,0,1 -BRDA:4911,253,0,1 -BRDA:4930,254,0,1 -BRDA:4950,255,0,1 -BRDA:4969,256,0,1 -BRDA:4988,257,0,1 -BRDA:5007,258,0,1 -BRDA:5026,259,0,1 -BRDA:5045,260,0,1 -BRDA:5065,261,0,1 -BRDA:5085,262,0,1 -BRDA:5103,263,0,1 -BRDA:5124,264,0,1 -BRDA:5142,265,0,1 -BRDA:5154,266,0,1 -BRDA:5174,267,0,1 -BRDA:5193,268,0,1 -BRDA:5215,269,0,1 -BRDA:5221,270,0,1 -BRDA:5231,271,0,33 -BRDA:5237,272,0,0 -BRDA:5244,273,0,195 -BRDA:5251,274,0,0 -BRDA:5257,275,0,0 -BRDA:5284,276,0,1 +BRDA:295,28,0,200 +BRDA:304,29,0,200 +BRDA:456,30,0,49 +BRDA:470,31,0,0 +BRDA:500,32,0,114 +BRDA:515,33,0,0 +BRDA:545,34,0,9 +BRDA:576,35,0,35 +BRDA:604,36,0,46 +BRDA:629,37,0,32 +BRDA:660,38,0,15 +BRDA:671,39,0,15 +BRDA:701,40,0,1 +BRDA:713,41,0,1 +BRDA:717,42,0,1 +BRDA:721,43,0,1 +BRDA:725,44,0,3 +BRDA:741,45,0,1 +BRDA:757,46,0,1 +BRDA:770,47,0,1 +BRDA:784,48,0,1 +BRDA:794,49,0,1 +BRDA:804,50,0,2 +BRDA:824,51,0,1 +BRDA:850,52,0,1 +BRDA:874,53,0,4 +BRDA:881,54,0,1 +BRDA:907,55,0,1 +BRDA:953,56,0,1 +BRDA:962,57,0,1 +BRDA:972,58,0,2 +BRDA:990,59,0,1 +BRDA:1017,60,0,1 +BRDA:1041,61,0,1 +BRDA:1072,62,0,1 +BRDA:1103,63,0,1 +BRDA:1133,64,0,1 +BRDA:1161,65,0,1 +BRDA:1193,66,0,1 +BRDA:1223,67,0,1 +BRDA:1258,68,0,1 +BRDA:1283,69,0,1 +BRDA:1303,70,0,1 +BRDA:1321,71,0,1 +BRDA:1347,72,0,1 +BRDA:1373,73,0,1 +BRDA:1389,74,0,1 +BRDA:1408,75,0,1 +BRDA:1426,76,0,1 +BRDA:1444,77,0,1 +BRDA:1467,78,0,1 +BRDA:1488,79,0,1 +BRDA:1507,80,0,1 +BRDA:1529,81,0,1 +BRDA:1556,82,0,1 +BRDA:1562,83,0,1 +BRDA:1567,84,0,2 +BRDA:1590,85,0,1 +BRDA:1628,86,0,1 +BRDA:1648,87,0,1 +BRDA:1665,88,0,1 +BRDA:1687,89,0,1 +BRDA:1710,90,0,1 +BRDA:1743,91,0,1 +BRDA:1756,92,0,1 +BRDA:1770,93,0,1 +BRDA:1790,94,0,1 +BRDA:1817,95,0,1 +BRDA:1844,96,0,1 +BRDA:1870,97,0,1 +BRDA:1898,98,0,1 +BRDA:1926,99,0,1 +BRDA:1946,100,0,1 +BRDA:1975,101,0,1 +BRDA:2009,102,0,1 +BRDA:2042,103,0,1 +BRDA:2071,104,0,1 +BRDA:2109,105,0,1 +BRDA:2126,106,0,1 +BRDA:2141,107,0,1 +BRDA:2164,108,0,1 +BRDA:2187,109,0,1 +BRDA:2206,110,0,1 +BRDA:2228,111,0,1 +BRDA:2251,112,0,1 +BRDA:2274,113,0,1 +BRDA:2296,114,0,1 +BRDA:2316,115,0,1 +BRDA:2336,116,0,1 +BRDA:2356,117,0,1 +BRDA:2367,118,0,2 +BRDA:2373,119,0,2 +BRDA:2376,120,0,1 +BRDA:2386,121,0,1 +BRDA:2409,122,0,1 +BRDA:2429,123,0,1 +BRDA:2449,124,0,1 +BRDA:2469,125,0,1 +BRDA:2501,126,0,1 +BRDA:2525,127,0,1 +BRDA:2549,128,0,1 +BRDA:2573,129,0,1 +BRDA:2589,130,0,1 +BRDA:2607,131,0,1 +BRDA:2638,132,0,1 +BRDA:2670,133,0,1 +BRDA:2724,134,0,1 +BRDA:2741,135,0,1 +BRDA:2758,136,0,1 +BRDA:2778,137,0,1 +BRDA:2795,138,0,1 +BRDA:2808,139,0,1 +BRDA:2826,140,0,1 +BRDA:2844,141,0,1 +BRDA:2862,142,0,1 +BRDA:2876,143,0,1 +BRDA:2892,144,0,1 +BRDA:2906,145,0,1 +BRDA:2920,146,0,1 +BRDA:2934,147,0,1 +BRDA:2952,148,0,1 +BRDA:2970,149,0,1 +BRDA:2990,150,0,1 +BRDA:3013,151,0,1 +BRDA:3032,152,0,1 +BRDA:3048,153,0,1 +BRDA:3067,154,0,1 +BRDA:3100,155,0,1 +BRDA:3117,156,0,1 +BRDA:3134,157,0,1 +BRDA:3157,158,0,1 +BRDA:3174,159,0,1 +BRDA:3190,160,0,1 +BRDA:3207,161,0,1 +BRDA:3225,162,0,1 +BRDA:3241,163,0,1 +BRDA:3257,164,0,1 +BRDA:3275,165,0,1 +BRDA:3296,166,0,1 +BRDA:3313,167,0,1 +BRDA:3330,168,0,1 +BRDA:3348,169,0,1 +BRDA:3366,170,0,1 +BRDA:3381,171,0,1 +BRDA:3401,172,0,1 +BRDA:3421,173,0,1 +BRDA:3438,174,0,1 +BRDA:3456,175,0,1 +BRDA:3476,176,0,1 +BRDA:3510,177,0,1 +BRDA:3534,178,0,1 +BRDA:3558,179,0,1 +BRDA:3583,180,0,1 +BRDA:3607,181,0,1 +BRDA:3630,182,0,1 +BRDA:3644,183,0,1 +BRDA:3658,184,0,1 +BRDA:3697,185,0,1 +BRDA:3723,186,0,1 +BRDA:3740,187,0,1 +BRDA:3757,188,0,1 +BRDA:3777,189,0,1 +BRDA:3800,190,0,1 +BRDA:3845,191,0,1 +BRDA:3860,192,0,1 +BRDA:3876,193,0,1 +BRDA:3891,194,0,1 +BRDA:3905,195,0,1 +BRDA:3928,196,0,1 +BRDA:3965,197,0,1 +BRDA:3985,198,0,1 +BRDA:4005,199,0,1 +BRDA:4020,200,0,1 +BRDA:4035,201,0,1 +BRDA:4052,202,0,1 +BRDA:4071,203,0,1 +BRDA:4086,204,0,1 +BRDA:4104,205,0,1 +BRDA:4124,206,0,1 +BRDA:4144,207,0,1 +BRDA:4164,208,0,1 +BRDA:4182,209,0,1 +BRDA:4198,210,0,1 +BRDA:4221,211,0,1 +BRDA:4239,212,0,1 +BRDA:4261,213,0,1 +BRDA:4264,214,0,10 +BRDA:4285,215,0,1 +BRDA:4294,216,0,1 +BRDA:4302,217,0,1 +BRDA:4321,218,0,1 +BRDA:4330,219,0,1 +BRDA:4345,220,0,1 +BRDA:4357,221,0,1 +BRDA:4368,222,0,1 +BRDA:4378,223,0,1 +BRDA:4388,224,0,1 +BRDA:4398,225,0,1 +BRDA:4408,226,0,1 +BRDA:4422,227,0,1 +BRDA:4432,228,0,1 +BRDA:4441,229,0,1 +BRDA:4451,230,0,1 +BRDA:4463,231,0,1 +BRDA:4465,232,0,0 +BRDA:4471,233,0,0 +BRDA:4501,234,0,1 +BRDA:4513,235,0,1 +BRDA:4586,236,0,1 +BRDA:4605,237,0,1 +BRDA:4623,238,0,1 +BRDA:4641,239,0,1 +BRDA:4660,240,0,1 +BRDA:4678,241,0,1 +BRDA:4696,242,0,1 +BRDA:4714,243,0,1 +BRDA:4732,244,0,1 +BRDA:4750,245,0,1 +BRDA:4768,246,0,1 +BRDA:4786,247,0,1 +BRDA:4804,248,0,1 +BRDA:4822,249,0,1 +BRDA:4840,250,0,1 +BRDA:4863,251,0,1 +BRDA:4886,252,0,1 +BRDA:4910,253,0,1 +BRDA:4929,254,0,1 +BRDA:4949,255,0,1 +BRDA:4968,256,0,1 +BRDA:4987,257,0,1 +BRDA:5006,258,0,1 +BRDA:5025,259,0,1 +BRDA:5044,260,0,1 +BRDA:5064,261,0,1 +BRDA:5084,262,0,1 +BRDA:5102,263,0,1 +BRDA:5123,264,0,1 +BRDA:5141,265,0,1 +BRDA:5153,266,0,1 +BRDA:5173,267,0,1 +BRDA:5192,268,0,1 +BRDA:5214,269,0,1 +BRDA:5220,270,0,1 +BRDA:5230,271,0,33 +BRDA:5236,272,0,0 +BRDA:5243,273,0,195 +BRDA:5250,274,0,0 +BRDA:5256,275,0,0 +BRDA:5283,276,0,1 BRF:277 BRH:264 end_of_record @@ -11699,13 +11881,13 @@ FN:204,isRangeLoading FN:224,waitForRangeToLoad FN:258,lockLoadAndCache FN:292,loadValuesFromRangeOrSheet -FN:340,cachePutArray -FN:379,cacheGetArray -FN:430,fixJSONdates -FN:448,cacheStatusName +FN:342,cachePutArray +FN:381,cacheGetArray +FN:432,fixJSONdates +FN:450,cacheStatusName FNF:18 FNH:15 -FNDA:31,log +FNDA:38,log FNDA:7,loadTableData FNDA:7,getValuesCached FNDA:3,isTimeToRunLongCacheExpiry @@ -11734,8 +11916,8 @@ DA:8,1 DA:9,1 DA:10,1 DA:11,1 -DA:12,31 -DA:13,31 +DA:12,38 +DA:13,38 DA:14,1 DA:15,1 DA:16,1 @@ -12022,7 +12204,7 @@ DA:296,4 DA:297,4 DA:298,4 DA:299,4 -DA:300,1 +DA:300,4 DA:301,1 DA:302,1 DA:303,1 @@ -12031,31 +12213,31 @@ DA:305,1 DA:306,1 DA:307,1 DA:308,1 -DA:309,0 +DA:309,1 DA:310,0 DA:311,0 -DA:312,1 +DA:312,0 DA:313,1 -DA:314,0 +DA:314,1 DA:315,0 -DA:316,1 +DA:316,0 DA:317,1 DA:318,1 DA:319,1 DA:320,1 -DA:321,3 +DA:321,1 DA:322,3 DA:323,3 DA:324,3 -DA:325,4 -DA:326,4 -DA:327,0 -DA:328,0 -DA:329,4 -DA:330,4 +DA:325,3 +DA:326,3 +DA:327,4 +DA:328,4 +DA:329,0 +DA:330,0 DA:331,4 -DA:332,1 -DA:333,1 +DA:332,4 +DA:333,4 DA:334,1 DA:335,1 DA:336,1 @@ -12063,8 +12245,8 @@ DA:337,1 DA:338,1 DA:339,1 DA:340,1 -DA:341,3 -DA:342,3 +DA:341,1 +DA:342,1 DA:343,3 DA:344,3 DA:345,3 @@ -12085,38 +12267,38 @@ DA:359,3 DA:360,3 DA:361,3 DA:362,3 -DA:363,0 -DA:364,0 -DA:365,3 -DA:366,3 +DA:363,3 +DA:364,3 +DA:365,0 +DA:366,0 DA:367,3 DA:368,3 DA:369,3 DA:370,3 DA:371,3 -DA:372,1 -DA:373,1 +DA:372,3 +DA:373,3 DA:374,1 DA:375,1 DA:376,1 DA:377,1 DA:378,1 DA:379,1 -DA:380,6 -DA:381,6 +DA:380,1 +DA:381,1 DA:382,6 DA:383,6 DA:384,6 -DA:385,3 -DA:386,3 +DA:385,6 +DA:386,6 DA:387,3 DA:388,3 DA:389,3 -DA:390,6 -DA:391,0 -DA:392,0 -DA:393,3 -DA:394,3 +DA:390,3 +DA:391,3 +DA:392,6 +DA:393,0 +DA:394,0 DA:395,3 DA:396,3 DA:397,3 @@ -12124,20 +12306,20 @@ DA:398,3 DA:399,3 DA:400,3 DA:401,3 -DA:402,0 -DA:403,0 +DA:402,3 +DA:403,3 DA:404,0 -DA:405,3 -DA:406,3 +DA:405,0 +DA:406,0 DA:407,3 DA:408,3 DA:409,3 -DA:410,0 -DA:411,0 +DA:410,3 +DA:411,3 DA:412,0 DA:413,0 -DA:414,3 -DA:415,3 +DA:414,0 +DA:415,0 DA:416,3 DA:417,3 DA:418,3 @@ -12146,44 +12328,46 @@ DA:420,3 DA:421,3 DA:422,3 DA:423,3 -DA:424,6 -DA:425,1 -DA:426,1 +DA:424,3 +DA:425,3 +DA:426,6 DA:427,1 DA:428,1 DA:429,1 DA:430,1 -DA:431,13 -DA:432,13 +DA:431,1 +DA:432,1 DA:433,13 -DA:434,85 -DA:435,685 -DA:436,685 -DA:437,72 -DA:438,72 -DA:439,685 -DA:440,85 -DA:441,13 -DA:442,1 -DA:443,1 +DA:434,13 +DA:435,13 +DA:436,85 +DA:437,685 +DA:438,685 +DA:439,72 +DA:440,72 +DA:441,685 +DA:442,85 +DA:443,13 DA:444,1 DA:445,1 DA:446,1 DA:447,1 DA:448,1 -DA:449,15 -DA:450,15 -DA:451,1 -DA:452,1 +DA:449,1 +DA:450,1 +DA:451,15 +DA:452,15 DA:453,1 DA:454,1 DA:455,1 DA:456,1 DA:457,1 -LF:457 -LH:382 +DA:458,1 +DA:459,1 +LF:459 +LH:384 BRDA:1,0,0,1 -BRDA:11,1,0,31 +BRDA:11,1,0,38 BRDA:39,2,0,7 BRDA:41,3,0,0 BRDA:54,4,0,7 @@ -12209,26 +12393,26 @@ BRDA:258,23,0,3 BRDA:263,24,0,0 BRDA:268,25,0,0 BRDA:292,26,0,4 -BRDA:299,27,0,1 -BRDA:308,28,0,0 -BRDA:308,29,0,0 -BRDA:313,30,0,0 -BRDA:321,31,0,3 -BRDA:326,32,0,0 -BRDA:340,33,0,3 -BRDA:346,34,0,0 -BRDA:362,35,0,0 -BRDA:379,36,0,6 -BRDA:384,37,0,3 -BRDA:390,38,0,0 -BRDA:393,39,0,3 -BRDA:401,40,0,0 -BRDA:410,41,0,0 -BRDA:430,42,0,13 -BRDA:433,43,0,85 -BRDA:434,44,0,685 -BRDA:436,45,0,72 -BRDA:448,46,0,15 +BRDA:300,27,0,1 +BRDA:309,28,0,0 +BRDA:309,29,0,0 +BRDA:314,30,0,0 +BRDA:322,31,0,3 +BRDA:328,32,0,0 +BRDA:342,33,0,3 +BRDA:348,34,0,0 +BRDA:364,35,0,0 +BRDA:381,36,0,6 +BRDA:386,37,0,3 +BRDA:392,38,0,0 +BRDA:395,39,0,3 +BRDA:403,40,0,0 +BRDA:412,41,0,0 +BRDA:432,42,0,13 +BRDA:435,43,0,85 +BRDA:436,44,0,685 +BRDA:438,45,0,72 +BRDA:450,46,0,15 BRF:47 BRH:32 end_of_record @@ -12237,190 +12421,190 @@ SF:Views.js FN:23,SelectTables FN:61,updateSelectedFields FN:92,getAggregateFunctionFieldsInGroupByCalculation -FN:122,join -FN:132,whereCondition -FN:160,resolveCondition -FN:182,applyLogicOperatorToRecordIds -FN:200,getRecordIDs -FN:239,getConditionValue -FN:266,getViewData -FN:303,toUpperCaseExceptQuoted -FN:336,parseForFunctions -FN:370,parseForParams -FN:404,functionBracketCounter -FN:421,checkIfWithinString -FN:440,groupBy -FN:468,groupByFields -FN:504,createGroupByKey -FN:522,having -FN:551,orderBy -FN:564,orderDataByListOfFields -FN:590,removeTempColumns -FN:611,limit -FN:627,sortByColumnASC -FN:636,sortFunction -FN:652,sortByColumnDESC -FN:661,sortFunction -FN:685,resolveFieldCondition -FN:730,resolveSubQuery -FN:757,resolveBindData -FN:779,isCorrelatedSubQuery -FN:812,getSubQueryTableSet -FN:833,isStringConstant -FN:842,extractStringConstant -FN:857,dateToMs -FN:889,getColumnTitles -FN:907,getComparisonFunction -FN:965,parmsToUpperCase -FN:977,likeCondition -FN:991,notLikeCondition -FN:1005,likeConditionMatch -FN:1020,inCondition -FN:1045,isCondition -FN:1054,existsCondition -FN:1071,CalculatedField -FN:1092,getData -FN:1106,evaluateCalculatedField -FN:1138,sqlServerCalcFields -FN:1180,createAssignmentStatments -FN:1214,sqlServerFunctions -FN:1241,CorrelatedSubQuery -FN:1259,select -FN:1286,replaceOuterFieldValueInCorrelatedWhere -FN:1305,traverseWhere -FN:1329,VirtualFields -FN:1341,add -FN:1353,getAllVirtualFields -FN:1363,expandWildcardFields -FN:1392,VirtualField -FN:1397,get fieldName -FN:1407,DerivedTable -FN:1425,setLeftField -FN:1435,setRightField -FN:1445,setLeftRecords -FN:1455,setIsOuterJoin -FN:1464,createTable -FN:1492,isDerivedTable -FN:1500,getTableData -FN:1510,getCombinedColumnTitles -FN:1528,convertToJs -FN:1578,getReferencedColumns -FN:1585,abs -FN:1594,adddate -FN:1603,case -FN:1611,ceiling -FN:1620,charindex -FN:1628,coalesce -FN:1638,concat -FN:1648,concat_ws -FN:1656,convert -FN:1663,curdate -FN:1671,datediff -FN:1679,day -FN:1688,floor -FN:1697,if -FN:1706,instr -FN:1714,last_day -FN:1722,left -FN:1731,len -FN:1740,length -FN:1750,locate -FN:1758,log -FN:1767,log10 -FN:1776,lower -FN:1785,ltrim -FN:1794,month -FN:1802,now -FN:1810,power -FN:1818,rand -FN:1826,replicate -FN:1835,reverse -FN:1844,right -FN:1853,round -FN:1862,rtrim -FN:1871,space -FN:1879,stuff -FN:1887,substr -FN:1896,substring -FN:1905,sqrt -FN:1914,trim -FN:1923,upper -FN:1932,year -FN:1944,parseFunctionArgs -FN:1963,charIndex -FN:1979,coalesce -FN:1996,concat -FN:2009,concat_ws -FN:2037,convert -FN:2065,adddate -FN:2082,datediff -FN:2101,last_day -FN:2119,inlineFuncDateInReturn -FN:2139,locate -FN:2155,caseStart -FN:2183,caseWhen -FN:2210,caseEnd -FN:2230,ConglomerateRecord -FN:2242,squish -FN:2271,calculateFunctionWithAggregates -FN:2295,createTempAggregateTable -FN:2313,createMapOfOldFieldToNewField -FN:2331,createCalculatedFieldObjectForTable -FN:2344,replaceFieldNames -FN:2359,aggregateColumn -FN:2409,aggregateColumnToNumeric -FN:2428,AggregateTrack -FN:2442,minCase -FN:2454,maxCase -FN:2466,sum -FN:2477,getAverage -FN:2486,count -FN:2505,addGroupConcatItem -FN:2518,getGroupConcat -FN:2541,TableFields -FN:2555,loadVirtualFields -FN:2592,sortPrimaryFields -FN:2611,indexTableField -FN:2638,findTableField -FN:2648,hasField -FN:2657,getFieldInfo -FN:2666,getTableInfo -FN:2676,getFieldColumn -FN:2686,getSelectFieldColumn -FN:2710,updateSelectFieldList -FN:2740,updateColumnAsSelected -FN:2773,updateCalculatedAsSelected -FN:2792,updateConstantAsSelected -FN:2812,updateCalculatedFieldAsAggregateCalculation -FN:2826,isFieldAlreadyInSelectList -FN:2836,getNextSelectColumnNumber -FN:2849,getSelectedTempColumnNumbers -FN:2861,getSelectFields -FN:2872,getColumnNames -FN:2884,getColumnTitles -FN:2906,updateDerivedTableVirtualFields -FN:2934,parseAstSelectField -FN:2964,getSelectCountModifiers -FN:2996,getConglomerateFieldCount -FN:3006,TableField -FN:3044,get tableColumn -FN:3053,setOriginalTable -FN:3063,setOriginalTableColumn -FN:3073,addAlias -FN:3091,setSelectColumn -FN:3102,setIsTempField -FN:3112,setAggregateFunction -FN:3122,setCalculatedAggregateFunction -FN:3132,setCalculatedFormula -FN:3142,setSubQueryAst -FN:3152,setColumnTitle -FN:3162,setColumnName -FN:3172,setDistinctSetting -FN:3182,setIsPrimaryTable -FN:3191,get isPrimaryTable -FN:3200,setTableInfo -FN:3210,getData -FN:3221,getAllExtendedAliasNames +FN:119,join +FN:129,whereCondition +FN:157,resolveCondition +FN:172,applyLogicOperatorToRecordIds +FN:190,getRecordIDs +FN:229,getConditionValue +FN:255,getViewData +FN:292,toUpperCaseExceptQuoted +FN:325,parseForFunctions +FN:359,parseForParams +FN:393,functionBracketCounter +FN:410,checkIfWithinString +FN:429,groupBy +FN:457,groupByFields +FN:493,createGroupByKey +FN:511,having +FN:540,orderBy +FN:553,orderDataByListOfFields +FN:579,removeTempColumns +FN:600,limit +FN:616,sortByColumnASC +FN:625,sortFunction +FN:641,sortByColumnDESC +FN:650,sortFunction +FN:674,resolveFieldCondition +FN:714,resolveSubQuery +FN:741,resolveBindData +FN:762,isCorrelatedSubQuery +FN:795,getSubQueryTableSet +FN:816,isStringConstant +FN:825,extractStringConstant +FN:840,dateToMs +FN:872,getColumnTitles +FN:890,getComparisonFunction +FN:948,parmsToUpperCase +FN:960,likeCondition +FN:974,notLikeCondition +FN:988,likeConditionMatch +FN:1003,inCondition +FN:1028,isCondition +FN:1037,existsCondition +FN:1054,CalculatedField +FN:1075,getData +FN:1089,evaluateCalculatedField +FN:1121,sqlServerCalcFields +FN:1163,createAssignmentStatments +FN:1197,sqlServerFunctions +FN:1224,CorrelatedSubQuery +FN:1242,select +FN:1269,replaceOuterFieldValueInCorrelatedWhere +FN:1288,traverseWhere +FN:1312,VirtualFields +FN:1324,add +FN:1336,getAllVirtualFields +FN:1346,expandWildcardFields +FN:1370,VirtualField +FN:1375,get fieldName +FN:1385,DerivedTable +FN:1403,setLeftField +FN:1413,setRightField +FN:1423,setLeftRecords +FN:1433,setIsOuterJoin +FN:1442,createTable +FN:1471,isDerivedTable +FN:1479,getTableData +FN:1489,getCombinedColumnTitles +FN:1507,convertToJs +FN:1553,getReferencedColumns +FN:1560,abs +FN:1569,adddate +FN:1578,case +FN:1586,ceiling +FN:1595,charindex +FN:1603,coalesce +FN:1613,concat +FN:1623,concat_ws +FN:1631,convert +FN:1638,curdate +FN:1646,datediff +FN:1654,day +FN:1663,floor +FN:1672,if +FN:1681,instr +FN:1689,last_day +FN:1697,left +FN:1706,len +FN:1715,length +FN:1725,locate +FN:1733,log +FN:1742,log10 +FN:1751,lower +FN:1760,ltrim +FN:1769,month +FN:1777,now +FN:1785,power +FN:1793,rand +FN:1801,replicate +FN:1810,reverse +FN:1819,right +FN:1828,round +FN:1837,rtrim +FN:1846,space +FN:1854,stuff +FN:1862,substr +FN:1871,substring +FN:1880,sqrt +FN:1889,trim +FN:1898,upper +FN:1907,year +FN:1919,parseFunctionArgs +FN:1938,charIndex +FN:1954,coalesce +FN:1971,concat +FN:1984,concat_ws +FN:2012,convert +FN:2040,adddate +FN:2057,datediff +FN:2076,last_day +FN:2093,inlineFuncDateInReturn +FN:2113,locate +FN:2129,caseStart +FN:2157,caseWhen +FN:2186,caseEnd +FN:2206,ConglomerateRecord +FN:2218,squish +FN:2247,calculateFunctionWithAggregates +FN:2270,createTempAggregateTable +FN:2287,createMapOfOldFieldToNewField +FN:2304,createCalculatedFieldObjectForTable +FN:2318,replaceFieldNames +FN:2331,aggregateColumn +FN:2380,aggregateColumnToNumeric +FN:2399,AggregateTrack +FN:2412,minCase +FN:2423,maxCase +FN:2434,sum +FN:2444,getAverage +FN:2452,count +FN:2470,addGroupConcatItem +FN:2483,getGroupConcat +FN:2506,TableFields +FN:2520,loadVirtualFields +FN:2558,sortPrimaryFields +FN:2577,indexTableField +FN:2605,findTableField +FN:2615,hasField +FN:2624,getFieldInfo +FN:2633,getTableInfo +FN:2643,getFieldColumn +FN:2653,getSelectFieldColumn +FN:2677,updateSelectFieldList +FN:2706,updateColumnAsSelected +FN:2739,updateCalculatedAsSelected +FN:2757,updateConstantAsSelected +FN:2776,updateCalculatedFieldAsAggregateCalculation +FN:2789,isFieldAlreadyInSelectList +FN:2799,getNextSelectColumnNumber +FN:2812,getSelectedTempColumnNumbers +FN:2824,getSelectFields +FN:2835,getColumnNames +FN:2847,getColumnTitles +FN:2868,updateDerivedTableVirtualFields +FN:2896,parseAstSelectField +FN:2926,getSelectCountModifiers +FN:2958,getConglomerateFieldCount +FN:2968,TableField +FN:3006,get tableColumn +FN:3015,setOriginalTable +FN:3025,setOriginalTableColumn +FN:3035,addAlias +FN:3053,setSelectColumn +FN:3064,setIsTempField +FN:3074,setAggregateFunction +FN:3083,setCalculatedAggregateFunction +FN:3093,setCalculatedFormula +FN:3103,setSubQueryAst +FN:3113,setColumnTitle +FN:3123,setColumnName +FN:3133,setDistinctSetting +FN:3143,setIsPrimaryTable +FN:3152,get isPrimaryTable +FN:3161,setTableInfo +FN:3171,getData +FN:3182,getAllExtendedAliasNames FNF:187 FNH:185 FNDA:377,SelectTables @@ -12711,427 +12895,427 @@ DA:98,36 DA:99,5 DA:100,5 DA:101,5 -DA:102,35 -DA:103,35 -DA:104,35 +DA:102,5 +DA:103,4 +DA:104,4 DA:105,4 -DA:106,4 -DA:107,4 -DA:108,1 -DA:109,1 -DA:110,4 -DA:111,35 -DA:112,5 -DA:113,36 -DA:114,36 -DA:115,36 +DA:106,1 +DA:107,1 +DA:108,4 +DA:109,5 +DA:110,36 +DA:111,36 +DA:112,36 +DA:113,1 +DA:114,1 +DA:115,1 DA:116,1 DA:117,1 DA:118,1 DA:119,1 -DA:120,1 -DA:121,1 -DA:122,1 -DA:123,373 -DA:124,373 -DA:125,373 +DA:120,373 +DA:121,373 +DA:122,373 +DA:123,1 +DA:124,1 +DA:125,1 DA:126,1 DA:127,1 DA:128,1 DA:129,1 -DA:130,1 -DA:131,1 -DA:132,1 -DA:133,369 -DA:134,369 -DA:135,369 -DA:136,223 -DA:137,223 -DA:138,146 -DA:139,1 -DA:140,1 -DA:141,1 -DA:142,369 -DA:143,369 -DA:144,369 -DA:145,330 -DA:146,330 -DA:147,39 -DA:148,39 -DA:149,39 -DA:150,363 -DA:151,363 -DA:152,369 +DA:130,369 +DA:131,369 +DA:132,369 +DA:133,223 +DA:134,223 +DA:135,146 +DA:136,1 +DA:137,1 +DA:138,1 +DA:139,369 +DA:140,369 +DA:141,369 +DA:142,330 +DA:143,330 +DA:144,39 +DA:145,39 +DA:146,39 +DA:147,363 +DA:148,363 +DA:149,369 +DA:150,1 +DA:151,1 +DA:152,1 DA:153,1 DA:154,1 DA:155,1 DA:156,1 DA:157,1 -DA:158,1 -DA:159,1 -DA:160,1 +DA:158,376 +DA:159,425 +DA:160,376 DA:161,376 DA:162,376 DA:163,376 -DA:164,425 -DA:165,418 -DA:166,418 -DA:167,7 -DA:168,7 -DA:169,7 -DA:170,425 -DA:171,370 -DA:172,370 -DA:173,376 -DA:174,1 -DA:175,1 -DA:176,1 -DA:177,1 -DA:178,1 -DA:179,1 -DA:180,1 -DA:181,1 -DA:182,1 +DA:164,1 +DA:165,1 +DA:166,1 +DA:167,1 +DA:168,1 +DA:169,1 +DA:170,1 +DA:171,1 +DA:172,1 +DA:173,370 +DA:174,370 +DA:175,370 +DA:176,35 +DA:177,35 +DA:178,335 +DA:179,335 +DA:180,335 +DA:181,370 +DA:182,370 DA:183,370 -DA:184,370 -DA:185,370 -DA:186,35 -DA:187,35 -DA:188,370 -DA:189,335 -DA:190,335 -DA:191,370 -DA:192,370 -DA:193,370 -DA:194,1 -DA:195,1 -DA:196,1 -DA:197,1 -DA:198,1 -DA:199,1 -DA:200,1 +DA:184,1 +DA:185,1 +DA:186,1 +DA:187,1 +DA:188,1 +DA:189,1 +DA:190,1 +DA:191,418 +DA:192,418 +DA:193,418 +DA:194,418 +DA:195,418 +DA:196,418 +DA:197,418 +DA:198,418 +DA:199,418 +DA:200,418 DA:201,418 DA:202,418 -DA:203,418 -DA:204,418 -DA:205,418 -DA:206,418 -DA:207,418 -DA:208,418 -DA:209,418 -DA:210,418 -DA:211,418 -DA:212,418 +DA:203,3978 +DA:204,3978 +DA:205,3978 +DA:206,3978 +DA:207,416 +DA:208,416 +DA:209,416 +DA:210,3975 +DA:211,3975 +DA:212,3978 DA:213,3978 -DA:214,3978 -DA:215,3978 -DA:216,3978 -DA:217,416 -DA:218,416 -DA:219,416 -DA:220,3975 -DA:221,3975 -DA:222,3978 -DA:223,3978 -DA:224,412 -DA:225,412 -DA:226,418 +DA:214,412 +DA:215,412 +DA:216,418 +DA:217,1 +DA:218,1 +DA:219,1 +DA:220,1 +DA:221,1 +DA:222,1 +DA:223,1 +DA:224,1 +DA:225,1 +DA:226,1 DA:227,1 DA:228,1 DA:229,1 -DA:230,1 -DA:231,1 -DA:232,1 -DA:233,1 -DA:234,1 -DA:235,1 -DA:236,1 -DA:237,1 -DA:238,1 -DA:239,1 -DA:240,7955 -DA:241,7955 -DA:242,2658 -DA:243,2658 -DA:244,5297 -DA:245,142 -DA:246,10 -DA:247,10 -DA:248,132 -DA:249,132 -DA:250,132 -DA:251,142 -DA:252,5155 -DA:253,93 -DA:254,93 -DA:255,93 -DA:256,93 -DA:257,7952 -DA:258,7952 -DA:259,7955 -DA:260,1 -DA:261,1 -DA:262,1 -DA:263,1 -DA:264,1 -DA:265,1 -DA:266,1 -DA:267,363 -DA:268,363 -DA:269,363 -DA:270,363 -DA:271,363 -DA:272,363 -DA:273,1954 -DA:274,1954 -DA:275,1954 -DA:276,8152 -DA:277,8152 -DA:278,1377 -DA:279,21 -DA:280,21 -DA:281,21 -DA:282,1356 -DA:283,1356 -DA:284,1356 -DA:285,1338 -DA:286,1338 -DA:287,1346 -DA:288,1346 -DA:289,8152 -DA:290,1944 -DA:291,1944 -DA:292,1944 -DA:293,353 -DA:294,353 -DA:295,363 -DA:296,1 -DA:297,1 -DA:298,1 -DA:299,1 -DA:300,1 -DA:301,1 -DA:302,1 -DA:303,1 -DA:304,272 -DA:305,272 -DA:306,272 -DA:307,272 -DA:308,9196 +DA:230,7955 +DA:231,7955 +DA:232,2658 +DA:233,2658 +DA:234,5297 +DA:235,142 +DA:236,142 +DA:237,132 +DA:238,132 +DA:239,142 +DA:240,5155 +DA:241,93 +DA:242,93 +DA:243,93 +DA:244,93 +DA:245,93 +DA:246,7952 +DA:247,7952 +DA:248,7955 +DA:249,1 +DA:250,1 +DA:251,1 +DA:252,1 +DA:253,1 +DA:254,1 +DA:255,1 +DA:256,363 +DA:257,363 +DA:258,363 +DA:259,363 +DA:260,363 +DA:261,363 +DA:262,1954 +DA:263,1954 +DA:264,1954 +DA:265,8152 +DA:266,8152 +DA:267,1377 +DA:268,21 +DA:269,21 +DA:270,21 +DA:271,1356 +DA:272,1356 +DA:273,1356 +DA:274,1338 +DA:275,1338 +DA:276,1346 +DA:277,1346 +DA:278,8152 +DA:279,1944 +DA:280,1944 +DA:281,1944 +DA:282,353 +DA:283,353 +DA:284,363 +DA:285,1 +DA:286,1 +DA:287,1 +DA:288,1 +DA:289,1 +DA:290,1 +DA:291,1 +DA:292,1 +DA:293,272 +DA:294,272 +DA:295,272 +DA:296,272 +DA:297,9196 +DA:298,9196 +DA:299,9196 +DA:300,8527 +DA:301,138 +DA:302,138 +DA:303,8527 +DA:304,8527 +DA:305,8527 +DA:306,669 +DA:307,137 +DA:308,137 DA:309,9196 DA:310,9196 -DA:311,8527 -DA:312,138 -DA:313,138 -DA:314,8527 -DA:315,8527 -DA:316,8527 -DA:317,669 -DA:318,137 -DA:319,137 -DA:320,9196 -DA:321,9196 -DA:322,9196 -DA:323,272 -DA:324,272 -DA:325,272 -DA:326,1 -DA:327,1 -DA:328,1 -DA:329,1 -DA:330,1 -DA:331,1 -DA:332,1 -DA:333,1 -DA:334,1 -DA:335,1 -DA:336,1 -DA:337,8374 -DA:338,8374 -DA:339,8374 -DA:340,8374 -DA:341,8374 -DA:342,8374 +DA:311,9196 +DA:312,272 +DA:313,272 +DA:314,272 +DA:315,1 +DA:316,1 +DA:317,1 +DA:318,1 +DA:319,1 +DA:320,1 +DA:321,1 +DA:322,1 +DA:323,1 +DA:324,1 +DA:325,1 +DA:326,8374 +DA:327,8374 +DA:328,8374 +DA:329,8374 +DA:330,8374 +DA:331,8374 +DA:332,343 +DA:333,343 +DA:334,343 +DA:335,343 +DA:336,343 +DA:337,6975 +DA:338,6975 +DA:339,6975 +DA:340,6975 +DA:341,6975 +DA:342,343 DA:343,343 DA:344,343 DA:345,343 -DA:346,343 +DA:346,6975 DA:347,343 -DA:348,6975 -DA:349,6975 -DA:350,6975 -DA:351,6975 -DA:352,6975 -DA:353,343 -DA:354,343 -DA:355,343 -DA:356,343 -DA:357,6975 -DA:358,343 -DA:359,8031 -DA:360,8031 -DA:361,8374 -DA:362,1 -DA:363,1 -DA:364,1 -DA:365,1 -DA:366,1 -DA:367,1 -DA:368,1 -DA:369,1 -DA:370,1 -DA:371,168 -DA:372,168 -DA:373,168 -DA:374,168 -DA:375,168 -DA:376,168 +DA:348,8031 +DA:349,8031 +DA:350,8374 +DA:351,1 +DA:352,1 +DA:353,1 +DA:354,1 +DA:355,1 +DA:356,1 +DA:357,1 +DA:358,1 +DA:359,1 +DA:360,168 +DA:361,168 +DA:362,168 +DA:363,168 +DA:364,168 +DA:365,168 +DA:366,3311 +DA:367,3311 +DA:368,3311 +DA:369,129 +DA:370,129 +DA:371,129 +DA:372,3182 +DA:373,3182 +DA:374,3182 +DA:375,3311 +DA:376,3311 DA:377,3311 -DA:378,3311 -DA:379,3311 -DA:380,129 -DA:381,129 -DA:382,129 -DA:383,3182 -DA:384,3182 -DA:385,3182 -DA:386,3311 -DA:387,3311 -DA:388,3311 -DA:389,168 -DA:390,168 -DA:391,168 -DA:392,168 -DA:393,168 -DA:394,168 -DA:395,168 -DA:396,1 -DA:397,1 -DA:398,1 -DA:399,1 -DA:400,1 +DA:378,168 +DA:379,168 +DA:380,168 +DA:381,168 +DA:382,168 +DA:383,168 +DA:384,168 +DA:385,1 +DA:386,1 +DA:387,1 +DA:388,1 +DA:389,1 +DA:390,1 +DA:391,1 +DA:392,1 +DA:393,1 +DA:394,3182 +DA:395,3182 +DA:396,3137 +DA:397,3137 +DA:398,3092 +DA:399,3092 +DA:400,3182 DA:401,1 DA:402,1 DA:403,1 DA:404,1 -DA:405,3182 -DA:406,3182 -DA:407,3137 -DA:408,3137 -DA:409,3092 -DA:410,3092 -DA:411,3182 -DA:412,1 -DA:413,1 -DA:414,1 -DA:415,1 -DA:416,1 -DA:417,1 -DA:418,1 -DA:419,1 -DA:420,1 +DA:405,1 +DA:406,1 +DA:407,1 +DA:408,1 +DA:409,1 +DA:410,1 +DA:411,3311 +DA:412,3021 +DA:413,3021 +DA:414,3021 +DA:415,290 +DA:416,72 +DA:417,72 +DA:418,3167 +DA:419,3167 +DA:420,3311 DA:421,1 -DA:422,3311 -DA:423,3021 -DA:424,3021 -DA:425,3021 -DA:426,290 -DA:427,72 -DA:428,72 -DA:429,3167 -DA:430,3167 -DA:431,3311 -DA:432,1 -DA:433,1 -DA:434,1 -DA:435,1 -DA:436,1 -DA:437,1 -DA:438,1 -DA:439,1 -DA:440,1 -DA:441,353 -DA:442,353 -DA:443,353 -DA:444,34 -DA:445,34 -DA:446,34 -DA:447,2 -DA:448,2 -DA:449,34 -DA:450,319 -DA:451,319 -DA:452,319 -DA:453,113 -DA:454,113 -DA:455,113 -DA:456,113 -DA:457,113 -DA:458,353 -DA:459,353 -DA:460,353 -DA:461,1 -DA:462,1 -DA:463,1 -DA:464,1 -DA:465,1 -DA:466,1 -DA:467,1 -DA:468,1 -DA:469,34 -DA:470,34 -DA:471,33 -DA:472,33 -DA:473,33 -DA:474,33 -DA:475,33 -DA:476,33 -DA:477,33 -DA:478,33 -DA:479,33 -DA:480,33 -DA:481,34 -DA:482,326 -DA:483,326 -DA:484,145 -DA:485,145 -DA:486,145 -DA:487,145 -DA:488,145 -DA:489,326 -DA:490,326 -DA:491,33 -DA:492,33 -DA:493,33 -DA:494,33 -DA:495,33 -DA:496,34 -DA:497,1 -DA:498,1 -DA:499,1 -DA:500,1 -DA:501,1 -DA:502,1 -DA:503,1 +DA:422,1 +DA:423,1 +DA:424,1 +DA:425,1 +DA:426,1 +DA:427,1 +DA:428,1 +DA:429,1 +DA:430,353 +DA:431,353 +DA:432,353 +DA:433,34 +DA:434,34 +DA:435,34 +DA:436,2 +DA:437,2 +DA:438,34 +DA:439,319 +DA:440,319 +DA:441,319 +DA:442,113 +DA:443,113 +DA:444,113 +DA:445,113 +DA:446,113 +DA:447,353 +DA:448,353 +DA:449,353 +DA:450,1 +DA:451,1 +DA:452,1 +DA:453,1 +DA:454,1 +DA:455,1 +DA:456,1 +DA:457,1 +DA:458,34 +DA:459,34 +DA:460,33 +DA:461,33 +DA:462,33 +DA:463,33 +DA:464,33 +DA:465,33 +DA:466,33 +DA:467,33 +DA:468,33 +DA:469,33 +DA:470,34 +DA:471,326 +DA:472,326 +DA:473,145 +DA:474,145 +DA:475,145 +DA:476,145 +DA:477,145 +DA:478,326 +DA:479,326 +DA:480,33 +DA:481,33 +DA:482,33 +DA:483,33 +DA:484,33 +DA:485,34 +DA:486,1 +DA:487,1 +DA:488,1 +DA:489,1 +DA:490,1 +DA:491,1 +DA:492,1 +DA:493,1 +DA:494,359 +DA:495,359 +DA:496,359 +DA:497,432 +DA:498,432 +DA:499,432 +DA:500,432 +DA:501,359 +DA:502,359 +DA:503,359 DA:504,1 -DA:505,359 -DA:506,359 -DA:507,359 -DA:508,432 -DA:509,432 -DA:510,432 -DA:511,432 -DA:512,359 -DA:513,359 -DA:514,359 -DA:515,1 -DA:516,1 -DA:517,1 -DA:518,1 -DA:519,1 -DA:520,1 -DA:521,1 -DA:522,1 +DA:505,1 +DA:506,1 +DA:507,1 +DA:508,1 +DA:509,1 +DA:510,1 +DA:511,1 +DA:512,2 +DA:513,2 +DA:514,2 +DA:515,2 +DA:516,2 +DA:517,2 +DA:518,2 +DA:519,2 +DA:520,2 +DA:521,2 +DA:522,2 DA:523,2 DA:524,2 DA:525,2 @@ -13142,356 +13326,356 @@ DA:529,2 DA:530,2 DA:531,2 DA:532,2 -DA:533,2 -DA:534,2 -DA:535,2 -DA:536,2 -DA:537,2 -DA:538,2 -DA:539,2 -DA:540,2 -DA:541,2 -DA:542,2 -DA:543,2 -DA:544,1 -DA:545,1 +DA:533,1 +DA:534,1 +DA:535,1 +DA:536,1 +DA:537,1 +DA:538,1 +DA:539,1 +DA:540,1 +DA:541,353 +DA:542,353 +DA:543,28 +DA:544,28 +DA:545,353 DA:546,1 DA:547,1 DA:548,1 DA:549,1 DA:550,1 DA:551,1 -DA:552,353 -DA:553,353 -DA:554,28 -DA:555,28 -DA:556,353 -DA:557,1 -DA:558,1 -DA:559,1 -DA:560,1 -DA:561,1 -DA:562,1 -DA:563,1 -DA:564,1 -DA:565,61 -DA:566,69 -DA:567,69 +DA:552,1 +DA:553,1 +DA:554,61 +DA:555,69 +DA:556,69 +DA:557,69 +DA:558,0 +DA:559,0 +DA:560,69 +DA:561,69 +DA:562,5 +DA:563,5 +DA:564,64 +DA:565,64 +DA:566,64 +DA:567,64 DA:568,69 -DA:569,0 -DA:570,0 -DA:571,69 -DA:572,69 -DA:573,5 -DA:574,5 -DA:575,64 -DA:576,64 -DA:577,64 -DA:578,64 -DA:579,69 -DA:580,61 -DA:581,61 -DA:582,61 -DA:583,1 -DA:584,1 -DA:585,1 -DA:586,1 -DA:587,1 -DA:588,1 -DA:589,1 -DA:590,1 -DA:591,353 +DA:569,61 +DA:570,61 +DA:571,61 +DA:572,1 +DA:573,1 +DA:574,1 +DA:575,1 +DA:576,1 +DA:577,1 +DA:578,1 +DA:579,1 +DA:580,353 +DA:581,353 +DA:582,353 +DA:583,353 +DA:584,10 +DA:585,353 +DA:586,67 +DA:587,84 +DA:588,84 +DA:589,67 +DA:590,10 +DA:591,10 DA:592,353 -DA:593,353 -DA:594,353 -DA:595,10 -DA:596,353 -DA:597,67 -DA:598,84 -DA:599,84 -DA:600,67 -DA:601,10 -DA:602,10 -DA:603,353 -DA:604,1 -DA:605,1 -DA:606,1 -DA:607,1 -DA:608,1 +DA:593,1 +DA:594,1 +DA:595,1 +DA:596,1 +DA:597,1 +DA:598,1 +DA:599,1 +DA:600,1 +DA:601,353 +DA:602,2 +DA:603,2 +DA:604,2 +DA:605,2 +DA:606,353 +DA:607,353 +DA:608,353 DA:609,1 DA:610,1 DA:611,1 -DA:612,353 -DA:613,2 -DA:614,2 -DA:615,2 -DA:616,2 -DA:617,353 -DA:618,353 -DA:619,353 -DA:620,1 -DA:621,1 -DA:622,1 -DA:623,1 -DA:624,1 -DA:625,1 -DA:626,1 -DA:627,1 -DA:628,64 -DA:629,64 -DA:630,64 +DA:612,1 +DA:613,1 +DA:614,1 +DA:615,1 +DA:616,1 +DA:617,64 +DA:618,64 +DA:619,64 +DA:620,64 +DA:621,64 +DA:622,64 +DA:623,64 +DA:624,64 +DA:625,64 +DA:626,1006 +DA:627,218 +DA:628,218 +DA:629,1006 +DA:630,1006 DA:631,64 DA:632,64 DA:633,64 -DA:634,64 -DA:635,64 -DA:636,64 -DA:637,1006 -DA:638,218 -DA:639,218 -DA:640,1006 -DA:641,1006 -DA:642,64 -DA:643,64 -DA:644,64 -DA:645,1 -DA:646,1 -DA:647,1 -DA:648,1 -DA:649,1 -DA:650,1 -DA:651,1 -DA:652,1 -DA:653,5 -DA:654,5 -DA:655,5 +DA:634,1 +DA:635,1 +DA:636,1 +DA:637,1 +DA:638,1 +DA:639,1 +DA:640,1 +DA:641,1 +DA:642,5 +DA:643,5 +DA:644,5 +DA:645,5 +DA:646,5 +DA:647,5 +DA:648,5 +DA:649,5 +DA:650,5 +DA:651,104 +DA:652,26 +DA:653,26 +DA:654,104 +DA:655,104 DA:656,5 DA:657,5 DA:658,5 -DA:659,5 -DA:660,5 -DA:661,5 -DA:662,104 -DA:663,26 -DA:664,26 -DA:665,104 -DA:666,104 -DA:667,5 -DA:668,5 -DA:669,5 +DA:659,1 +DA:660,1 +DA:661,1 +DA:662,1 +DA:663,1 +DA:664,1 +DA:665,1 +DA:666,1 +DA:667,1 +DA:668,1 +DA:669,1 DA:670,1 DA:671,1 DA:672,1 DA:673,1 DA:674,1 -DA:675,1 -DA:676,1 -DA:677,1 -DA:678,1 -DA:679,1 -DA:680,1 -DA:681,1 -DA:682,1 -DA:683,1 -DA:684,1 -DA:685,1 -DA:686,836 -DA:687,836 -DA:688,836 -DA:689,836 -DA:690,836 -DA:691,836 -DA:692,836 -DA:693,836 -DA:694,836 -DA:695,836 -DA:696,836 -DA:697,836 -DA:698,30 -DA:699,30 -DA:700,30 -DA:701,806 -DA:702,806 -DA:703,806 -DA:704,467 -DA:705,169 -DA:706,169 -DA:707,169 -DA:708,298 -DA:709,21 -DA:710,21 -DA:711,21 -DA:712,277 -DA:713,260 -DA:714,260 -DA:715,260 -DA:716,260 -DA:717,17 -DA:718,17 -DA:719,17 -DA:720,17 -DA:721,834 -DA:722,834 -DA:723,836 -DA:724,1 -DA:725,1 -DA:726,1 -DA:727,1 -DA:728,1 -DA:729,1 -DA:730,1 -DA:731,30 +DA:675,836 +DA:676,836 +DA:677,836 +DA:678,836 +DA:679,836 +DA:680,836 +DA:681,836 +DA:682,30 +DA:683,30 +DA:684,30 +DA:685,806 +DA:686,806 +DA:687,806 +DA:688,467 +DA:689,169 +DA:690,169 +DA:691,169 +DA:692,298 +DA:693,21 +DA:694,21 +DA:695,21 +DA:696,277 +DA:697,260 +DA:698,260 +DA:699,260 +DA:700,260 +DA:701,17 +DA:702,17 +DA:703,17 +DA:704,17 +DA:705,834 +DA:706,834 +DA:707,836 +DA:708,1 +DA:709,1 +DA:710,1 +DA:711,1 +DA:712,1 +DA:713,1 +DA:714,1 +DA:715,30 +DA:716,30 +DA:717,30 +DA:718,30 +DA:719,30 +DA:720,30 +DA:721,10 +DA:722,10 +DA:723,20 +DA:724,20 +DA:725,20 +DA:726,20 +DA:727,20 +DA:728,20 +DA:729,20 +DA:730,20 +DA:731,20 DA:732,30 DA:733,30 DA:734,30 -DA:735,30 -DA:736,30 -DA:737,10 -DA:738,10 -DA:739,20 -DA:740,20 -DA:741,20 -DA:742,20 -DA:743,20 -DA:744,20 -DA:745,20 -DA:746,20 -DA:747,20 -DA:748,30 -DA:749,30 -DA:750,30 +DA:735,1 +DA:736,1 +DA:737,1 +DA:738,1 +DA:739,1 +DA:740,1 +DA:741,1 +DA:742,169 +DA:743,169 +DA:744,169 +DA:745,169 +DA:746,167 +DA:747,167 +DA:748,2 +DA:749,169 +DA:750,1 DA:751,1 DA:752,1 -DA:753,1 +DA:753,169 DA:754,1 DA:755,1 DA:756,1 DA:757,1 -DA:758,169 -DA:759,169 -DA:760,169 -DA:761,2 +DA:758,1 +DA:759,1 +DA:760,1 +DA:761,1 DA:762,1 -DA:763,1 -DA:764,1 -DA:765,1 -DA:766,1 -DA:767,2 -DA:768,167 -DA:769,167 -DA:770,169 -DA:771,1 -DA:772,1 -DA:773,1 -DA:774,1 -DA:775,1 -DA:776,1 -DA:777,1 -DA:778,1 -DA:779,1 -DA:780,30 -DA:781,30 -DA:782,30 -DA:783,30 -DA:784,30 -DA:785,19 -DA:786,19 +DA:763,30 +DA:764,30 +DA:765,30 +DA:766,30 +DA:767,30 +DA:768,19 +DA:769,19 +DA:770,30 +DA:771,30 +DA:772,30 +DA:773,13 +DA:774,13 +DA:775,13 +DA:776,13 +DA:777,3 +DA:778,3 +DA:779,13 +DA:780,13 +DA:781,13 +DA:782,10 +DA:783,10 +DA:784,13 +DA:785,20 +DA:786,20 DA:787,30 -DA:788,30 -DA:789,30 -DA:790,13 -DA:791,13 -DA:792,13 -DA:793,13 -DA:794,3 -DA:795,3 -DA:796,3 -DA:797,13 -DA:798,13 -DA:799,10 -DA:800,10 -DA:801,13 -DA:802,20 -DA:803,20 -DA:804,30 -DA:805,1 -DA:806,1 -DA:807,1 -DA:808,1 -DA:809,1 +DA:788,1 +DA:789,1 +DA:790,1 +DA:791,1 +DA:792,1 +DA:793,1 +DA:794,1 +DA:795,1 +DA:796,20 +DA:797,20 +DA:798,20 +DA:799,20 +DA:800,21 +DA:801,21 +DA:802,21 +DA:803,21 +DA:804,0 +DA:805,0 +DA:806,21 +DA:807,20 +DA:808,20 +DA:809,20 DA:810,1 DA:811,1 DA:812,1 -DA:813,20 -DA:814,20 -DA:815,20 -DA:816,20 -DA:817,21 -DA:818,21 -DA:819,21 -DA:820,21 -DA:821,0 -DA:822,0 -DA:823,21 -DA:824,20 -DA:825,20 -DA:826,20 -DA:827,1 -DA:828,1 -DA:829,1 -DA:830,1 -DA:831,1 -DA:832,1 -DA:833,1 -DA:834,806 -DA:835,806 +DA:813,1 +DA:814,1 +DA:815,1 +DA:816,1 +DA:817,806 +DA:818,806 +DA:819,1 +DA:820,1 +DA:821,1 +DA:822,1 +DA:823,1 +DA:824,1 +DA:825,1 +DA:826,339 +DA:827,339 +DA:828,47 +DA:829,339 +DA:830,339 +DA:831,0 +DA:832,0 +DA:833,339 +DA:834,1 +DA:835,1 DA:836,1 DA:837,1 DA:838,1 DA:839,1 DA:840,1 -DA:841,1 -DA:842,1 -DA:843,339 -DA:844,339 -DA:845,47 -DA:846,339 -DA:847,339 -DA:848,0 -DA:849,0 -DA:850,339 -DA:851,1 -DA:852,1 -DA:853,1 -DA:854,1 -DA:855,1 -DA:856,1 -DA:857,1 -DA:858,832 -DA:859,832 -DA:860,832 -DA:861,832 -DA:862,832 -DA:863,464 -DA:864,464 -DA:865,464 -DA:866,464 -DA:867,368 -DA:868,367 -DA:869,367 -DA:870,366 -DA:871,366 -DA:872,366 -DA:873,366 -DA:874,367 -DA:875,367 +DA:841,832 +DA:842,832 +DA:843,832 +DA:844,832 +DA:845,832 +DA:846,464 +DA:847,464 +DA:848,464 +DA:849,464 +DA:850,368 +DA:851,367 +DA:852,367 +DA:853,366 +DA:854,366 +DA:855,366 +DA:856,366 +DA:857,367 +DA:858,367 +DA:859,1 +DA:860,1 +DA:861,367 +DA:862,831 +DA:863,831 +DA:864,831 +DA:865,832 +DA:866,1 +DA:867,1 +DA:868,1 +DA:869,1 +DA:870,1 +DA:871,1 +DA:872,1 +DA:873,186 +DA:874,186 +DA:875,1 DA:876,1 DA:877,1 -DA:878,367 -DA:879,831 -DA:880,831 -DA:881,831 -DA:882,832 +DA:878,1 +DA:879,1 +DA:880,1 +DA:881,1 +DA:882,1 DA:883,1 DA:884,1 DA:885,1 @@ -13499,164 +13683,164 @@ DA:886,1 DA:887,1 DA:888,1 DA:889,1 -DA:890,186 -DA:891,186 -DA:892,1 -DA:893,1 -DA:894,1 -DA:895,1 -DA:896,1 -DA:897,1 -DA:898,1 -DA:899,1 -DA:900,1 -DA:901,1 -DA:902,1 -DA:903,1 -DA:904,1 -DA:905,1 -DA:906,1 -DA:907,1 +DA:890,1 +DA:891,416 +DA:892,416 +DA:893,416 +DA:894,416 +DA:895,416 +DA:896,21 +DA:897,416 +DA:898,416 +DA:899,13 +DA:900,416 +DA:901,416 +DA:902,15 +DA:903,416 +DA:904,416 +DA:905,20 +DA:906,416 +DA:907,416 DA:908,416 DA:909,416 DA:910,416 DA:911,416 DA:912,416 -DA:913,21 -DA:914,416 +DA:913,416 +DA:914,12 DA:915,416 -DA:916,13 -DA:917,416 +DA:916,416 +DA:917,2 DA:918,416 -DA:919,15 -DA:920,416 +DA:919,416 +DA:920,21 DA:921,416 -DA:922,20 -DA:923,416 +DA:922,416 +DA:923,4 DA:924,416 DA:925,416 -DA:926,416 +DA:926,1 DA:927,416 DA:928,416 -DA:929,416 +DA:929,1 DA:930,416 -DA:931,12 -DA:932,416 +DA:931,416 +DA:932,1 DA:933,416 -DA:934,2 -DA:935,416 +DA:934,416 +DA:935,1 DA:936,416 -DA:937,21 -DA:938,416 +DA:937,416 +DA:938,1 DA:939,416 -DA:940,4 -DA:941,416 -DA:942,416 +DA:940,416 +DA:941,1 +DA:942,1 DA:943,1 -DA:944,416 -DA:945,416 +DA:944,1 +DA:945,1 DA:946,1 -DA:947,416 -DA:948,416 -DA:949,1 -DA:950,416 -DA:951,416 -DA:952,1 -DA:953,416 -DA:954,416 +DA:947,1 +DA:948,1 +DA:949,3975 +DA:950,3975 +DA:951,3975 +DA:952,3975 +DA:953,1 +DA:954,1 DA:955,1 -DA:956,416 -DA:957,416 +DA:956,1 +DA:957,1 DA:958,1 DA:959,1 DA:960,1 -DA:961,1 -DA:962,1 -DA:963,1 -DA:964,1 -DA:965,1 -DA:966,3975 -DA:967,3975 -DA:968,3975 -DA:969,3975 +DA:961,98 +DA:962,2 +DA:963,2 +DA:964,96 +DA:965,96 +DA:966,98 +DA:967,1 +DA:968,1 +DA:969,1 DA:970,1 DA:971,1 DA:972,1 DA:973,1 DA:974,1 -DA:975,1 +DA:975,19 DA:976,1 DA:977,1 -DA:978,98 -DA:979,2 -DA:980,2 -DA:981,96 -DA:982,96 -DA:983,98 +DA:978,18 +DA:979,18 +DA:980,19 +DA:981,1 +DA:982,1 +DA:983,1 DA:984,1 DA:985,1 DA:986,1 DA:987,1 DA:988,1 -DA:989,1 -DA:990,1 -DA:991,1 -DA:992,19 -DA:993,1 -DA:994,1 -DA:995,18 -DA:996,18 -DA:997,19 +DA:989,114 +DA:990,114 +DA:991,114 +DA:992,114 +DA:993,114 +DA:994,114 +DA:995,114 +DA:996,1 +DA:997,1 DA:998,1 DA:999,1 DA:1000,1 DA:1001,1 DA:1002,1 DA:1003,1 -DA:1004,1 -DA:1005,1 -DA:1006,114 -DA:1007,114 -DA:1008,114 -DA:1009,114 -DA:1010,114 -DA:1011,114 -DA:1012,114 -DA:1013,1 -DA:1014,1 -DA:1015,1 -DA:1016,1 -DA:1017,1 -DA:1018,1 -DA:1019,1 -DA:1020,1 -DA:1021,235 -DA:1022,235 -DA:1023,216 -DA:1024,216 -DA:1025,19 -DA:1026,19 -DA:1027,19 -DA:1028,19 -DA:1029,19 -DA:1030,235 -DA:1031,235 -DA:1032,235 -DA:1033,30 -DA:1034,30 -DA:1035,235 -DA:1036,235 -DA:1037,235 -DA:1038,1 -DA:1039,1 +DA:1004,235 +DA:1005,235 +DA:1006,216 +DA:1007,216 +DA:1008,19 +DA:1009,19 +DA:1010,19 +DA:1011,19 +DA:1012,19 +DA:1013,235 +DA:1014,235 +DA:1015,235 +DA:1016,30 +DA:1017,30 +DA:1018,235 +DA:1019,235 +DA:1020,235 +DA:1021,1 +DA:1022,1 +DA:1023,1 +DA:1024,1 +DA:1025,1 +DA:1026,1 +DA:1027,1 +DA:1028,1 +DA:1029,10 +DA:1030,10 +DA:1031,1 +DA:1032,1 +DA:1033,1 +DA:1034,1 +DA:1035,1 +DA:1036,1 +DA:1037,1 +DA:1038,14 +DA:1039,14 DA:1040,1 DA:1041,1 DA:1042,1 DA:1043,1 DA:1044,1 DA:1045,1 -DA:1046,10 -DA:1047,10 +DA:1046,1 +DA:1047,1 DA:1048,1 DA:1049,1 DA:1050,1 @@ -13664,185 +13848,185 @@ DA:1051,1 DA:1052,1 DA:1053,1 DA:1054,1 -DA:1055,14 -DA:1056,14 -DA:1057,1 -DA:1058,1 -DA:1059,1 -DA:1060,1 -DA:1061,1 -DA:1062,1 -DA:1063,1 -DA:1064,1 -DA:1065,1 -DA:1066,1 -DA:1067,1 +DA:1055,864 +DA:1056,864 +DA:1057,864 +DA:1058,864 +DA:1059,864 +DA:1060,864 +DA:1061,864 +DA:1062,864 +DA:1063,864 +DA:1064,864 +DA:1065,864 +DA:1066,864 +DA:1067,864 DA:1068,1 DA:1069,1 DA:1070,1 DA:1071,1 -DA:1072,864 -DA:1073,864 -DA:1074,864 -DA:1075,864 -DA:1076,864 -DA:1077,864 -DA:1078,864 -DA:1079,864 -DA:1080,864 -DA:1081,864 -DA:1082,864 -DA:1083,864 -DA:1084,864 +DA:1072,1 +DA:1073,1 +DA:1074,1 +DA:1075,1 +DA:1076,114 +DA:1077,114 +DA:1078,114 +DA:1079,114 +DA:1080,114 +DA:1081,114 +DA:1082,1 +DA:1083,1 +DA:1084,1 DA:1085,1 DA:1086,1 DA:1087,1 DA:1088,1 DA:1089,1 -DA:1090,1 -DA:1091,1 -DA:1092,1 -DA:1093,114 -DA:1094,114 -DA:1095,114 -DA:1096,114 -DA:1097,114 -DA:1098,114 -DA:1099,1 -DA:1100,1 -DA:1101,1 -DA:1102,1 -DA:1103,1 -DA:1104,1 -DA:1105,1 -DA:1106,1 -DA:1107,1568 -DA:1108,1568 -DA:1109,1568 +DA:1090,1568 +DA:1091,1568 +DA:1092,1568 +DA:1093,1568 +DA:1094,94 +DA:1095,94 +DA:1096,1474 +DA:1097,1474 +DA:1098,1474 +DA:1099,1474 +DA:1100,1474 +DA:1101,1568 +DA:1102,13 +DA:1103,13 +DA:1104,13 +DA:1105,0 +DA:1106,0 +DA:1107,0 +DA:1108,1461 +DA:1109,1461 DA:1110,1568 -DA:1111,94 -DA:1112,94 -DA:1113,1474 -DA:1114,1474 -DA:1115,1474 -DA:1116,1474 -DA:1117,1474 -DA:1118,1568 -DA:1119,13 -DA:1120,13 -DA:1121,13 -DA:1122,0 -DA:1123,0 -DA:1124,0 -DA:1125,1461 -DA:1126,1461 -DA:1127,1568 -DA:1128,1 -DA:1129,1 -DA:1130,1 -DA:1131,1 -DA:1132,1 -DA:1133,1 -DA:1134,1 -DA:1135,1 -DA:1136,1 -DA:1137,1 -DA:1138,1 -DA:1139,1474 -DA:1140,1474 +DA:1111,1 +DA:1112,1 +DA:1113,1 +DA:1114,1 +DA:1115,1 +DA:1116,1 +DA:1117,1 +DA:1118,1 +DA:1119,1 +DA:1120,1 +DA:1121,1 +DA:1122,1474 +DA:1123,1474 +DA:1124,1474 +DA:1125,1474 +DA:1126,1474 +DA:1127,1474 +DA:1128,9830 +DA:1129,9830 +DA:1130,9830 +DA:1131,9830 +DA:1132,9830 +DA:1133,7269 +DA:1134,7269 +DA:1135,2561 +DA:1136,66 +DA:1137,66 +DA:1138,9830 +DA:1139,9830 +DA:1140,9830 DA:1141,1474 DA:1142,1474 DA:1143,1474 DA:1144,1474 -DA:1145,9830 -DA:1146,9830 -DA:1147,9830 -DA:1148,9830 -DA:1149,9830 -DA:1150,7269 -DA:1151,7269 -DA:1152,2561 -DA:1153,66 -DA:1154,66 -DA:1155,9830 -DA:1156,9830 -DA:1157,9830 -DA:1158,1474 -DA:1159,1474 -DA:1160,1474 -DA:1161,1474 -DA:1162,1474 +DA:1145,1474 +DA:1146,1 +DA:1147,1 +DA:1148,1 +DA:1149,1 +DA:1150,1 +DA:1151,1 +DA:1152,1 +DA:1153,1 +DA:1154,1 +DA:1155,1 +DA:1156,1 +DA:1157,1 +DA:1158,1 +DA:1159,1 +DA:1160,1 +DA:1161,1 +DA:1162,1 DA:1163,1 -DA:1164,1 -DA:1165,1 -DA:1166,1 -DA:1167,1 -DA:1168,1 -DA:1169,1 -DA:1170,1 -DA:1171,1 -DA:1172,1 -DA:1173,1 -DA:1174,1 -DA:1175,1 -DA:1176,1 -DA:1177,1 -DA:1178,1 -DA:1179,1 -DA:1180,1 -DA:1181,9830 -DA:1182,9830 -DA:1183,9830 -DA:1184,19900 -DA:1185,1287 -DA:1186,1287 -DA:1187,18613 -DA:1188,19900 -DA:1189,8543 -DA:1190,8463 -DA:1191,8463 -DA:1192,8463 -DA:1193,8543 -DA:1194,10070 -DA:1195,10070 -DA:1196,10070 -DA:1197,1691 -DA:1198,1691 -DA:1199,1691 -DA:1200,10070 -DA:1201,10070 -DA:1202,19900 -DA:1203,9830 -DA:1204,9830 -DA:1205,9830 -DA:1206,1 -DA:1207,1 -DA:1208,1 -DA:1209,1 -DA:1210,1 +DA:1164,9830 +DA:1165,9830 +DA:1166,9830 +DA:1167,19900 +DA:1168,1287 +DA:1169,1287 +DA:1170,18613 +DA:1171,19900 +DA:1172,8543 +DA:1173,8463 +DA:1174,8463 +DA:1175,8463 +DA:1176,8543 +DA:1177,10070 +DA:1178,10070 +DA:1179,10070 +DA:1180,1691 +DA:1181,1691 +DA:1182,1691 +DA:1183,10070 +DA:1184,10070 +DA:1185,19900 +DA:1186,9830 +DA:1187,9830 +DA:1188,9830 +DA:1189,1 +DA:1190,1 +DA:1191,1 +DA:1192,1 +DA:1193,1 +DA:1194,1 +DA:1195,1 +DA:1196,1 +DA:1197,1 +DA:1198,1474 +DA:1199,1474 +DA:1200,1474 +DA:1201,1474 +DA:1202,177 +DA:1203,177 +DA:1204,177 +DA:1205,177 +DA:1206,177 +DA:1207,177 +DA:1208,177 +DA:1209,177 +DA:1210,1474 DA:1211,1 DA:1212,1 DA:1213,1 DA:1214,1 -DA:1215,1474 -DA:1216,1474 -DA:1217,1474 -DA:1218,1474 -DA:1219,177 -DA:1220,177 -DA:1221,177 -DA:1222,177 -DA:1223,177 -DA:1224,177 -DA:1225,177 -DA:1226,177 -DA:1227,1474 -DA:1228,1 -DA:1229,1 -DA:1230,1 -DA:1231,1 -DA:1232,1 -DA:1233,1 +DA:1215,1 +DA:1216,1 +DA:1217,1 +DA:1218,1 +DA:1219,1 +DA:1220,1 +DA:1221,1 +DA:1222,1 +DA:1223,1 +DA:1224,1 +DA:1225,373 +DA:1226,373 +DA:1227,373 +DA:1228,373 +DA:1229,373 +DA:1230,373 +DA:1231,373 +DA:1232,373 +DA:1233,373 DA:1234,1 DA:1235,1 DA:1236,1 @@ -13851,34 +14035,34 @@ DA:1238,1 DA:1239,1 DA:1240,1 DA:1241,1 -DA:1242,373 -DA:1243,373 -DA:1244,373 -DA:1245,373 -DA:1246,373 -DA:1247,373 -DA:1248,373 -DA:1249,373 -DA:1250,373 -DA:1251,1 -DA:1252,1 -DA:1253,1 -DA:1254,1 -DA:1255,1 -DA:1256,1 -DA:1257,1 -DA:1258,1 -DA:1259,1 +DA:1242,1 +DA:1243,114 +DA:1244,114 +DA:1245,114 +DA:1246,114 +DA:1247,114 +DA:1248,114 +DA:1249,114 +DA:1250,114 +DA:1251,114 +DA:1252,114 +DA:1253,114 +DA:1254,114 +DA:1255,114 +DA:1256,114 +DA:1257,114 +DA:1258,114 +DA:1259,114 DA:1260,114 -DA:1261,114 -DA:1262,114 -DA:1263,114 -DA:1264,114 -DA:1265,114 -DA:1266,114 -DA:1267,114 -DA:1268,114 -DA:1269,114 +DA:1261,1 +DA:1262,1 +DA:1263,1 +DA:1264,1 +DA:1265,1 +DA:1266,1 +DA:1267,1 +DA:1268,1 +DA:1269,1 DA:1270,114 DA:1271,114 DA:1272,114 @@ -13886,9 +14070,9 @@ DA:1273,114 DA:1274,114 DA:1275,114 DA:1276,114 -DA:1277,114 -DA:1278,1 -DA:1279,1 +DA:1277,10 +DA:1278,10 +DA:1279,114 DA:1280,1 DA:1281,1 DA:1282,1 @@ -13896,300 +14080,300 @@ DA:1283,1 DA:1284,1 DA:1285,1 DA:1286,1 -DA:1287,114 -DA:1288,114 +DA:1287,1 +DA:1288,1 DA:1289,114 -DA:1290,114 -DA:1291,114 -DA:1292,114 -DA:1293,114 -DA:1294,10 -DA:1295,10 -DA:1296,114 -DA:1297,1 -DA:1298,1 -DA:1299,1 -DA:1300,1 -DA:1301,1 -DA:1302,1 -DA:1303,1 -DA:1304,1 +DA:1290,124 +DA:1291,124 +DA:1292,124 +DA:1293,90 +DA:1294,90 +DA:1295,124 +DA:1296,124 +DA:1297,24 +DA:1298,24 +DA:1299,124 +DA:1300,0 +DA:1301,0 +DA:1302,0 +DA:1303,124 +DA:1304,114 DA:1305,1 -DA:1306,114 -DA:1307,124 -DA:1308,124 -DA:1309,124 -DA:1310,90 -DA:1311,90 -DA:1312,124 -DA:1313,124 -DA:1314,24 -DA:1315,24 -DA:1316,124 -DA:1317,0 -DA:1318,0 -DA:1319,0 -DA:1320,124 -DA:1321,114 +DA:1306,1 +DA:1307,1 +DA:1308,1 +DA:1309,1 +DA:1310,1 +DA:1311,1 +DA:1312,1 +DA:1313,1370 +DA:1314,1370 +DA:1315,1370 +DA:1316,1370 +DA:1317,1370 +DA:1318,1 +DA:1319,1 +DA:1320,1 +DA:1321,1 DA:1322,1 DA:1323,1 DA:1324,1 -DA:1325,1 +DA:1325,5524 DA:1326,1 DA:1327,1 -DA:1328,1 -DA:1329,1 -DA:1330,1370 -DA:1331,1370 -DA:1332,1370 -DA:1333,1370 -DA:1334,1370 +DA:1328,5523 +DA:1329,5523 +DA:1330,5524 +DA:1331,1 +DA:1332,1 +DA:1333,1 +DA:1334,1 DA:1335,1 -DA:1336,1 -DA:1337,1 -DA:1338,1 -DA:1339,1 -DA:1340,1 -DA:1341,1 -DA:1342,5524 -DA:1343,1 -DA:1344,1 -DA:1345,5523 -DA:1346,5523 -DA:1347,5524 -DA:1348,1 -DA:1349,1 -DA:1350,1 -DA:1351,1 -DA:1352,1 -DA:1353,1 -DA:1354,62 -DA:1355,62 -DA:1356,1 -DA:1357,1 -DA:1358,1 -DA:1359,1 +DA:1336,1 +DA:1337,62 +DA:1338,62 +DA:1339,1 +DA:1340,1 +DA:1341,1 +DA:1342,1 +DA:1343,1 +DA:1344,1 +DA:1345,1 +DA:1346,1 +DA:1347,369 +DA:1348,692 +DA:1349,106 +DA:1350,106 +DA:1351,106 +DA:1352,106 +DA:1353,106 +DA:1354,106 +DA:1355,106 +DA:1356,692 +DA:1357,692 +DA:1358,692 +DA:1359,369 DA:1360,1 DA:1361,1 DA:1362,1 DA:1363,1 -DA:1364,369 -DA:1365,692 -DA:1366,106 -DA:1367,106 -DA:1368,106 -DA:1369,106 -DA:1370,106 -DA:1371,621 -DA:1372,621 -DA:1373,621 -DA:1374,106 -DA:1375,106 -DA:1376,106 -DA:1377,106 -DA:1378,692 -DA:1379,369 -DA:1380,369 -DA:1381,369 +DA:1364,1 +DA:1365,1 +DA:1366,1 +DA:1367,1 +DA:1368,1 +DA:1369,1 +DA:1370,1 +DA:1371,5524 +DA:1372,5524 +DA:1373,5524 +DA:1374,1 +DA:1375,1 +DA:1376,12650 +DA:1377,12650 +DA:1378,1 +DA:1379,1 +DA:1380,1 +DA:1381,1 DA:1382,1 DA:1383,1 DA:1384,1 DA:1385,1 -DA:1386,1 -DA:1387,1 -DA:1388,1 -DA:1389,1 -DA:1390,1 -DA:1391,1 -DA:1392,1 -DA:1393,5524 -DA:1394,5524 -DA:1395,5524 -DA:1396,1 +DA:1386,111 +DA:1387,111 +DA:1388,111 +DA:1389,111 +DA:1390,111 +DA:1391,111 +DA:1392,111 +DA:1393,111 +DA:1394,111 +DA:1395,111 +DA:1396,111 DA:1397,1 -DA:1398,12650 -DA:1399,12650 +DA:1398,1 +DA:1399,1 DA:1400,1 DA:1401,1 DA:1402,1 DA:1403,1 -DA:1404,1 -DA:1405,1 -DA:1406,1 +DA:1404,67 +DA:1405,67 +DA:1406,67 DA:1407,1 -DA:1408,111 -DA:1409,111 -DA:1410,111 -DA:1411,111 -DA:1412,111 -DA:1413,111 -DA:1414,111 -DA:1415,111 -DA:1416,111 -DA:1417,111 -DA:1418,111 +DA:1408,1 +DA:1409,1 +DA:1410,1 +DA:1411,1 +DA:1412,1 +DA:1413,1 +DA:1414,67 +DA:1415,67 +DA:1416,67 +DA:1417,1 +DA:1418,1 DA:1419,1 DA:1420,1 DA:1421,1 DA:1422,1 DA:1423,1 -DA:1424,1 -DA:1425,1 +DA:1424,67 +DA:1425,67 DA:1426,67 -DA:1427,67 -DA:1428,67 +DA:1427,1 +DA:1428,1 DA:1429,1 DA:1430,1 DA:1431,1 DA:1432,1 DA:1433,1 -DA:1434,1 -DA:1435,1 +DA:1434,67 +DA:1435,67 DA:1436,67 -DA:1437,67 -DA:1438,67 +DA:1437,1 +DA:1438,1 DA:1439,1 DA:1440,1 DA:1441,1 DA:1442,1 -DA:1443,1 -DA:1444,1 -DA:1445,1 +DA:1443,67 +DA:1444,67 +DA:1445,67 DA:1446,67 DA:1447,67 -DA:1448,67 -DA:1449,1 -DA:1450,1 -DA:1451,1 -DA:1452,1 -DA:1453,1 -DA:1454,1 -DA:1455,1 -DA:1456,67 -DA:1457,67 -DA:1458,67 -DA:1459,1 -DA:1460,1 -DA:1461,1 -DA:1462,1 -DA:1463,1 -DA:1464,1 +DA:1448,610 +DA:1449,70 +DA:1450,70 +DA:1451,540 +DA:1452,610 +DA:1453,97 +DA:1454,97 +DA:1455,443 +DA:1456,443 +DA:1457,483 +DA:1458,483 +DA:1459,443 +DA:1460,610 +DA:1461,67 +DA:1462,67 +DA:1463,67 +DA:1464,67 DA:1465,67 -DA:1466,67 -DA:1467,67 -DA:1468,67 -DA:1469,67 -DA:1470,67 -DA:1471,610 -DA:1472,540 -DA:1473,540 -DA:1474,443 -DA:1475,443 -DA:1476,443 -DA:1477,483 -DA:1478,483 -DA:1479,443 -DA:1480,540 -DA:1481,610 -DA:1482,67 -DA:1483,67 -DA:1484,67 -DA:1485,67 -DA:1486,67 +DA:1466,1 +DA:1467,1 +DA:1468,1 +DA:1469,1 +DA:1470,1 +DA:1471,1 +DA:1472,150 +DA:1473,150 +DA:1474,1 +DA:1475,1 +DA:1476,1 +DA:1477,1 +DA:1478,1 +DA:1479,1 +DA:1480,63 +DA:1481,63 +DA:1482,1 +DA:1483,1 +DA:1484,1 +DA:1485,1 +DA:1486,1 DA:1487,1 DA:1488,1 DA:1489,1 -DA:1490,1 -DA:1491,1 -DA:1492,1 -DA:1493,150 -DA:1494,150 +DA:1490,67 +DA:1491,67 +DA:1492,67 +DA:1493,67 +DA:1494,1 DA:1495,1 DA:1496,1 DA:1497,1 DA:1498,1 DA:1499,1 DA:1500,1 -DA:1501,63 -DA:1502,63 +DA:1501,1 +DA:1502,1 DA:1503,1 DA:1504,1 DA:1505,1 DA:1506,1 DA:1507,1 -DA:1508,1 -DA:1509,1 -DA:1510,1 -DA:1511,67 -DA:1512,67 -DA:1513,67 -DA:1514,67 -DA:1515,1 -DA:1516,1 -DA:1517,1 -DA:1518,1 -DA:1519,1 -DA:1520,1 -DA:1521,1 -DA:1522,1 -DA:1523,1 -DA:1524,1 -DA:1525,1 -DA:1526,1 -DA:1527,1 -DA:1528,1 -DA:1529,190 -DA:1530,190 -DA:1531,190 -DA:1532,190 -DA:1533,190 -DA:1534,190 -DA:1535,190 -DA:1536,190 -DA:1537,190 -DA:1538,190 -DA:1539,190 -DA:1540,190 -DA:1541,190 -DA:1542,190 -DA:1543,190 -DA:1544,190 +DA:1508,190 +DA:1509,190 +DA:1510,190 +DA:1511,190 +DA:1512,190 +DA:1513,190 +DA:1514,190 +DA:1515,190 +DA:1516,190 +DA:1517,190 +DA:1518,190 +DA:1519,190 +DA:1520,190 +DA:1521,190 +DA:1522,190 +DA:1523,190 +DA:1524,190 +DA:1525,190 +DA:1526,7790 +DA:1527,7790 +DA:1528,7790 +DA:1529,7790 +DA:1530,7790 +DA:1531,210 +DA:1532,210 +DA:1533,210 +DA:1534,210 +DA:1535,210 +DA:1536,210 +DA:1537,210 +DA:1538,210 +DA:1539,0 +DA:1540,0 +DA:1541,210 +DA:1542,7790 +DA:1543,7790 +DA:1544,7790 DA:1545,190 DA:1546,190 -DA:1547,7790 -DA:1548,7790 -DA:1549,7790 -DA:1550,7790 -DA:1551,7790 -DA:1552,210 -DA:1553,210 -DA:1554,210 -DA:1555,210 -DA:1556,210 -DA:1557,210 -DA:1558,210 -DA:1559,210 -DA:1560,0 -DA:1561,0 -DA:1562,210 -DA:1563,210 -DA:1564,210 -DA:1565,210 -DA:1566,210 -DA:1567,7790 -DA:1568,7790 -DA:1569,7790 -DA:1570,190 -DA:1571,190 -DA:1572,190 +DA:1547,190 +DA:1548,1 +DA:1549,1 +DA:1550,1 +DA:1551,1 +DA:1552,1 +DA:1553,1 +DA:1554,13 +DA:1555,13 +DA:1556,1 +DA:1557,1 +DA:1558,1 +DA:1559,1 +DA:1560,1 +DA:1561,1 +DA:1562,1 +DA:1563,1 +DA:1564,1 +DA:1565,1 +DA:1566,1 +DA:1567,1 +DA:1568,1 +DA:1569,1 +DA:1570,7 +DA:1571,7 +DA:1572,1 DA:1573,1 DA:1574,1 DA:1575,1 DA:1576,1 DA:1577,1 DA:1578,1 -DA:1579,13 -DA:1580,13 +DA:1579,90 +DA:1580,90 DA:1581,1 DA:1582,1 DA:1583,1 @@ -14204,17 +14388,17 @@ DA:1591,1 DA:1592,1 DA:1593,1 DA:1594,1 -DA:1595,7 -DA:1596,7 -DA:1597,1 +DA:1595,1 +DA:1596,6 +DA:1597,6 DA:1598,1 DA:1599,1 DA:1600,1 DA:1601,1 DA:1602,1 DA:1603,1 -DA:1604,90 -DA:1605,90 +DA:1604,1 +DA:1605,1 DA:1606,1 DA:1607,1 DA:1608,1 @@ -14223,33 +14407,33 @@ DA:1610,1 DA:1611,1 DA:1612,1 DA:1613,1 -DA:1614,1 -DA:1615,1 +DA:1614,2 +DA:1615,2 DA:1616,1 DA:1617,1 DA:1618,1 DA:1619,1 DA:1620,1 -DA:1621,6 -DA:1622,6 +DA:1621,1 +DA:1622,1 DA:1623,1 -DA:1624,1 -DA:1625,1 +DA:1624,5 +DA:1625,5 DA:1626,1 DA:1627,1 DA:1628,1 DA:1629,1 DA:1630,1 DA:1631,1 -DA:1632,1 -DA:1633,1 +DA:1632,15 +DA:1633,15 DA:1634,1 DA:1635,1 DA:1636,1 DA:1637,1 DA:1638,1 -DA:1639,2 -DA:1640,2 +DA:1639,0 +DA:1640,0 DA:1641,1 DA:1642,1 DA:1643,1 @@ -14258,23 +14442,23 @@ DA:1645,1 DA:1646,1 DA:1647,1 DA:1648,1 -DA:1649,5 -DA:1650,5 +DA:1649,1 +DA:1650,1 DA:1651,1 DA:1652,1 DA:1653,1 DA:1654,1 -DA:1655,1 -DA:1656,1 -DA:1657,15 -DA:1658,15 +DA:1655,8 +DA:1656,8 +DA:1657,8 +DA:1658,1 DA:1659,1 DA:1660,1 DA:1661,1 DA:1662,1 DA:1663,1 -DA:1664,0 -DA:1665,0 +DA:1664,1 +DA:1665,1 DA:1666,1 DA:1667,1 DA:1668,1 @@ -14282,16 +14466,16 @@ DA:1669,1 DA:1670,1 DA:1671,1 DA:1672,1 -DA:1673,1 -DA:1674,1 -DA:1675,1 +DA:1673,8 +DA:1674,8 +DA:1675,8 DA:1676,1 DA:1677,1 DA:1678,1 DA:1679,1 -DA:1680,8 -DA:1681,8 -DA:1682,8 +DA:1680,1 +DA:1681,1 +DA:1682,1 DA:1683,1 DA:1684,1 DA:1685,1 @@ -14299,17 +14483,17 @@ DA:1686,1 DA:1687,1 DA:1688,1 DA:1689,1 -DA:1690,1 -DA:1691,1 +DA:1690,2 +DA:1691,2 DA:1692,1 DA:1693,1 DA:1694,1 DA:1695,1 DA:1696,1 DA:1697,1 -DA:1698,8 -DA:1699,8 -DA:1700,8 +DA:1698,1 +DA:1699,1 +DA:1700,1 DA:1701,1 DA:1702,1 DA:1703,1 @@ -14324,8 +14508,8 @@ DA:1711,1 DA:1712,1 DA:1713,1 DA:1714,1 -DA:1715,2 -DA:1716,2 +DA:1715,1 +DA:1716,1 DA:1717,1 DA:1718,1 DA:1719,1 @@ -14335,8 +14519,8 @@ DA:1722,1 DA:1723,1 DA:1724,1 DA:1725,1 -DA:1726,1 -DA:1727,1 +DA:1726,3 +DA:1727,3 DA:1728,1 DA:1729,1 DA:1730,1 @@ -14360,10 +14544,10 @@ DA:1747,1 DA:1748,1 DA:1749,1 DA:1750,1 -DA:1751,3 +DA:1751,1 DA:1752,3 -DA:1753,1 -DA:1754,1 +DA:1753,3 +DA:1754,3 DA:1755,1 DA:1756,1 DA:1757,1 @@ -14379,16 +14563,16 @@ DA:1766,1 DA:1767,1 DA:1768,1 DA:1769,1 -DA:1770,1 -DA:1771,1 -DA:1772,1 +DA:1770,2 +DA:1771,2 +DA:1772,2 DA:1773,1 DA:1774,1 DA:1775,1 DA:1776,1 -DA:1777,3 -DA:1778,3 -DA:1779,3 +DA:1777,1 +DA:1778,1 +DA:1779,1 DA:1780,1 DA:1781,1 DA:1782,1 @@ -14403,10 +14587,10 @@ DA:1790,1 DA:1791,1 DA:1792,1 DA:1793,1 -DA:1794,1 -DA:1795,2 -DA:1796,2 -DA:1797,2 +DA:1794,0 +DA:1795,0 +DA:1796,1 +DA:1797,1 DA:1798,1 DA:1799,1 DA:1800,1 @@ -14428,8 +14612,8 @@ DA:1815,1 DA:1816,1 DA:1817,1 DA:1818,1 -DA:1819,0 -DA:1820,0 +DA:1819,1 +DA:1820,1 DA:1821,1 DA:1822,1 DA:1823,1 @@ -14438,9 +14622,9 @@ DA:1825,1 DA:1826,1 DA:1827,1 DA:1828,1 -DA:1829,1 -DA:1830,1 -DA:1831,1 +DA:1829,2 +DA:1830,2 +DA:1831,2 DA:1832,1 DA:1833,1 DA:1834,1 @@ -14463,7 +14647,7 @@ DA:1850,1 DA:1851,1 DA:1852,1 DA:1853,1 -DA:1854,2 +DA:1854,1 DA:1855,2 DA:1856,2 DA:1857,1 @@ -14472,118 +14656,118 @@ DA:1859,1 DA:1860,1 DA:1861,1 DA:1862,1 -DA:1863,1 -DA:1864,1 -DA:1865,1 +DA:1863,17 +DA:1864,17 +DA:1865,17 DA:1866,1 DA:1867,1 DA:1868,1 DA:1869,1 DA:1870,1 DA:1871,1 -DA:1872,1 -DA:1873,1 -DA:1874,1 +DA:1872,5 +DA:1873,5 +DA:1874,5 DA:1875,1 DA:1876,1 DA:1877,1 DA:1878,1 DA:1879,1 -DA:1880,2 -DA:1881,2 +DA:1880,1 +DA:1881,1 DA:1882,1 DA:1883,1 DA:1884,1 DA:1885,1 DA:1886,1 DA:1887,1 -DA:1888,17 -DA:1889,17 -DA:1890,17 -DA:1891,1 -DA:1892,1 +DA:1888,1 +DA:1889,1 +DA:1890,3 +DA:1891,3 +DA:1892,3 DA:1893,1 DA:1894,1 DA:1895,1 DA:1896,1 -DA:1897,5 -DA:1898,5 -DA:1899,5 -DA:1900,1 -DA:1901,1 +DA:1897,1 +DA:1898,1 +DA:1899,4 +DA:1900,4 +DA:1901,4 DA:1902,1 DA:1903,1 DA:1904,1 DA:1905,1 DA:1906,1 DA:1907,1 -DA:1908,1 -DA:1909,1 -DA:1910,1 +DA:1908,6 +DA:1909,6 +DA:1910,6 DA:1911,1 DA:1912,1 DA:1913,1 DA:1914,1 -DA:1915,3 -DA:1916,3 -DA:1917,3 +DA:1915,1 +DA:1916,1 +DA:1917,1 DA:1918,1 DA:1919,1 -DA:1920,1 -DA:1921,1 -DA:1922,1 -DA:1923,1 -DA:1924,4 -DA:1925,4 -DA:1926,4 -DA:1927,1 -DA:1928,1 +DA:1920,210 +DA:1921,210 +DA:1922,210 +DA:1923,210 +DA:1924,120 +DA:1925,120 +DA:1926,210 +DA:1927,210 +DA:1928,210 DA:1929,1 DA:1930,1 DA:1931,1 DA:1932,1 -DA:1933,6 -DA:1934,6 -DA:1935,6 +DA:1933,1 +DA:1934,1 +DA:1935,1 DA:1936,1 DA:1937,1 DA:1938,1 -DA:1939,1 -DA:1940,1 -DA:1941,1 -DA:1942,1 -DA:1943,1 -DA:1944,1 -DA:1945,210 -DA:1946,210 -DA:1947,210 -DA:1948,210 -DA:1949,120 -DA:1950,120 -DA:1951,210 -DA:1952,210 -DA:1953,210 +DA:1939,6 +DA:1940,6 +DA:1941,6 +DA:1942,6 +DA:1943,3 +DA:1944,3 +DA:1945,6 +DA:1946,6 +DA:1947,6 +DA:1948,1 +DA:1949,1 +DA:1950,1 +DA:1951,1 +DA:1952,1 +DA:1953,1 DA:1954,1 DA:1955,1 DA:1956,1 -DA:1957,1 -DA:1958,1 +DA:1957,12 +DA:1958,12 DA:1959,1 DA:1960,1 DA:1961,1 DA:1962,1 DA:1963,1 -DA:1964,6 -DA:1965,6 -DA:1966,6 -DA:1967,6 -DA:1968,3 -DA:1969,3 -DA:1970,6 -DA:1971,6 -DA:1972,6 -DA:1973,1 -DA:1974,1 +DA:1964,1 +DA:1965,1 +DA:1966,1 +DA:1967,1 +DA:1968,1 +DA:1969,1 +DA:1970,1 +DA:1971,1 +DA:1972,2 +DA:1973,2 +DA:1974,2 DA:1975,1 DA:1976,1 DA:1977,1 @@ -14591,110 +14775,110 @@ DA:1978,1 DA:1979,1 DA:1980,1 DA:1981,1 -DA:1982,12 -DA:1983,12 +DA:1982,1 +DA:1983,1 DA:1984,1 -DA:1985,1 -DA:1986,1 -DA:1987,1 -DA:1988,1 -DA:1989,1 -DA:1990,1 -DA:1991,1 -DA:1992,1 -DA:1993,1 -DA:1994,1 -DA:1995,1 -DA:1996,1 -DA:1997,2 -DA:1998,2 -DA:1999,2 -DA:2000,1 -DA:2001,1 -DA:2002,1 -DA:2003,1 +DA:1985,7 +DA:1986,0 +DA:1987,0 +DA:1988,7 +DA:1989,7 +DA:1990,7 +DA:1991,7 +DA:1992,7 +DA:1993,12 +DA:1994,4 +DA:1995,4 +DA:1996,4 +DA:1997,8 +DA:1998,8 +DA:1999,8 +DA:2000,12 +DA:2001,7 +DA:2002,7 +DA:2003,7 DA:2004,1 DA:2005,1 DA:2006,1 DA:2007,1 -DA:2008,1 -DA:2009,1 -DA:2010,7 -DA:2011,0 -DA:2012,0 -DA:2013,7 -DA:2014,7 -DA:2015,7 -DA:2016,7 -DA:2017,7 -DA:2018,12 -DA:2019,4 -DA:2020,4 -DA:2021,4 -DA:2022,8 -DA:2023,8 -DA:2024,8 -DA:2025,12 -DA:2026,7 -DA:2027,7 -DA:2028,7 -DA:2029,1 -DA:2030,1 -DA:2031,1 +DA:2008,1 +DA:2009,1 +DA:2010,1 +DA:2011,1 +DA:2012,1 +DA:2013,15 +DA:2014,15 +DA:2015,15 +DA:2016,15 +DA:2017,15 +DA:2018,3 +DA:2019,3 +DA:2020,15 +DA:2021,1 +DA:2022,1 +DA:2023,15 +DA:2024,11 +DA:2025,11 +DA:2026,15 +DA:2027,0 +DA:2028,15 +DA:2029,15 +DA:2030,15 +DA:2031,15 DA:2032,1 DA:2033,1 DA:2034,1 DA:2035,1 DA:2036,1 DA:2037,1 -DA:2038,15 -DA:2039,15 -DA:2040,15 -DA:2041,15 -DA:2042,15 -DA:2043,3 -DA:2044,3 -DA:2045,15 -DA:2046,1 -DA:2047,1 -DA:2048,15 -DA:2049,11 -DA:2050,11 -DA:2051,15 -DA:2052,0 -DA:2053,15 -DA:2054,15 -DA:2055,15 -DA:2056,15 +DA:2038,1 +DA:2039,1 +DA:2040,1 +DA:2041,7 +DA:2042,0 +DA:2043,0 +DA:2044,7 +DA:2045,7 +DA:2046,7 +DA:2047,7 +DA:2048,7 +DA:2049,7 +DA:2050,7 +DA:2051,1 +DA:2052,1 +DA:2053,1 +DA:2054,1 +DA:2055,1 +DA:2056,1 DA:2057,1 DA:2058,1 -DA:2059,1 -DA:2060,1 +DA:2059,0 +DA:2060,0 DA:2061,1 DA:2062,1 DA:2063,1 DA:2064,1 DA:2065,1 -DA:2066,7 -DA:2067,0 -DA:2068,0 -DA:2069,7 -DA:2070,7 -DA:2071,7 -DA:2072,7 -DA:2073,7 -DA:2074,7 -DA:2075,7 +DA:2066,1 +DA:2067,1 +DA:2068,1 +DA:2069,1 +DA:2070,1 +DA:2071,1 +DA:2072,1 +DA:2073,1 +DA:2074,1 +DA:2075,1 DA:2076,1 -DA:2077,1 -DA:2078,1 -DA:2079,1 -DA:2080,1 -DA:2081,1 -DA:2082,1 -DA:2083,1 -DA:2084,0 -DA:2085,0 +DA:2077,2 +DA:2078,0 +DA:2079,0 +DA:2080,2 +DA:2081,2 +DA:2082,2 +DA:2083,2 +DA:2084,2 +DA:2085,2 DA:2086,1 DA:2087,1 DA:2088,1 @@ -14703,60 +14887,60 @@ DA:2090,1 DA:2091,1 DA:2092,1 DA:2093,1 -DA:2094,1 -DA:2095,1 -DA:2096,1 -DA:2097,1 -DA:2098,1 -DA:2099,1 -DA:2100,1 -DA:2101,1 -DA:2102,2 -DA:2103,0 -DA:2104,0 -DA:2105,2 -DA:2106,2 -DA:2107,2 -DA:2108,2 -DA:2109,2 -DA:2110,2 -DA:2111,2 +DA:2094,9 +DA:2095,9 +DA:2096,9 +DA:2097,9 +DA:2098,9 +DA:2099,9 +DA:2100,9 +DA:2101,9 +DA:2102,9 +DA:2103,9 +DA:2104,9 +DA:2105,9 +DA:2106,9 +DA:2107,1 +DA:2108,1 +DA:2109,1 +DA:2110,1 +DA:2111,1 DA:2112,1 DA:2113,1 -DA:2114,1 -DA:2115,1 -DA:2116,1 -DA:2117,1 -DA:2118,1 -DA:2119,1 -DA:2120,9 -DA:2121,9 -DA:2122,9 -DA:2123,9 -DA:2124,9 -DA:2125,9 -DA:2126,9 -DA:2127,9 -DA:2128,9 -DA:2129,9 -DA:2130,9 -DA:2131,9 -DA:2132,9 -DA:2133,1 -DA:2134,1 -DA:2135,1 -DA:2136,1 -DA:2137,1 -DA:2138,1 -DA:2139,1 -DA:2140,4 -DA:2141,0 -DA:2142,0 -DA:2143,4 -DA:2144,4 -DA:2145,4 -DA:2146,4 -DA:2147,1 +DA:2114,4 +DA:2115,0 +DA:2116,0 +DA:2117,4 +DA:2118,4 +DA:2119,4 +DA:2120,4 +DA:2121,1 +DA:2122,1 +DA:2123,1 +DA:2124,1 +DA:2125,1 +DA:2126,1 +DA:2127,1 +DA:2128,1 +DA:2129,1 +DA:2130,7790 +DA:2131,7790 +DA:2132,7790 +DA:2133,7790 +DA:2134,190 +DA:2135,190 +DA:2136,190 +DA:2137,42 +DA:2138,42 +DA:2139,42 +DA:2140,42 +DA:2141,42 +DA:2142,42 +DA:2143,42 +DA:2144,190 +DA:2145,7790 +DA:2146,7790 +DA:2147,7790 DA:2148,1 DA:2149,1 DA:2150,1 @@ -14765,175 +14949,175 @@ DA:2152,1 DA:2153,1 DA:2154,1 DA:2155,1 -DA:2156,7790 -DA:2157,7790 -DA:2158,7790 -DA:2159,7790 -DA:2160,190 -DA:2161,190 -DA:2162,190 -DA:2163,42 +DA:2156,1 +DA:2157,1 +DA:2158,90 +DA:2159,0 +DA:2160,0 +DA:2161,90 +DA:2162,90 +DA:2163,90 DA:2164,42 DA:2165,42 -DA:2166,42 -DA:2167,42 +DA:2166,48 +DA:2167,48 DA:2168,42 DA:2169,42 -DA:2170,190 -DA:2171,7790 -DA:2172,7790 -DA:2173,7790 -DA:2174,1 -DA:2175,1 -DA:2176,1 -DA:2177,1 -DA:2178,1 +DA:2170,42 +DA:2171,6 +DA:2172,6 +DA:2173,6 +DA:2174,48 +DA:2175,48 +DA:2176,90 +DA:2177,90 +DA:2178,90 DA:2179,1 DA:2180,1 DA:2181,1 DA:2182,1 DA:2183,1 -DA:2184,90 -DA:2185,90 -DA:2186,90 -DA:2187,90 -DA:2188,42 -DA:2189,42 -DA:2190,48 -DA:2191,48 +DA:2184,1 +DA:2185,1 +DA:2186,1 +DA:2187,7790 +DA:2188,7790 +DA:2189,7790 +DA:2190,42 +DA:2191,42 DA:2192,42 -DA:2193,42 -DA:2194,42 -DA:2195,6 -DA:2196,6 -DA:2197,48 -DA:2198,48 -DA:2199,90 -DA:2200,90 -DA:2201,90 -DA:2202,90 +DA:2193,7790 +DA:2194,7790 +DA:2195,7790 +DA:2196,1 +DA:2197,1 +DA:2198,1 +DA:2199,1 +DA:2200,1 +DA:2201,1 +DA:2202,1 DA:2203,1 DA:2204,1 DA:2205,1 DA:2206,1 -DA:2207,1 -DA:2208,1 -DA:2209,1 +DA:2207,146 +DA:2208,146 +DA:2209,146 DA:2210,1 -DA:2211,7790 -DA:2212,7790 -DA:2213,7790 -DA:2214,42 -DA:2215,42 -DA:2216,42 -DA:2217,7790 -DA:2218,7790 -DA:2219,7790 -DA:2220,1 -DA:2221,1 -DA:2222,1 -DA:2223,1 -DA:2224,1 -DA:2225,1 -DA:2226,1 -DA:2227,1 -DA:2228,1 -DA:2229,1 -DA:2230,1 -DA:2231,146 -DA:2232,146 -DA:2233,146 -DA:2234,1 -DA:2235,1 -DA:2236,1 -DA:2237,1 -DA:2238,1 -DA:2239,1 -DA:2240,1 +DA:2211,1 +DA:2212,1 +DA:2213,1 +DA:2214,1 +DA:2215,1 +DA:2216,1 +DA:2217,1 +DA:2218,1 +DA:2219,291 +DA:2220,291 +DA:2221,291 +DA:2222,283 +DA:2223,283 +DA:2224,291 +DA:2225,741 +DA:2226,476 +DA:2227,476 +DA:2228,265 +DA:2229,265 +DA:2230,265 +DA:2231,741 +DA:2232,741 +DA:2233,741 +DA:2234,283 +DA:2235,283 +DA:2236,283 +DA:2237,283 +DA:2238,283 +DA:2239,283 +DA:2240,291 DA:2241,1 DA:2242,1 -DA:2243,291 -DA:2244,291 -DA:2245,291 -DA:2246,283 -DA:2247,283 -DA:2248,291 -DA:2249,741 -DA:2250,476 -DA:2251,476 -DA:2252,265 -DA:2253,265 -DA:2254,265 -DA:2255,741 -DA:2256,741 -DA:2257,741 -DA:2258,283 -DA:2259,283 -DA:2260,283 -DA:2261,283 -DA:2262,283 -DA:2263,283 -DA:2264,291 +DA:2243,1 +DA:2244,1 +DA:2245,1 +DA:2246,1 +DA:2247,1 +DA:2248,283 +DA:2249,283 +DA:2250,12 +DA:2251,12 +DA:2252,12 +DA:2253,12 +DA:2254,12 +DA:2255,12 +DA:2256,283 +DA:2257,54 +DA:2258,12 +DA:2259,12 +DA:2260,12 +DA:2261,12 +DA:2262,54 +DA:2263,54 +DA:2264,283 DA:2265,1 DA:2266,1 DA:2267,1 DA:2268,1 DA:2269,1 DA:2270,1 -DA:2271,1 -DA:2272,283 -DA:2273,283 -DA:2274,12 +DA:2271,12 +DA:2272,12 +DA:2273,54 +DA:2274,54 DA:2275,12 DA:2276,12 DA:2277,12 DA:2278,12 DA:2279,12 -DA:2280,283 -DA:2281,54 -DA:2282,12 -DA:2283,12 -DA:2284,12 -DA:2285,12 -DA:2286,54 -DA:2287,54 -DA:2288,283 -DA:2289,1 -DA:2290,1 -DA:2291,1 -DA:2292,1 -DA:2293,1 -DA:2294,1 -DA:2295,1 +DA:2280,12 +DA:2281,1 +DA:2282,1 +DA:2283,1 +DA:2284,1 +DA:2285,1 +DA:2286,1 +DA:2287,1 +DA:2288,12 +DA:2289,12 +DA:2290,12 +DA:2291,12 +DA:2292,54 +DA:2293,54 +DA:2294,54 +DA:2295,54 DA:2296,12 DA:2297,12 -DA:2298,54 -DA:2299,54 -DA:2300,12 -DA:2301,12 -DA:2302,12 -DA:2303,12 -DA:2304,12 +DA:2298,12 +DA:2299,1 +DA:2300,1 +DA:2301,1 +DA:2302,1 +DA:2303,1 +DA:2304,1 DA:2305,12 -DA:2306,1 -DA:2307,1 -DA:2308,1 -DA:2309,1 -DA:2310,1 +DA:2306,12 +DA:2307,12 +DA:2308,12 +DA:2309,12 +DA:2310,12 DA:2311,1 DA:2312,1 DA:2313,1 -DA:2314,12 -DA:2315,12 -DA:2316,12 -DA:2317,12 -DA:2318,54 -DA:2319,54 -DA:2320,54 -DA:2321,54 +DA:2314,1 +DA:2315,1 +DA:2316,1 +DA:2317,1 +DA:2318,1 +DA:2319,12 +DA:2320,12 +DA:2321,12 DA:2322,12 -DA:2323,12 -DA:2324,12 +DA:2323,1 +DA:2324,1 DA:2325,1 DA:2326,1 DA:2327,1 @@ -14941,173 +15125,173 @@ DA:2328,1 DA:2329,1 DA:2330,1 DA:2331,1 -DA:2332,12 -DA:2333,12 -DA:2334,12 -DA:2335,12 -DA:2336,12 -DA:2337,12 -DA:2338,1 -DA:2339,1 -DA:2340,1 -DA:2341,1 -DA:2342,1 -DA:2343,1 -DA:2344,1 -DA:2345,12 -DA:2346,54 -DA:2347,54 -DA:2348,12 -DA:2349,12 -DA:2350,12 -DA:2351,1 -DA:2352,1 -DA:2353,1 -DA:2354,1 -DA:2355,1 -DA:2356,1 -DA:2357,1 -DA:2358,1 -DA:2359,1 -DA:2360,476 -DA:2361,476 -DA:2362,476 -DA:2363,476 -DA:2364,1262 -DA:2365,1262 -DA:2366,959 -DA:2367,959 -DA:2368,959 -DA:2369,959 -DA:2370,1262 -DA:2371,245 -DA:2372,245 -DA:2373,1262 -DA:2374,227 -DA:2375,227 -DA:2376,1262 -DA:2377,127 -DA:2378,127 -DA:2379,1262 -DA:2380,216 -DA:2381,216 -DA:2382,1262 -DA:2383,118 -DA:2384,118 -DA:2385,1262 -DA:2386,26 -DA:2387,26 -DA:2388,1262 -DA:2389,0 -DA:2390,1262 -DA:2391,1262 -DA:2392,476 -DA:2393,476 -DA:2394,40 -DA:2395,40 -DA:2396,476 -DA:2397,476 -DA:2398,12 -DA:2399,12 -DA:2400,464 -DA:2401,464 +DA:2332,476 +DA:2333,476 +DA:2334,476 +DA:2335,476 +DA:2336,1262 +DA:2337,1262 +DA:2338,959 +DA:2339,959 +DA:2340,959 +DA:2341,959 +DA:2342,1262 +DA:2343,245 +DA:2344,245 +DA:2345,1262 +DA:2346,227 +DA:2347,227 +DA:2348,1262 +DA:2349,127 +DA:2350,127 +DA:2351,1262 +DA:2352,216 +DA:2353,216 +DA:2354,1262 +DA:2355,118 +DA:2356,118 +DA:2357,1262 +DA:2358,26 +DA:2359,26 +DA:2360,1262 +DA:2361,0 +DA:2362,1262 +DA:2363,1262 +DA:2364,476 +DA:2365,476 +DA:2366,40 +DA:2367,40 +DA:2368,476 +DA:2369,476 +DA:2370,12 +DA:2371,12 +DA:2372,464 +DA:2373,464 +DA:2374,476 +DA:2375,1 +DA:2376,1 +DA:2377,1 +DA:2378,1 +DA:2379,1 +DA:2380,1 +DA:2381,959 +DA:2382,959 +DA:2383,959 +DA:2384,48 +DA:2385,48 +DA:2386,911 +DA:2387,911 +DA:2388,911 +DA:2389,911 +DA:2390,959 +DA:2391,959 +DA:2392,959 +DA:2393,1 +DA:2394,1 +DA:2395,1 +DA:2396,1 +DA:2397,1 +DA:2398,1 +DA:2399,1 +DA:2400,476 +DA:2401,476 DA:2402,476 -DA:2403,1 -DA:2404,1 -DA:2405,1 -DA:2406,1 +DA:2403,476 +DA:2404,476 +DA:2405,476 +DA:2406,476 DA:2407,1 DA:2408,1 DA:2409,1 -DA:2410,959 -DA:2411,959 -DA:2412,959 -DA:2413,48 -DA:2414,48 -DA:2415,911 -DA:2416,911 -DA:2417,911 -DA:2418,911 -DA:2419,959 -DA:2420,959 -DA:2421,959 +DA:2410,1 +DA:2411,1 +DA:2412,1 +DA:2413,127 +DA:2414,127 +DA:2415,127 +DA:2416,127 +DA:2417,127 +DA:2418,1 +DA:2419,1 +DA:2420,1 +DA:2421,1 DA:2422,1 DA:2423,1 -DA:2424,1 -DA:2425,1 -DA:2426,1 -DA:2427,1 -DA:2428,1 -DA:2429,476 -DA:2430,476 -DA:2431,476 -DA:2432,476 -DA:2433,476 -DA:2434,476 -DA:2435,476 -DA:2436,1 -DA:2437,1 -DA:2438,1 -DA:2439,1 +DA:2424,216 +DA:2425,216 +DA:2426,216 +DA:2427,216 +DA:2428,216 +DA:2429,1 +DA:2430,1 +DA:2431,1 +DA:2432,1 +DA:2433,1 +DA:2434,1 +DA:2435,363 +DA:2436,363 +DA:2437,363 +DA:2438,363 +DA:2439,363 DA:2440,1 DA:2441,1 DA:2442,1 -DA:2443,127 -DA:2444,127 -DA:2445,127 -DA:2446,127 -DA:2447,127 +DA:2443,1 +DA:2444,1 +DA:2445,40 +DA:2446,40 +DA:2447,1 DA:2448,1 DA:2449,1 DA:2450,1 DA:2451,1 DA:2452,1 -DA:2453,1 -DA:2454,1 -DA:2455,216 -DA:2456,216 -DA:2457,216 -DA:2458,216 -DA:2459,216 -DA:2460,1 -DA:2461,1 -DA:2462,1 -DA:2463,1 -DA:2464,1 +DA:2453,227 +DA:2454,12 +DA:2455,12 +DA:2456,215 +DA:2457,215 +DA:2458,227 +DA:2459,38 +DA:2460,38 +DA:2461,38 +DA:2462,215 +DA:2463,215 +DA:2464,227 DA:2465,1 DA:2466,1 -DA:2467,363 -DA:2468,363 -DA:2469,363 -DA:2470,363 -DA:2471,363 -DA:2472,1 -DA:2473,1 -DA:2474,1 -DA:2475,1 -DA:2476,1 -DA:2477,1 -DA:2478,40 -DA:2479,40 +DA:2467,1 +DA:2468,1 +DA:2469,1 +DA:2470,1 +DA:2471,26 +DA:2472,10 +DA:2473,10 +DA:2474,16 +DA:2475,16 +DA:2476,16 +DA:2477,26 +DA:2478,1 +DA:2479,1 DA:2480,1 DA:2481,1 DA:2482,1 DA:2483,1 -DA:2484,1 -DA:2485,1 -DA:2486,1 -DA:2487,227 -DA:2488,12 -DA:2489,12 -DA:2490,215 -DA:2491,215 -DA:2492,227 -DA:2493,38 -DA:2494,38 -DA:2495,38 -DA:2496,215 -DA:2497,215 -DA:2498,227 +DA:2484,12 +DA:2485,5 +DA:2486,5 +DA:2487,12 +DA:2488,21 +DA:2489,10 +DA:2490,10 +DA:2491,21 +DA:2492,10 +DA:2493,10 +DA:2494,1 +DA:2495,12 +DA:2496,12 +DA:2497,12 +DA:2498,12 DA:2499,1 DA:2500,1 DA:2501,1 @@ -15115,170 +15299,170 @@ DA:2502,1 DA:2503,1 DA:2504,1 DA:2505,1 -DA:2506,26 -DA:2507,10 -DA:2508,10 -DA:2509,16 -DA:2510,16 -DA:2511,16 -DA:2512,26 -DA:2513,1 +DA:2506,1 +DA:2507,389 +DA:2508,389 +DA:2509,389 +DA:2510,389 +DA:2511,389 +DA:2512,389 +DA:2513,389 DA:2514,1 DA:2515,1 DA:2516,1 DA:2517,1 DA:2518,1 -DA:2519,12 -DA:2520,5 -DA:2521,5 -DA:2522,12 -DA:2523,21 -DA:2524,10 -DA:2525,10 -DA:2526,21 -DA:2527,10 -DA:2528,10 -DA:2529,1 -DA:2530,12 -DA:2531,12 -DA:2532,12 -DA:2533,12 -DA:2534,1 -DA:2535,1 -DA:2536,1 -DA:2537,1 -DA:2538,1 -DA:2539,1 -DA:2540,1 -DA:2541,1 -DA:2542,389 -DA:2543,389 -DA:2544,389 -DA:2545,389 -DA:2546,389 -DA:2547,389 -DA:2548,389 -DA:2549,1 -DA:2550,1 +DA:2519,1 +DA:2520,1 +DA:2521,385 +DA:2522,385 +DA:2523,385 +DA:2524,385 +DA:2525,385 +DA:2526,385 +DA:2527,594 +DA:2528,6327 +DA:2529,6327 +DA:2530,6327 +DA:2531,6327 +DA:2532,3264 +DA:2533,3264 +DA:2534,3063 +DA:2535,3063 +DA:2536,3063 +DA:2537,3063 +DA:2538,3063 +DA:2539,3063 +DA:2540,3063 +DA:2541,3063 +DA:2542,3063 +DA:2543,3063 +DA:2544,6327 +DA:2545,6327 +DA:2546,6327 +DA:2547,594 +DA:2548,385 +DA:2549,385 +DA:2550,385 DA:2551,1 DA:2552,1 DA:2553,1 DA:2554,1 DA:2555,1 -DA:2556,385 -DA:2557,385 -DA:2558,385 -DA:2559,385 -DA:2560,385 -DA:2561,385 -DA:2562,594 -DA:2563,6327 -DA:2564,6327 -DA:2565,6327 -DA:2566,6327 -DA:2567,3264 -DA:2568,3264 -DA:2569,3063 -DA:2570,3063 -DA:2571,3063 -DA:2572,3063 -DA:2573,3063 -DA:2574,3063 -DA:2575,3063 -DA:2576,3063 -DA:2577,3063 -DA:2578,3063 -DA:2579,6327 -DA:2580,6327 -DA:2581,6327 -DA:2582,594 -DA:2583,385 -DA:2584,385 -DA:2585,385 -DA:2586,1 -DA:2587,1 -DA:2588,1 -DA:2589,1 -DA:2590,1 -DA:2591,1 -DA:2592,1 -DA:2593,4084 -DA:2594,4084 -DA:2595,4084 -DA:2596,4084 -DA:2597,4084 -DA:2598,4084 -DA:2599,4084 -DA:2600,4084 -DA:2601,2950 -DA:2602,2950 -DA:2603,247 -DA:2604,4084 +DA:2556,1 +DA:2557,1 +DA:2558,1 +DA:2559,4084 +DA:2560,4084 +DA:2561,4084 +DA:2562,4084 +DA:2563,4084 +DA:2564,4084 +DA:2565,4084 +DA:2566,4084 +DA:2567,2950 +DA:2568,2950 +DA:2569,247 +DA:2570,4084 +DA:2571,1 +DA:2572,1 +DA:2573,1 +DA:2574,1 +DA:2575,1 +DA:2576,1 +DA:2577,1 +DA:2578,7555 +DA:2579,11966 +DA:2580,11966 +DA:2581,11966 +DA:2582,8588 +DA:2583,8588 +DA:2584,11966 +DA:2585,7555 +DA:2586,7555 +DA:2587,7555 +DA:2588,10 +DA:2589,10 +DA:2590,7555 +DA:2591,7555 +DA:2592,7363 +DA:2593,7363 +DA:2594,3063 +DA:2595,3063 +DA:2596,7363 +DA:2597,7555 +DA:2598,1 +DA:2599,1 +DA:2600,1 +DA:2601,1 +DA:2602,1 +DA:2603,1 +DA:2604,1 DA:2605,1 -DA:2606,1 -DA:2607,1 -DA:2608,1 +DA:2606,6327 +DA:2607,6327 +DA:2608,6327 DA:2609,1 DA:2610,1 DA:2611,1 -DA:2612,7555 -DA:2613,11966 -DA:2614,11966 -DA:2615,11966 -DA:2616,8588 -DA:2617,8588 -DA:2618,11966 -DA:2619,7555 -DA:2620,7555 -DA:2621,7555 -DA:2622,10 -DA:2623,10 -DA:2624,7555 -DA:2625,7555 -DA:2626,7363 -DA:2627,7363 -DA:2628,7363 -DA:2629,7363 -DA:2630,7555 +DA:2612,1 +DA:2613,1 +DA:2614,1 +DA:2615,1 +DA:2616,3458 +DA:2617,3458 +DA:2618,1 +DA:2619,1 +DA:2620,1 +DA:2621,1 +DA:2622,1 +DA:2623,1 +DA:2624,1 +DA:2625,3067 +DA:2626,3067 +DA:2627,1 +DA:2628,1 +DA:2629,1 +DA:2630,1 DA:2631,1 DA:2632,1 DA:2633,1 -DA:2634,1 -DA:2635,1 -DA:2636,1 +DA:2634,260 +DA:2635,260 +DA:2636,260 DA:2637,1 DA:2638,1 -DA:2639,6327 -DA:2640,6327 -DA:2641,6327 +DA:2639,1 +DA:2640,1 +DA:2641,1 DA:2642,1 DA:2643,1 -DA:2644,1 -DA:2645,1 -DA:2646,1 +DA:2644,260 +DA:2645,260 +DA:2646,260 DA:2647,1 DA:2648,1 -DA:2649,3458 -DA:2650,3458 +DA:2649,1 +DA:2650,1 DA:2651,1 DA:2652,1 DA:2653,1 -DA:2654,1 -DA:2655,1 -DA:2656,1 -DA:2657,1 -DA:2658,3067 -DA:2659,3067 -DA:2660,1 +DA:2654,501 +DA:2655,501 +DA:2656,501 +DA:2657,501 +DA:2658,0 +DA:2659,0 +DA:2660,501 DA:2661,1 DA:2662,1 DA:2663,1 DA:2664,1 DA:2665,1 DA:2666,1 -DA:2667,260 -DA:2668,260 -DA:2669,260 +DA:2667,1 +DA:2668,1 +DA:2669,1 DA:2670,1 DA:2671,1 DA:2672,1 @@ -15286,249 +15470,249 @@ DA:2673,1 DA:2674,1 DA:2675,1 DA:2676,1 -DA:2677,260 -DA:2678,260 -DA:2679,260 -DA:2680,1 -DA:2681,1 -DA:2682,1 -DA:2683,1 -DA:2684,1 -DA:2685,1 -DA:2686,1 -DA:2687,501 -DA:2688,501 -DA:2689,501 -DA:2690,501 -DA:2691,0 -DA:2692,0 -DA:2693,501 -DA:2694,1 -DA:2695,1 -DA:2696,1 -DA:2697,1 -DA:2698,1 -DA:2699,1 -DA:2700,1 +DA:2677,1 +DA:2678,471 +DA:2679,1289 +DA:2680,1289 +DA:2681,1289 +DA:2682,1289 +DA:2683,1289 +DA:2684,1289 +DA:2685,1289 +DA:2686,1289 +DA:2687,1289 +DA:2688,1097 +DA:2689,1097 +DA:2690,1097 +DA:2691,192 +DA:2692,99 +DA:2693,99 +DA:2694,99 +DA:2695,93 +DA:2696,93 +DA:2697,93 +DA:2698,93 +DA:2699,1289 +DA:2700,471 DA:2701,1 DA:2702,1 DA:2703,1 DA:2704,1 DA:2705,1 DA:2706,1 -DA:2707,1 -DA:2708,1 -DA:2709,1 -DA:2710,1 -DA:2711,471 -DA:2712,1289 -DA:2713,1289 -DA:2714,1289 -DA:2715,1289 -DA:2716,1289 -DA:2717,1289 -DA:2718,1289 -DA:2719,1289 -DA:2720,1289 -DA:2721,1097 -DA:2722,1097 -DA:2723,1097 -DA:2724,192 -DA:2725,99 -DA:2726,99 -DA:2727,99 -DA:2728,93 -DA:2729,93 -DA:2730,93 -DA:2731,93 -DA:2732,1289 -DA:2733,471 -DA:2734,1 +DA:2707,1097 +DA:2708,1097 +DA:2709,1097 +DA:2710,1097 +DA:2711,61 +DA:2712,61 +DA:2713,1036 +DA:2714,1097 +DA:2715,128 +DA:2716,128 +DA:2717,128 +DA:2718,128 +DA:2719,128 +DA:2720,128 +DA:2721,128 +DA:2722,1036 +DA:2723,1036 +DA:2724,1036 +DA:2725,1036 +DA:2726,1036 +DA:2727,1036 +DA:2728,1036 +DA:2729,1036 +DA:2730,1036 +DA:2731,1036 +DA:2732,1036 +DA:2733,1036 +DA:2734,1097 DA:2735,1 DA:2736,1 DA:2737,1 DA:2738,1 DA:2739,1 -DA:2740,1 -DA:2741,1097 -DA:2742,1097 -DA:2743,1097 -DA:2744,1097 -DA:2745,1097 -DA:2746,1036 -DA:2747,1097 -DA:2748,128 -DA:2749,128 -DA:2750,128 -DA:2751,128 -DA:2752,128 -DA:2753,128 -DA:2754,128 -DA:2755,1036 -DA:2756,1036 -DA:2757,1036 -DA:2758,1036 -DA:2759,1036 -DA:2760,1036 -DA:2761,1036 -DA:2762,1036 -DA:2763,1036 -DA:2764,1036 -DA:2765,1036 -DA:2766,1036 -DA:2767,1097 -DA:2768,1 -DA:2769,1 -DA:2770,1 +DA:2740,99 +DA:2741,99 +DA:2742,99 +DA:2743,99 +DA:2744,99 +DA:2745,99 +DA:2746,99 +DA:2747,99 +DA:2748,99 +DA:2749,99 +DA:2750,99 +DA:2751,99 +DA:2752,99 +DA:2753,1 +DA:2754,1 +DA:2755,1 +DA:2756,1 +DA:2757,1 +DA:2758,93 +DA:2759,93 +DA:2760,93 +DA:2761,93 +DA:2762,93 +DA:2763,93 +DA:2764,93 +DA:2765,93 +DA:2766,93 +DA:2767,93 +DA:2768,93 +DA:2769,93 +DA:2770,93 DA:2771,1 DA:2772,1 DA:2773,1 -DA:2774,99 -DA:2775,99 -DA:2776,99 -DA:2777,99 -DA:2778,99 -DA:2779,99 -DA:2780,99 -DA:2781,99 -DA:2782,99 -DA:2783,99 -DA:2784,99 -DA:2785,99 -DA:2786,99 +DA:2774,1 +DA:2775,1 +DA:2776,1 +DA:2777,4 +DA:2778,48 +DA:2779,4 +DA:2780,4 +DA:2781,4 +DA:2782,48 +DA:2783,4 +DA:2784,1 +DA:2785,1 +DA:2786,1 DA:2787,1 DA:2788,1 DA:2789,1 -DA:2790,1 -DA:2791,1 -DA:2792,1 -DA:2793,93 -DA:2794,93 -DA:2795,93 -DA:2796,93 -DA:2797,93 -DA:2798,93 -DA:2799,93 -DA:2800,93 -DA:2801,93 -DA:2802,93 -DA:2803,93 -DA:2804,93 -DA:2805,93 -DA:2806,1 +DA:2790,4 +DA:2791,4 +DA:2792,4 +DA:2793,4 +DA:2794,1 +DA:2795,1 +DA:2796,1 +DA:2797,1 +DA:2798,1 +DA:2799,1 +DA:2800,102 +DA:2801,102 +DA:2802,373 +DA:2803,373 +DA:2804,102 +DA:2805,102 +DA:2806,102 DA:2807,1 DA:2808,1 DA:2809,1 DA:2810,1 DA:2811,1 DA:2812,1 -DA:2813,4 -DA:2814,48 -DA:2815,4 -DA:2816,4 -DA:2817,4 -DA:2818,48 -DA:2819,4 +DA:2813,353 +DA:2814,353 +DA:2815,353 +DA:2816,353 +DA:2817,353 +DA:2818,353 +DA:2819,1 DA:2820,1 DA:2821,1 DA:2822,1 DA:2823,1 DA:2824,1 -DA:2825,1 -DA:2826,1 -DA:2827,4 -DA:2828,4 -DA:2829,4 -DA:2830,4 +DA:2825,1475 +DA:2826,1475 +DA:2827,1475 +DA:2828,1475 +DA:2829,1475 +DA:2830,1 DA:2831,1 DA:2832,1 DA:2833,1 DA:2834,1 DA:2835,1 -DA:2836,1 -DA:2837,102 -DA:2838,102 -DA:2839,373 -DA:2840,373 -DA:2841,102 -DA:2842,102 -DA:2843,102 +DA:2836,2 +DA:2837,2 +DA:2838,2 +DA:2839,2 +DA:2840,2 +DA:2841,1 +DA:2842,1 +DA:2843,1 DA:2844,1 DA:2845,1 DA:2846,1 DA:2847,1 -DA:2848,1 -DA:2849,1 -DA:2850,353 -DA:2851,353 -DA:2852,353 -DA:2853,353 -DA:2854,353 -DA:2855,353 -DA:2856,1 -DA:2857,1 -DA:2858,1 -DA:2859,1 -DA:2860,1 -DA:2861,1 -DA:2862,1475 -DA:2863,1475 -DA:2864,1475 -DA:2865,1475 -DA:2866,1475 +DA:2848,186 +DA:2849,186 +DA:2850,838 +DA:2851,838 +DA:2852,838 +DA:2853,838 +DA:2854,838 +DA:2855,51 +DA:2856,51 +DA:2857,51 +DA:2858,838 +DA:2859,838 +DA:2860,186 +DA:2861,186 +DA:2862,186 +DA:2863,1 +DA:2864,1 +DA:2865,1 +DA:2866,1 DA:2867,1 DA:2868,1 -DA:2869,1 -DA:2870,1 -DA:2871,1 -DA:2872,1 -DA:2873,2 -DA:2874,2 -DA:2875,2 -DA:2876,2 -DA:2877,2 -DA:2878,1 -DA:2879,1 -DA:2880,1 -DA:2881,1 +DA:2869,62 +DA:2870,62 +DA:2871,62 +DA:2872,62 +DA:2873,801 +DA:2874,801 +DA:2875,801 +DA:2876,801 +DA:2877,801 +DA:2878,801 +DA:2879,801 +DA:2880,801 +DA:2881,62 DA:2882,1 DA:2883,1 DA:2884,1 -DA:2885,186 -DA:2886,186 -DA:2887,838 -DA:2888,838 -DA:2889,838 -DA:2890,838 -DA:2891,838 -DA:2892,51 -DA:2893,51 -DA:2894,51 -DA:2895,838 -DA:2896,838 -DA:2897,838 -DA:2898,186 -DA:2899,186 -DA:2900,186 -DA:2901,1 -DA:2902,1 -DA:2903,1 -DA:2904,1 -DA:2905,1 -DA:2906,1 -DA:2907,62 -DA:2908,62 -DA:2909,62 -DA:2910,62 -DA:2911,801 -DA:2912,801 -DA:2913,801 -DA:2914,801 -DA:2915,801 -DA:2916,801 -DA:2917,801 -DA:2918,801 -DA:2919,62 +DA:2885,1 +DA:2886,1 +DA:2887,1 +DA:2888,1 +DA:2889,1 +DA:2890,1 +DA:2891,1 +DA:2892,1 +DA:2893,1 +DA:2894,1 +DA:2895,1 +DA:2896,1 +DA:2897,1289 +DA:2898,1289 +DA:2899,1289 +DA:2900,1289 +DA:2901,1289 +DA:2902,1289 +DA:2903,217 +DA:2904,217 +DA:2905,217 +DA:2906,207 +DA:2907,207 +DA:2908,217 +DA:2909,217 +DA:2910,217 +DA:2911,207 +DA:2912,207 +DA:2913,207 +DA:2914,207 +DA:2915,207 +DA:2916,217 +DA:2917,1289 +DA:2918,1289 +DA:2919,1289 DA:2920,1 DA:2921,1 DA:2922,1 @@ -15536,126 +15720,126 @@ DA:2923,1 DA:2924,1 DA:2925,1 DA:2926,1 -DA:2927,1 -DA:2928,1 -DA:2929,1 -DA:2930,1 -DA:2931,1 -DA:2932,1 -DA:2933,1 -DA:2934,1 -DA:2935,1289 -DA:2936,1289 -DA:2937,1289 -DA:2938,1289 -DA:2939,1289 -DA:2940,1289 -DA:2941,217 -DA:2942,217 -DA:2943,217 -DA:2944,207 -DA:2945,207 -DA:2946,217 -DA:2947,217 -DA:2948,217 +DA:2927,207 +DA:2928,207 +DA:2929,207 +DA:2930,207 +DA:2931,207 +DA:2932,207 +DA:2933,60 +DA:2934,60 +DA:2935,6 +DA:2936,6 +DA:2937,6 +DA:2938,60 +DA:2939,207 +DA:2940,207 +DA:2941,207 +DA:2942,201 +DA:2943,201 +DA:2944,201 +DA:2945,1 +DA:2946,1 +DA:2947,1 +DA:2948,201 DA:2949,207 DA:2950,207 DA:2951,207 DA:2952,207 -DA:2953,207 -DA:2954,217 -DA:2955,1289 -DA:2956,1289 -DA:2957,1289 +DA:2953,1 +DA:2954,1 +DA:2955,1 +DA:2956,1 +DA:2957,1 DA:2958,1 -DA:2959,1 -DA:2960,1 +DA:2959,319 +DA:2960,319 DA:2961,1 DA:2962,1 DA:2963,1 DA:2964,1 -DA:2965,207 -DA:2966,207 -DA:2967,207 -DA:2968,207 -DA:2969,207 -DA:2970,207 -DA:2971,60 -DA:2972,60 -DA:2973,6 -DA:2974,6 -DA:2975,6 -DA:2976,60 -DA:2977,207 -DA:2978,207 -DA:2979,207 -DA:2980,201 -DA:2981,201 -DA:2982,201 -DA:2983,1 -DA:2984,1 -DA:2985,1 -DA:2986,201 -DA:2987,207 -DA:2988,207 -DA:2989,207 -DA:2990,207 -DA:2991,1 -DA:2992,1 -DA:2993,1 -DA:2994,1 -DA:2995,1 -DA:2996,1 -DA:2997,319 -DA:2998,319 -DA:2999,1 -DA:3000,1 +DA:2965,1 +DA:2966,1 +DA:2967,1 +DA:2968,1 +DA:2969,3383 +DA:2970,3383 +DA:2971,3383 +DA:2972,3383 +DA:2973,3383 +DA:2974,3383 +DA:2975,3383 +DA:2976,3383 +DA:2977,3383 +DA:2978,3383 +DA:2979,3383 +DA:2980,3383 +DA:2981,3383 +DA:2982,3383 +DA:2983,3383 +DA:2984,3383 +DA:2985,3383 +DA:2986,3383 +DA:2987,3383 +DA:2988,3383 +DA:2989,3383 +DA:2990,3383 +DA:2991,3383 +DA:2992,3383 +DA:2993,3383 +DA:2994,3383 +DA:2995,3383 +DA:2996,3383 +DA:2997,3383 +DA:2998,3383 +DA:2999,3383 +DA:3000,3383 DA:3001,1 DA:3002,1 DA:3003,1 DA:3004,1 DA:3005,1 DA:3006,1 -DA:3007,3383 -DA:3008,3383 -DA:3009,3383 -DA:3010,3383 -DA:3011,3383 -DA:3012,3383 -DA:3013,3383 -DA:3014,3383 -DA:3015,3383 -DA:3016,3383 -DA:3017,3383 -DA:3018,3383 -DA:3019,3383 -DA:3020,3383 -DA:3021,3383 -DA:3022,3383 -DA:3023,3383 -DA:3024,3383 -DA:3025,3383 -DA:3026,3383 -DA:3027,3383 -DA:3028,3383 -DA:3029,3383 -DA:3030,3383 -DA:3031,3383 -DA:3032,3383 -DA:3033,3383 -DA:3034,3383 -DA:3035,3383 -DA:3036,3383 -DA:3037,3383 -DA:3038,3383 -DA:3039,1 -DA:3040,1 -DA:3041,1 -DA:3042,1 -DA:3043,1 -DA:3044,1 -DA:3045,925 -DA:3046,925 +DA:3007,925 +DA:3008,925 +DA:3009,1 +DA:3010,1 +DA:3011,1 +DA:3012,1 +DA:3013,1 +DA:3014,1 +DA:3015,1 +DA:3016,3063 +DA:3017,3063 +DA:3018,3063 +DA:3019,1 +DA:3020,1 +DA:3021,1 +DA:3022,1 +DA:3023,1 +DA:3024,1 +DA:3025,1 +DA:3026,3063 +DA:3027,3063 +DA:3028,3063 +DA:3029,1 +DA:3030,1 +DA:3031,1 +DA:3032,1 +DA:3033,1 +DA:3034,1 +DA:3035,1 +DA:3036,6327 +DA:3037,6327 +DA:3038,6327 +DA:3039,6327 +DA:3040,6327 +DA:3041,6327 +DA:3042,6327 +DA:3043,6327 +DA:3044,6327 +DA:3045,6327 +DA:3046,6327 DA:3047,1 DA:3048,1 DA:3049,1 @@ -15663,128 +15847,128 @@ DA:3050,1 DA:3051,1 DA:3052,1 DA:3053,1 -DA:3054,3063 -DA:3055,3063 -DA:3056,3063 -DA:3057,1 +DA:3054,1228 +DA:3055,1228 +DA:3056,1228 +DA:3057,1228 DA:3058,1 DA:3059,1 DA:3060,1 DA:3061,1 DA:3062,1 DA:3063,1 -DA:3064,3063 -DA:3065,3063 -DA:3066,3063 -DA:3067,1 +DA:3064,1 +DA:3065,1228 +DA:3066,1228 +DA:3067,1228 DA:3068,1 DA:3069,1 DA:3070,1 DA:3071,1 DA:3072,1 DA:3073,1 -DA:3074,6327 -DA:3075,6327 -DA:3076,6327 -DA:3077,6327 -DA:3078,6327 -DA:3079,6327 -DA:3080,6327 -DA:3081,6327 -DA:3082,6327 -DA:3083,6327 -DA:3084,6327 -DA:3085,1 -DA:3086,1 +DA:3074,1 +DA:3075,1129 +DA:3076,1129 +DA:3077,1129 +DA:3078,1 +DA:3079,1 +DA:3080,1 +DA:3081,1 +DA:3082,1 +DA:3083,1 +DA:3084,4 +DA:3085,4 +DA:3086,4 DA:3087,1 DA:3088,1 DA:3089,1 DA:3090,1 DA:3091,1 -DA:3092,1228 -DA:3093,1228 -DA:3094,1228 -DA:3095,1228 -DA:3096,1 +DA:3092,1 +DA:3093,1 +DA:3094,192 +DA:3095,192 +DA:3096,192 DA:3097,1 DA:3098,1 DA:3099,1 DA:3100,1 DA:3101,1 DA:3102,1 -DA:3103,1228 -DA:3104,1228 -DA:3105,1228 -DA:3106,1 +DA:3103,1 +DA:3104,99 +DA:3105,99 +DA:3106,99 DA:3107,1 DA:3108,1 DA:3109,1 DA:3110,1 DA:3111,1 DA:3112,1 -DA:3113,1129 -DA:3114,1129 -DA:3115,1129 -DA:3116,1 +DA:3113,1 +DA:3114,1228 +DA:3115,1228 +DA:3116,1228 DA:3117,1 DA:3118,1 DA:3119,1 DA:3120,1 DA:3121,1 DA:3122,1 -DA:3123,4 -DA:3124,4 -DA:3125,4 -DA:3126,1 +DA:3123,1 +DA:3124,1228 +DA:3125,1228 +DA:3126,1228 DA:3127,1 DA:3128,1 DA:3129,1 DA:3130,1 DA:3131,1 DA:3132,1 -DA:3133,192 -DA:3134,192 -DA:3135,192 -DA:3136,1 +DA:3133,1 +DA:3134,1036 +DA:3135,1036 +DA:3136,1036 DA:3137,1 DA:3138,1 DA:3139,1 DA:3140,1 DA:3141,1 DA:3142,1 -DA:3143,99 -DA:3144,99 -DA:3145,99 -DA:3146,1 +DA:3143,1 +DA:3144,3063 +DA:3145,3063 +DA:3146,3063 DA:3147,1 DA:3148,1 DA:3149,1 DA:3150,1 DA:3151,1 DA:3152,1 -DA:3153,1228 -DA:3154,1228 -DA:3155,1228 +DA:3153,8168 +DA:3154,8168 +DA:3155,1 DA:3156,1 DA:3157,1 DA:3158,1 DA:3159,1 DA:3160,1 DA:3161,1 -DA:3162,1 -DA:3163,1228 -DA:3164,1228 -DA:3165,1228 +DA:3162,3063 +DA:3163,3063 +DA:3164,3063 +DA:3165,1 DA:3166,1 DA:3167,1 DA:3168,1 DA:3169,1 DA:3170,1 DA:3171,1 -DA:3172,1 -DA:3173,1036 -DA:3174,1036 -DA:3175,1036 +DA:3172,16719 +DA:3173,16719 +DA:3174,16719 +DA:3175,16719 DA:3176,1 DA:3177,1 DA:3178,1 @@ -15792,59 +15976,18 @@ DA:3179,1 DA:3180,1 DA:3181,1 DA:3182,1 -DA:3183,3063 -DA:3184,3063 -DA:3185,3063 -DA:3186,1 -DA:3187,1 -DA:3188,1 -DA:3189,1 -DA:3190,1 -DA:3191,1 -DA:3192,8168 -DA:3193,8168 -DA:3194,1 -DA:3195,1 -DA:3196,1 -DA:3197,1 -DA:3198,1 -DA:3199,1 -DA:3200,1 -DA:3201,3063 -DA:3202,3063 -DA:3203,3063 -DA:3204,1 -DA:3205,1 -DA:3206,1 -DA:3207,1 -DA:3208,1 -DA:3209,1 -DA:3210,1 -DA:3211,16719 -DA:3212,16719 -DA:3213,16719 -DA:3214,16719 -DA:3215,1 -DA:3216,1 -DA:3217,1 -DA:3218,1 -DA:3219,1 -DA:3220,1 -DA:3221,1 -DA:3222,4 -DA:3223,4 -DA:3224,36 -DA:3225,72 -DA:3226,36 -DA:3227,36 -DA:3228,72 -DA:3229,36 -DA:3230,4 -DA:3231,4 -DA:3232,4 -DA:3233,1 -LF:3233 -LH:3201 +DA:3183,4 +DA:3184,4 +DA:3185,4 +DA:3186,36 +DA:3187,36 +DA:3188,4 +DA:3189,4 +DA:3190,4 +DA:3191,4 +DA:3192,1 +LF:3192 +LH:3158 BRDA:1,0,0,1 BRDA:23,1,0,377 BRDA:50,2,0,4 @@ -15856,593 +15999,594 @@ BRDA:75,7,0,36 BRDA:82,8,0,30 BRDA:92,9,0,36 BRDA:98,10,0,5 -BRDA:101,11,0,35 -BRDA:104,12,0,4 -BRDA:107,13,0,1 -BRDA:97,14,0,116 -BRDA:122,15,0,373 -BRDA:124,16,0,44 -BRDA:132,17,0,369 -BRDA:135,18,0,223 -BRDA:138,19,0,146 -BRDA:138,20,0,122 -BRDA:138,21,0,1 -BRDA:144,22,0,330 -BRDA:147,23,0,39 -BRDA:150,24,0,363 -BRDA:160,25,0,376 -BRDA:163,26,0,425 -BRDA:164,27,0,418 -BRDA:167,28,0,7 -BRDA:171,29,0,370 -BRDA:182,30,0,370 -BRDA:185,31,0,35 -BRDA:188,32,0,335 -BRDA:186,33,0,72 -BRDA:186,34,0,682 -BRDA:189,35,0,346 -BRDA:200,36,0,418 -BRDA:209,37,0,41 -BRDA:209,38,0,374 -BRDA:212,39,0,3978 -BRDA:216,40,0,3591 -BRDA:216,41,0,416 -BRDA:220,42,0,3975 -BRDA:222,43,0,2492 -BRDA:224,44,0,412 -BRDA:239,45,0,7955 -BRDA:241,46,0,2658 -BRDA:244,47,0,5297 -BRDA:244,48,0,142 -BRDA:245,49,0,10 -BRDA:248,50,0,132 -BRDA:252,51,0,5155 -BRDA:252,52,0,93 -BRDA:257,53,0,7952 -BRDA:266,54,0,363 -BRDA:272,55,0,1954 -BRDA:275,56,0,8152 -BRDA:277,57,0,6775 -BRDA:278,58,0,1377 -BRDA:278,59,0,21 -BRDA:282,60,0,1356 -BRDA:284,61,0,1338 -BRDA:287,62,0,1346 -BRDA:290,63,0,1944 -BRDA:293,64,0,353 -BRDA:303,65,0,272 -BRDA:307,66,0,9196 -BRDA:310,67,0,8527 -BRDA:311,68,0,138 -BRDA:315,69,0,2828 -BRDA:315,70,0,228 -BRDA:315,71,0,8299 -BRDA:317,72,0,669 -BRDA:317,73,0,137 -BRDA:336,74,0,8374 -BRDA:342,75,0,343 -BRDA:347,76,0,6975 -BRDA:349,77,0,50 -BRDA:350,78,0,393 -BRDA:352,79,0,343 -BRDA:359,80,0,8031 -BRDA:370,81,0,168 -BRDA:376,82,0,3311 -BRDA:379,83,0,139 -BRDA:379,84,0,130 -BRDA:379,85,0,129 -BRDA:383,86,0,3182 -BRDA:392,87,0,167 -BRDA:404,88,0,3182 -BRDA:406,89,0,45 -BRDA:407,90,0,3137 -BRDA:408,91,0,45 -BRDA:409,92,0,3092 -BRDA:421,93,0,3311 -BRDA:422,94,0,3021 -BRDA:424,95,0,72 -BRDA:426,96,0,290 -BRDA:426,97,0,72 -BRDA:429,98,0,3167 -BRDA:440,99,0,353 -BRDA:443,100,0,34 -BRDA:446,101,0,2 -BRDA:450,102,0,319 -BRDA:452,103,0,113 -BRDA:468,104,0,34 -BRDA:470,105,0,1 -BRDA:471,106,0,33 -BRDA:481,107,0,326 -BRDA:483,108,0,145 -BRDA:491,109,0,33 -BRDA:504,110,0,359 -BRDA:507,111,0,432 -BRDA:522,112,0,2 -BRDA:551,113,0,353 -BRDA:553,114,0,325 -BRDA:554,115,0,28 -BRDA:564,116,0,61 -BRDA:565,117,0,69 -BRDA:568,118,0,0 -BRDA:572,119,0,62 -BRDA:572,120,0,5 -BRDA:575,121,0,64 -BRDA:590,122,0,353 -BRDA:594,123,0,343 -BRDA:595,124,0,10 -BRDA:596,125,0,67 -BRDA:597,126,0,84 -BRDA:601,127,0,10 -BRDA:611,128,0,353 -BRDA:612,129,0,2 -BRDA:627,130,0,64 -BRDA:636,131,0,1006 -BRDA:637,132,0,218 -BRDA:640,133,0,788 -BRDA:640,134,0,402 -BRDA:640,135,0,386 -BRDA:652,136,0,5 -BRDA:661,137,0,104 -BRDA:662,138,0,26 -BRDA:665,139,0,78 -BRDA:665,140,0,61 -BRDA:665,141,0,17 -BRDA:685,142,0,836 -BRDA:697,143,0,30 -BRDA:701,144,0,806 -BRDA:703,145,0,339 -BRDA:704,146,0,467 -BRDA:704,147,0,169 -BRDA:708,148,0,298 -BRDA:708,149,0,21 -BRDA:712,150,0,277 -BRDA:712,151,0,260 -BRDA:717,152,0,17 -BRDA:721,153,0,834 -BRDA:730,154,0,30 -BRDA:736,155,0,10 -BRDA:739,156,0,20 -BRDA:757,157,0,169 -BRDA:760,158,0,2 -BRDA:761,159,0,1 -BRDA:768,160,0,167 -BRDA:779,161,0,30 -BRDA:784,162,0,19 -BRDA:789,163,0,13 -BRDA:793,164,0,10 -BRDA:793,165,0,3 -BRDA:798,166,0,10 -BRDA:802,167,0,20 -BRDA:812,168,0,20 -BRDA:816,169,0,21 -BRDA:820,170,0,0 -BRDA:833,171,0,806 -BRDA:834,172,0,292 -BRDA:834,173,0,514 -BRDA:834,174,0,48 -BRDA:842,175,0,339 -BRDA:843,176,0,292 -BRDA:844,177,0,292 -BRDA:845,178,0,47 -BRDA:847,179,0,47 -BRDA:848,180,0,0 -BRDA:857,181,0,832 -BRDA:862,182,0,464 -BRDA:867,183,0,368 -BRDA:867,184,0,367 -BRDA:869,185,0,366 -BRDA:875,186,0,366 -BRDA:875,187,0,0 -BRDA:875,188,0,0 -BRDA:875,189,0,1 -BRDA:879,190,0,831 -BRDA:889,191,0,186 -BRDA:907,192,0,416 -BRDA:909,193,0,286 -BRDA:912,194,0,21 -BRDA:915,195,0,13 -BRDA:918,196,0,15 -BRDA:921,197,0,20 -BRDA:924,198,0,14 -BRDA:927,199,0,3 -BRDA:930,200,0,12 -BRDA:933,201,0,2 -BRDA:936,202,0,21 -BRDA:939,203,0,4 -BRDA:942,204,0,1 -BRDA:945,205,0,1 -BRDA:948,206,0,1 -BRDA:951,207,0,1 -BRDA:954,208,0,1 -BRDA:910,209,0,2535 -BRDA:913,210,0,189 -BRDA:916,211,0,144 -BRDA:916,212,0,143 -BRDA:916,213,0,143 -BRDA:919,214,0,248 -BRDA:922,215,0,298 -BRDA:925,216,0,155 -BRDA:928,217,0,30 -BRDA:931,218,0,98 -BRDA:934,219,0,19 -BRDA:937,220,0,196 -BRDA:940,221,0,39 -BRDA:943,222,0,5 -BRDA:946,223,0,5 -BRDA:949,224,0,7 -BRDA:952,225,0,7 -BRDA:965,226,0,3975 -BRDA:966,227,0,3269 -BRDA:966,228,0,706 -BRDA:967,229,0,3490 -BRDA:967,230,0,485 -BRDA:977,231,0,98 -BRDA:978,232,0,96 -BRDA:978,233,0,2 -BRDA:978,234,0,2 -BRDA:981,235,0,96 -BRDA:991,236,0,19 -BRDA:992,237,0,18 -BRDA:992,238,0,1 -BRDA:992,239,0,1 -BRDA:995,240,0,18 -BRDA:1005,241,0,114 -BRDA:1020,242,0,235 -BRDA:1022,243,0,216 -BRDA:1025,244,0,19 -BRDA:1032,245,0,132 -BRDA:1032,246,0,30 -BRDA:1045,247,0,10 -BRDA:1046,248,0,0 -BRDA:1054,249,0,14 -BRDA:1071,250,0,864 -BRDA:1079,251,0,8110 -BRDA:1083,252,0,5831 -BRDA:1092,253,0,114 -BRDA:1095,254,0,0 -BRDA:1106,255,0,1568 -BRDA:1110,256,0,94 -BRDA:1113,257,0,1474 -BRDA:1118,258,0,13 -BRDA:1122,259,0,0 -BRDA:1125,260,0,1461 -BRDA:1138,261,0,1474 -BRDA:1144,262,0,9830 -BRDA:1149,263,0,7269 -BRDA:1152,264,0,2561 -BRDA:1152,265,0,66 -BRDA:1180,266,0,9830 -BRDA:1183,267,0,19900 -BRDA:1184,268,0,2574 -BRDA:1184,269,0,1287 -BRDA:1187,270,0,18613 -BRDA:1188,271,0,8543 -BRDA:1189,272,0,8463 -BRDA:1194,273,0,10070 -BRDA:1196,274,0,1691 -BRDA:1214,275,0,1474 -BRDA:1218,276,0,1297 -BRDA:1219,277,0,177 -BRDA:1241,278,0,373 -BRDA:1259,279,0,114 -BRDA:1262,280,0,0 -BRDA:1286,281,0,114 -BRDA:1290,282,0,0 -BRDA:1293,283,0,104 -BRDA:1294,284,0,10 -BRDA:1305,285,0,114 -BRDA:1306,286,0,124 -BRDA:1309,287,0,90 -BRDA:1313,288,0,24 -BRDA:1317,289,0,0 -BRDA:1308,290,0,420 -BRDA:1312,291,0,644 -BRDA:1329,292,0,1370 -BRDA:1341,293,0,5524 -BRDA:1342,294,0,1 -BRDA:1345,295,0,5523 -BRDA:1353,296,0,62 -BRDA:1363,297,0,369 -BRDA:1364,298,0,692 -BRDA:1365,299,0,106 -BRDA:1370,300,0,621 -BRDA:1392,301,0,5524 -BRDA:1397,302,0,12650 -BRDA:1407,303,0,111 -BRDA:1425,304,0,67 -BRDA:1435,305,0,67 -BRDA:1445,306,0,67 -BRDA:1455,307,0,67 -BRDA:1464,308,0,67 -BRDA:1470,309,0,610 -BRDA:1471,310,0,540 -BRDA:1473,311,0,97 -BRDA:1474,312,0,443 -BRDA:1476,313,0,483 -BRDA:1492,314,0,150 -BRDA:1500,315,0,63 -BRDA:1510,316,0,67 -BRDA:1528,317,0,190 -BRDA:1546,318,0,7790 -BRDA:1551,319,0,210 -BRDA:1551,320,0,210 -BRDA:1553,321,0,42 -BRDA:1553,322,0,168 -BRDA:1559,323,0,0 -BRDA:1578,324,0,13 -BRDA:1585,325,0,1 -BRDA:1594,326,0,7 -BRDA:1603,327,0,90 -BRDA:1611,328,0,1 -BRDA:1620,329,0,6 -BRDA:1628,330,0,1 -BRDA:1638,331,0,2 -BRDA:1648,332,0,5 -BRDA:1656,333,0,15 -BRDA:1671,334,0,1 -BRDA:1679,335,0,8 -BRDA:1688,336,0,1 -BRDA:1697,337,0,8 -BRDA:1706,338,0,1 -BRDA:1714,339,0,2 -BRDA:1722,340,0,1 -BRDA:1731,341,0,1 -BRDA:1740,342,0,1 -BRDA:1750,343,0,3 -BRDA:1758,344,0,1 -BRDA:1767,345,0,1 -BRDA:1776,346,0,3 -BRDA:1785,347,0,1 -BRDA:1794,348,0,2 -BRDA:1802,349,0,1 -BRDA:1810,350,0,1 -BRDA:1826,351,0,1 -BRDA:1835,352,0,1 -BRDA:1844,353,0,1 -BRDA:1853,354,0,2 -BRDA:1862,355,0,1 -BRDA:1871,356,0,1 -BRDA:1879,357,0,2 -BRDA:1887,358,0,17 -BRDA:1896,359,0,5 -BRDA:1905,360,0,1 -BRDA:1914,361,0,3 -BRDA:1923,362,0,4 -BRDA:1932,363,0,6 -BRDA:1944,364,0,210 -BRDA:1948,365,0,90 -BRDA:1949,366,0,120 -BRDA:1963,367,0,6 -BRDA:1967,368,0,3 -BRDA:1979,369,0,1 -BRDA:1981,370,0,12 -BRDA:1996,371,0,2 -BRDA:2009,372,0,7 -BRDA:2010,373,0,0 -BRDA:2017,374,0,12 -BRDA:2018,375,0,4 -BRDA:2022,376,0,8 -BRDA:2037,377,0,15 -BRDA:2042,378,0,3 -BRDA:2045,379,0,1 -BRDA:2048,380,0,11 -BRDA:2051,381,0,0 -BRDA:2065,382,0,7 -BRDA:2066,383,0,0 -BRDA:2082,384,0,1 -BRDA:2083,385,0,0 -BRDA:2101,386,0,2 -BRDA:2102,387,0,0 -BRDA:2119,388,0,9 -BRDA:2139,389,0,4 -BRDA:2140,390,0,0 -BRDA:2143,391,0,2 -BRDA:2143,392,0,2 -BRDA:2155,393,0,7790 -BRDA:2159,394,0,190 -BRDA:2162,395,0,42 -BRDA:2162,396,0,42 -BRDA:2183,397,0,90 -BRDA:2187,398,0,42 -BRDA:2187,399,0,42 -BRDA:2190,400,0,48 -BRDA:2191,401,0,42 -BRDA:2195,402,0,6 -BRDA:2210,403,0,7790 -BRDA:2213,404,0,190 -BRDA:2213,405,0,42 -BRDA:2230,406,0,146 -BRDA:2242,407,0,291 -BRDA:2245,408,0,8 -BRDA:2246,409,0,283 -BRDA:2248,410,0,741 -BRDA:2249,411,0,476 -BRDA:2252,412,0,265 -BRDA:2258,413,0,283 -BRDA:2271,414,0,283 -BRDA:2273,415,0,271 -BRDA:2274,416,0,12 -BRDA:2280,417,0,54 -BRDA:2281,418,0,12 -BRDA:2288,419,0,12 -BRDA:2272,420,0,741 -BRDA:2295,421,0,12 -BRDA:2297,422,0,54 -BRDA:2313,423,0,12 -BRDA:2317,424,0,54 -BRDA:2331,425,0,12 -BRDA:2344,426,0,12 -BRDA:2345,427,0,54 -BRDA:2359,428,0,476 -BRDA:2363,429,0,1262 -BRDA:2365,430,0,303 -BRDA:2366,431,0,959 -BRDA:2370,432,0,245 -BRDA:2373,433,0,227 -BRDA:2376,434,0,127 -BRDA:2379,435,0,216 -BRDA:2382,436,0,118 -BRDA:2385,437,0,26 -BRDA:2388,438,0,0 -BRDA:2393,439,0,40 -BRDA:2397,440,0,12 -BRDA:2400,441,0,464 -BRDA:2409,442,0,959 -BRDA:2412,443,0,48 -BRDA:2415,444,0,911 -BRDA:2417,445,0,193 -BRDA:2417,446,0,718 -BRDA:2428,447,0,476 -BRDA:2442,448,0,127 -BRDA:2443,449,0,44 -BRDA:2443,450,0,83 -BRDA:2445,451,0,40 -BRDA:2445,452,0,87 -BRDA:2454,453,0,216 -BRDA:2455,454,0,84 -BRDA:2455,455,0,132 -BRDA:2457,456,0,26 -BRDA:2457,457,0,190 -BRDA:2466,458,0,363 -BRDA:2477,459,0,40 -BRDA:2486,460,0,227 -BRDA:2487,461,0,12 -BRDA:2490,462,0,215 -BRDA:2492,463,0,38 -BRDA:2496,464,0,215 -BRDA:2505,465,0,26 -BRDA:2506,466,0,10 -BRDA:2509,467,0,16 -BRDA:2518,468,0,12 -BRDA:2519,469,0,5 -BRDA:2522,470,0,21 -BRDA:2523,471,0,10 -BRDA:2526,472,0,11 -BRDA:2526,473,0,10 -BRDA:2529,474,0,1 -BRDA:2541,475,0,389 -BRDA:2555,476,0,385 -BRDA:2561,477,0,594 -BRDA:2562,478,0,6327 -BRDA:2566,479,0,3264 -BRDA:2569,480,0,3063 -BRDA:2592,481,0,4084 -BRDA:2593,482,0,2661 -BRDA:2593,483,0,1423 -BRDA:2594,484,0,1931 -BRDA:2594,485,0,2153 -BRDA:2600,486,0,1134 -BRDA:2601,487,0,2950 -BRDA:2602,488,0,2703 -BRDA:2603,489,0,247 -BRDA:2611,490,0,7555 -BRDA:2612,491,0,11966 -BRDA:2615,492,0,5921 -BRDA:2615,493,0,8588 -BRDA:2621,494,0,15 -BRDA:2621,495,0,10 -BRDA:2625,496,0,7363 -BRDA:2628,497,0,3063 -BRDA:2638,498,0,6327 -BRDA:2640,499,0,3063 -BRDA:2640,500,0,3264 -BRDA:2648,501,0,3458 -BRDA:2657,502,0,3067 -BRDA:2666,503,0,260 -BRDA:2668,504,0,0 -BRDA:2676,505,0,260 -BRDA:2678,506,0,0 -BRDA:2686,507,0,501 -BRDA:2691,508,0,0 -BRDA:2710,509,0,471 -BRDA:2711,510,0,1289 -BRDA:2713,511,0,668 -BRDA:2713,512,0,93 -BRDA:2713,513,0,1196 -BRDA:2720,514,0,1190 -BRDA:2720,515,0,1097 -BRDA:2724,516,0,192 -BRDA:2724,517,0,99 -BRDA:2728,518,0,93 -BRDA:2740,519,0,1097 -BRDA:2744,520,0,67 -BRDA:2745,521,0,61 -BRDA:2746,522,0,1036 -BRDA:2747,523,0,912 -BRDA:2747,524,0,128 -BRDA:2755,525,0,1036 -BRDA:2773,526,0,99 -BRDA:2792,527,0,93 -BRDA:2812,528,0,4 -BRDA:2813,529,0,48 -BRDA:2814,530,0,4 -BRDA:2826,531,0,4 -BRDA:2829,532,0,10 -BRDA:2836,533,0,102 -BRDA:2838,534,0,373 -BRDA:2839,535,0,0 -BRDA:2842,536,0,0 -BRDA:2849,537,0,353 -BRDA:2851,538,0,1179 -BRDA:2851,539,0,12 -BRDA:2852,540,0,2 -BRDA:2861,541,0,1475 -BRDA:2862,542,0,13365 -BRDA:2863,543,0,4195 -BRDA:2872,544,0,2 -BRDA:2874,545,0,4 -BRDA:2884,546,0,186 -BRDA:2886,547,0,838 -BRDA:2891,548,0,51 -BRDA:2893,549,0,24 -BRDA:2893,550,0,27 -BRDA:2886,551,0,850 -BRDA:2906,552,0,62 -BRDA:2910,553,0,801 -BRDA:2934,554,0,1289 -BRDA:2938,555,0,1190 -BRDA:2938,556,0,99 -BRDA:2940,557,0,1190 -BRDA:2940,558,0,217 -BRDA:2943,559,0,207 -BRDA:2943,560,0,207 -BRDA:2948,561,0,207 -BRDA:2948,562,0,207 -BRDA:2964,563,0,207 -BRDA:2970,564,0,60 -BRDA:2972,565,0,6 -BRDA:2979,566,0,201 -BRDA:2982,567,0,1 -BRDA:2982,568,0,1 -BRDA:2996,569,0,319 -BRDA:2997,570,0,1059 -BRDA:3006,571,0,3383 -BRDA:3044,572,0,925 -BRDA:3045,573,0,730 -BRDA:3045,574,0,195 -BRDA:3053,575,0,3063 -BRDA:3063,576,0,3063 -BRDA:3073,577,0,6327 -BRDA:3075,578,0,3264 -BRDA:3091,579,0,1228 -BRDA:3102,580,0,1228 -BRDA:3112,581,0,1129 -BRDA:3122,582,0,4 -BRDA:3132,583,0,192 -BRDA:3142,584,0,99 -BRDA:3152,585,0,1228 -BRDA:3162,586,0,1228 -BRDA:3172,587,0,1036 -BRDA:3182,588,0,3063 -BRDA:3191,589,0,8168 -BRDA:3200,590,0,3063 -BRDA:3210,591,0,16719 -BRDA:3211,592,0,13464 -BRDA:3211,593,0,3255 -BRDA:3221,594,0,4 -BRDA:3223,595,0,36 -BRDA:3224,596,0,72 -BRDA:3225,597,0,36 -BRF:598 +BRDA:102,11,0,4 +BRDA:105,12,0,1 +BRDA:97,13,0,116 +BRDA:100,14,0,35 +BRDA:100,15,0,35 +BRDA:119,16,0,373 +BRDA:121,17,0,44 +BRDA:129,18,0,369 +BRDA:132,19,0,223 +BRDA:135,20,0,146 +BRDA:135,21,0,122 +BRDA:135,22,0,1 +BRDA:141,23,0,330 +BRDA:144,24,0,39 +BRDA:147,25,0,363 +BRDA:157,26,0,376 +BRDA:158,27,0,425 +BRDA:159,28,0,418 +BRDA:160,29,0,7 +BRDA:172,30,0,370 +BRDA:175,31,0,35 +BRDA:178,32,0,335 +BRDA:176,33,0,72 +BRDA:176,34,0,682 +BRDA:179,35,0,346 +BRDA:190,36,0,418 +BRDA:199,37,0,41 +BRDA:199,38,0,374 +BRDA:202,39,0,3978 +BRDA:206,40,0,3591 +BRDA:206,41,0,416 +BRDA:210,42,0,3975 +BRDA:212,43,0,2492 +BRDA:214,44,0,412 +BRDA:229,45,0,7955 +BRDA:231,46,0,2658 +BRDA:234,47,0,5297 +BRDA:234,48,0,142 +BRDA:236,49,0,132 +BRDA:240,50,0,5155 +BRDA:240,51,0,93 +BRDA:246,52,0,7952 +BRDA:255,53,0,363 +BRDA:261,54,0,1954 +BRDA:264,55,0,8152 +BRDA:266,56,0,6775 +BRDA:267,57,0,1377 +BRDA:267,58,0,21 +BRDA:271,59,0,1356 +BRDA:273,60,0,1338 +BRDA:276,61,0,1346 +BRDA:279,62,0,1944 +BRDA:282,63,0,353 +BRDA:292,64,0,272 +BRDA:296,65,0,9196 +BRDA:299,66,0,8527 +BRDA:300,67,0,138 +BRDA:304,68,0,2828 +BRDA:304,69,0,228 +BRDA:304,70,0,8299 +BRDA:306,71,0,669 +BRDA:306,72,0,137 +BRDA:325,73,0,8374 +BRDA:331,74,0,343 +BRDA:336,75,0,6975 +BRDA:338,76,0,50 +BRDA:339,77,0,393 +BRDA:341,78,0,343 +BRDA:348,79,0,8031 +BRDA:359,80,0,168 +BRDA:365,81,0,3311 +BRDA:368,82,0,139 +BRDA:368,83,0,130 +BRDA:368,84,0,129 +BRDA:372,85,0,3182 +BRDA:381,86,0,167 +BRDA:393,87,0,3182 +BRDA:395,88,0,45 +BRDA:396,89,0,3137 +BRDA:397,90,0,45 +BRDA:398,91,0,3092 +BRDA:410,92,0,3311 +BRDA:411,93,0,3021 +BRDA:413,94,0,72 +BRDA:415,95,0,290 +BRDA:415,96,0,72 +BRDA:418,97,0,3167 +BRDA:429,98,0,353 +BRDA:432,99,0,34 +BRDA:435,100,0,2 +BRDA:439,101,0,319 +BRDA:441,102,0,113 +BRDA:457,103,0,34 +BRDA:459,104,0,1 +BRDA:460,105,0,33 +BRDA:470,106,0,326 +BRDA:472,107,0,145 +BRDA:480,108,0,33 +BRDA:493,109,0,359 +BRDA:496,110,0,432 +BRDA:511,111,0,2 +BRDA:540,112,0,353 +BRDA:542,113,0,325 +BRDA:543,114,0,28 +BRDA:553,115,0,61 +BRDA:554,116,0,69 +BRDA:557,117,0,0 +BRDA:561,118,0,62 +BRDA:561,119,0,5 +BRDA:564,120,0,64 +BRDA:579,121,0,353 +BRDA:583,122,0,343 +BRDA:584,123,0,10 +BRDA:585,124,0,67 +BRDA:586,125,0,84 +BRDA:590,126,0,10 +BRDA:600,127,0,353 +BRDA:601,128,0,2 +BRDA:616,129,0,64 +BRDA:625,130,0,1006 +BRDA:626,131,0,218 +BRDA:629,132,0,788 +BRDA:629,133,0,402 +BRDA:629,134,0,386 +BRDA:641,135,0,5 +BRDA:650,136,0,104 +BRDA:651,137,0,26 +BRDA:654,138,0,78 +BRDA:654,139,0,61 +BRDA:654,140,0,17 +BRDA:674,141,0,836 +BRDA:681,142,0,30 +BRDA:685,143,0,806 +BRDA:687,144,0,339 +BRDA:688,145,0,467 +BRDA:688,146,0,169 +BRDA:692,147,0,298 +BRDA:692,148,0,21 +BRDA:696,149,0,277 +BRDA:696,150,0,260 +BRDA:701,151,0,17 +BRDA:705,152,0,834 +BRDA:714,153,0,30 +BRDA:720,154,0,10 +BRDA:723,155,0,20 +BRDA:741,156,0,169 +BRDA:745,157,0,167 +BRDA:748,158,0,2 +BRDA:749,159,0,1 +BRDA:762,160,0,30 +BRDA:767,161,0,19 +BRDA:772,162,0,13 +BRDA:781,163,0,10 +BRDA:785,164,0,20 +BRDA:775,165,0,13 +BRDA:776,166,0,10 +BRDA:776,167,0,3 +BRDA:795,168,0,20 +BRDA:799,169,0,21 +BRDA:803,170,0,0 +BRDA:816,171,0,806 +BRDA:817,172,0,292 +BRDA:817,173,0,514 +BRDA:817,174,0,48 +BRDA:825,175,0,339 +BRDA:826,176,0,292 +BRDA:827,177,0,292 +BRDA:828,178,0,47 +BRDA:830,179,0,47 +BRDA:831,180,0,0 +BRDA:840,181,0,832 +BRDA:845,182,0,464 +BRDA:850,183,0,368 +BRDA:850,184,0,367 +BRDA:852,185,0,366 +BRDA:858,186,0,366 +BRDA:858,187,0,0 +BRDA:858,188,0,0 +BRDA:858,189,0,1 +BRDA:862,190,0,831 +BRDA:872,191,0,186 +BRDA:890,192,0,416 +BRDA:892,193,0,286 +BRDA:895,194,0,21 +BRDA:898,195,0,13 +BRDA:901,196,0,15 +BRDA:904,197,0,20 +BRDA:907,198,0,14 +BRDA:910,199,0,3 +BRDA:913,200,0,12 +BRDA:916,201,0,2 +BRDA:919,202,0,21 +BRDA:922,203,0,4 +BRDA:925,204,0,1 +BRDA:928,205,0,1 +BRDA:931,206,0,1 +BRDA:934,207,0,1 +BRDA:937,208,0,1 +BRDA:893,209,0,2535 +BRDA:896,210,0,189 +BRDA:899,211,0,144 +BRDA:899,212,0,143 +BRDA:899,213,0,143 +BRDA:902,214,0,248 +BRDA:905,215,0,298 +BRDA:908,216,0,155 +BRDA:911,217,0,30 +BRDA:914,218,0,98 +BRDA:917,219,0,19 +BRDA:920,220,0,196 +BRDA:923,221,0,39 +BRDA:926,222,0,5 +BRDA:929,223,0,5 +BRDA:932,224,0,7 +BRDA:935,225,0,7 +BRDA:948,226,0,3975 +BRDA:949,227,0,3269 +BRDA:949,228,0,706 +BRDA:950,229,0,3490 +BRDA:950,230,0,485 +BRDA:960,231,0,98 +BRDA:961,232,0,96 +BRDA:961,233,0,2 +BRDA:961,234,0,2 +BRDA:964,235,0,96 +BRDA:974,236,0,19 +BRDA:975,237,0,18 +BRDA:975,238,0,1 +BRDA:975,239,0,1 +BRDA:978,240,0,18 +BRDA:988,241,0,114 +BRDA:1003,242,0,235 +BRDA:1005,243,0,216 +BRDA:1008,244,0,19 +BRDA:1015,245,0,132 +BRDA:1015,246,0,30 +BRDA:1028,247,0,10 +BRDA:1029,248,0,0 +BRDA:1037,249,0,14 +BRDA:1054,250,0,864 +BRDA:1062,251,0,8110 +BRDA:1066,252,0,5831 +BRDA:1075,253,0,114 +BRDA:1078,254,0,0 +BRDA:1089,255,0,1568 +BRDA:1093,256,0,94 +BRDA:1096,257,0,1474 +BRDA:1101,258,0,13 +BRDA:1105,259,0,0 +BRDA:1108,260,0,1461 +BRDA:1121,261,0,1474 +BRDA:1127,262,0,9830 +BRDA:1132,263,0,7269 +BRDA:1135,264,0,2561 +BRDA:1135,265,0,66 +BRDA:1163,266,0,9830 +BRDA:1166,267,0,19900 +BRDA:1167,268,0,2574 +BRDA:1167,269,0,1287 +BRDA:1170,270,0,18613 +BRDA:1171,271,0,8543 +BRDA:1172,272,0,8463 +BRDA:1177,273,0,10070 +BRDA:1179,274,0,1691 +BRDA:1197,275,0,1474 +BRDA:1201,276,0,1297 +BRDA:1202,277,0,177 +BRDA:1224,278,0,373 +BRDA:1242,279,0,114 +BRDA:1245,280,0,0 +BRDA:1269,281,0,114 +BRDA:1273,282,0,0 +BRDA:1276,283,0,104 +BRDA:1277,284,0,10 +BRDA:1288,285,0,114 +BRDA:1289,286,0,124 +BRDA:1292,287,0,90 +BRDA:1296,288,0,24 +BRDA:1300,289,0,0 +BRDA:1291,290,0,420 +BRDA:1295,291,0,644 +BRDA:1312,292,0,1370 +BRDA:1324,293,0,5524 +BRDA:1325,294,0,1 +BRDA:1328,295,0,5523 +BRDA:1336,296,0,62 +BRDA:1346,297,0,369 +BRDA:1347,298,0,692 +BRDA:1348,299,0,106 +BRDA:1351,300,0,621 +BRDA:1370,301,0,5524 +BRDA:1375,302,0,12650 +BRDA:1385,303,0,111 +BRDA:1403,304,0,67 +BRDA:1413,305,0,67 +BRDA:1423,306,0,67 +BRDA:1433,307,0,67 +BRDA:1442,308,0,67 +BRDA:1447,309,0,610 +BRDA:1448,310,0,70 +BRDA:1451,311,0,540 +BRDA:1452,312,0,97 +BRDA:1455,313,0,443 +BRDA:1456,314,0,483 +BRDA:1471,315,0,150 +BRDA:1479,316,0,63 +BRDA:1489,317,0,67 +BRDA:1507,318,0,190 +BRDA:1525,319,0,7790 +BRDA:1530,320,0,210 +BRDA:1530,321,0,210 +BRDA:1533,322,0,42 +BRDA:1533,323,0,168 +BRDA:1538,324,0,0 +BRDA:1553,325,0,13 +BRDA:1560,326,0,1 +BRDA:1569,327,0,7 +BRDA:1578,328,0,90 +BRDA:1586,329,0,1 +BRDA:1595,330,0,6 +BRDA:1603,331,0,1 +BRDA:1613,332,0,2 +BRDA:1623,333,0,5 +BRDA:1631,334,0,15 +BRDA:1646,335,0,1 +BRDA:1654,336,0,8 +BRDA:1663,337,0,1 +BRDA:1672,338,0,8 +BRDA:1681,339,0,1 +BRDA:1689,340,0,2 +BRDA:1697,341,0,1 +BRDA:1706,342,0,1 +BRDA:1715,343,0,1 +BRDA:1725,344,0,3 +BRDA:1733,345,0,1 +BRDA:1742,346,0,1 +BRDA:1751,347,0,3 +BRDA:1760,348,0,1 +BRDA:1769,349,0,2 +BRDA:1777,350,0,1 +BRDA:1785,351,0,1 +BRDA:1801,352,0,1 +BRDA:1810,353,0,1 +BRDA:1819,354,0,1 +BRDA:1828,355,0,2 +BRDA:1837,356,0,1 +BRDA:1846,357,0,1 +BRDA:1854,358,0,2 +BRDA:1862,359,0,17 +BRDA:1871,360,0,5 +BRDA:1880,361,0,1 +BRDA:1889,362,0,3 +BRDA:1898,363,0,4 +BRDA:1907,364,0,6 +BRDA:1919,365,0,210 +BRDA:1923,366,0,90 +BRDA:1924,367,0,120 +BRDA:1938,368,0,6 +BRDA:1942,369,0,3 +BRDA:1954,370,0,1 +BRDA:1956,371,0,12 +BRDA:1971,372,0,2 +BRDA:1984,373,0,7 +BRDA:1985,374,0,0 +BRDA:1992,375,0,12 +BRDA:1993,376,0,4 +BRDA:1997,377,0,8 +BRDA:2012,378,0,15 +BRDA:2017,379,0,3 +BRDA:2020,380,0,1 +BRDA:2023,381,0,11 +BRDA:2026,382,0,0 +BRDA:2040,383,0,7 +BRDA:2041,384,0,0 +BRDA:2057,385,0,1 +BRDA:2058,386,0,0 +BRDA:2076,387,0,2 +BRDA:2077,388,0,0 +BRDA:2093,389,0,9 +BRDA:2113,390,0,4 +BRDA:2114,391,0,0 +BRDA:2117,392,0,2 +BRDA:2117,393,0,2 +BRDA:2129,394,0,7790 +BRDA:2133,395,0,190 +BRDA:2136,396,0,42 +BRDA:2136,397,0,42 +BRDA:2157,398,0,90 +BRDA:2158,399,0,0 +BRDA:2163,400,0,42 +BRDA:2163,401,0,42 +BRDA:2166,402,0,48 +BRDA:2167,403,0,42 +BRDA:2171,404,0,6 +BRDA:2186,405,0,7790 +BRDA:2189,406,0,190 +BRDA:2189,407,0,42 +BRDA:2206,408,0,146 +BRDA:2218,409,0,291 +BRDA:2221,410,0,8 +BRDA:2222,411,0,283 +BRDA:2224,412,0,741 +BRDA:2225,413,0,476 +BRDA:2228,414,0,265 +BRDA:2234,415,0,283 +BRDA:2247,416,0,283 +BRDA:2249,417,0,271 +BRDA:2250,418,0,12 +BRDA:2256,419,0,54 +BRDA:2257,420,0,12 +BRDA:2264,421,0,12 +BRDA:2248,422,0,741 +BRDA:2270,423,0,12 +BRDA:2272,424,0,54 +BRDA:2287,425,0,12 +BRDA:2291,426,0,54 +BRDA:2304,427,0,12 +BRDA:2318,428,0,12 +BRDA:2319,429,0,54 +BRDA:2331,430,0,476 +BRDA:2335,431,0,1262 +BRDA:2337,432,0,303 +BRDA:2338,433,0,959 +BRDA:2342,434,0,245 +BRDA:2345,435,0,227 +BRDA:2348,436,0,127 +BRDA:2351,437,0,216 +BRDA:2354,438,0,118 +BRDA:2357,439,0,26 +BRDA:2360,440,0,0 +BRDA:2365,441,0,40 +BRDA:2369,442,0,12 +BRDA:2372,443,0,464 +BRDA:2380,444,0,959 +BRDA:2383,445,0,48 +BRDA:2386,446,0,911 +BRDA:2388,447,0,193 +BRDA:2388,448,0,718 +BRDA:2399,449,0,476 +BRDA:2412,450,0,127 +BRDA:2413,451,0,44 +BRDA:2413,452,0,83 +BRDA:2415,453,0,40 +BRDA:2415,454,0,87 +BRDA:2423,455,0,216 +BRDA:2424,456,0,84 +BRDA:2424,457,0,132 +BRDA:2426,458,0,26 +BRDA:2426,459,0,190 +BRDA:2434,460,0,363 +BRDA:2444,461,0,40 +BRDA:2452,462,0,227 +BRDA:2453,463,0,12 +BRDA:2456,464,0,215 +BRDA:2458,465,0,38 +BRDA:2462,466,0,215 +BRDA:2470,467,0,26 +BRDA:2471,468,0,10 +BRDA:2474,469,0,16 +BRDA:2483,470,0,12 +BRDA:2484,471,0,5 +BRDA:2487,472,0,21 +BRDA:2488,473,0,10 +BRDA:2491,474,0,11 +BRDA:2491,475,0,10 +BRDA:2494,476,0,1 +BRDA:2506,477,0,389 +BRDA:2520,478,0,385 +BRDA:2526,479,0,594 +BRDA:2527,480,0,6327 +BRDA:2531,481,0,3264 +BRDA:2534,482,0,3063 +BRDA:2558,483,0,4084 +BRDA:2559,484,0,2661 +BRDA:2559,485,0,1423 +BRDA:2560,486,0,1931 +BRDA:2560,487,0,2153 +BRDA:2566,488,0,1134 +BRDA:2567,489,0,2950 +BRDA:2568,490,0,2703 +BRDA:2569,491,0,247 +BRDA:2577,492,0,7555 +BRDA:2578,493,0,11966 +BRDA:2581,494,0,5921 +BRDA:2581,495,0,8588 +BRDA:2587,496,0,15 +BRDA:2587,497,0,10 +BRDA:2591,498,0,7363 +BRDA:2593,499,0,3063 +BRDA:2605,500,0,6327 +BRDA:2607,501,0,3063 +BRDA:2607,502,0,3264 +BRDA:2615,503,0,3458 +BRDA:2624,504,0,3067 +BRDA:2633,505,0,260 +BRDA:2635,506,0,0 +BRDA:2643,507,0,260 +BRDA:2645,508,0,0 +BRDA:2653,509,0,501 +BRDA:2658,510,0,0 +BRDA:2677,511,0,471 +BRDA:2678,512,0,1289 +BRDA:2680,513,0,668 +BRDA:2680,514,0,93 +BRDA:2680,515,0,1196 +BRDA:2687,516,0,1190 +BRDA:2687,517,0,1097 +BRDA:2691,518,0,192 +BRDA:2691,519,0,99 +BRDA:2695,520,0,93 +BRDA:2706,521,0,1097 +BRDA:2710,522,0,67 +BRDA:2710,523,0,61 +BRDA:2713,524,0,1036 +BRDA:2714,525,0,912 +BRDA:2714,526,0,128 +BRDA:2722,527,0,1036 +BRDA:2739,528,0,99 +BRDA:2757,529,0,93 +BRDA:2776,530,0,4 +BRDA:2777,531,0,48 +BRDA:2778,532,0,4 +BRDA:2789,533,0,4 +BRDA:2792,534,0,10 +BRDA:2799,535,0,102 +BRDA:2801,536,0,373 +BRDA:2802,537,0,0 +BRDA:2805,538,0,0 +BRDA:2812,539,0,353 +BRDA:2814,540,0,1179 +BRDA:2814,541,0,12 +BRDA:2815,542,0,2 +BRDA:2824,543,0,1475 +BRDA:2825,544,0,13365 +BRDA:2826,545,0,4195 +BRDA:2835,546,0,2 +BRDA:2837,547,0,4 +BRDA:2847,548,0,186 +BRDA:2849,549,0,838 +BRDA:2854,550,0,51 +BRDA:2856,551,0,24 +BRDA:2856,552,0,27 +BRDA:2849,553,0,850 +BRDA:2868,554,0,62 +BRDA:2872,555,0,801 +BRDA:2896,556,0,1289 +BRDA:2900,557,0,1190 +BRDA:2900,558,0,99 +BRDA:2902,559,0,1190 +BRDA:2902,560,0,217 +BRDA:2905,561,0,207 +BRDA:2905,562,0,207 +BRDA:2910,563,0,207 +BRDA:2910,564,0,207 +BRDA:2926,565,0,207 +BRDA:2932,566,0,60 +BRDA:2934,567,0,6 +BRDA:2941,568,0,201 +BRDA:2944,569,0,1 +BRDA:2944,570,0,1 +BRDA:2958,571,0,319 +BRDA:2959,572,0,1059 +BRDA:2968,573,0,3383 +BRDA:3006,574,0,925 +BRDA:3007,575,0,730 +BRDA:3007,576,0,195 +BRDA:3015,577,0,3063 +BRDA:3025,578,0,3063 +BRDA:3035,579,0,6327 +BRDA:3037,580,0,3264 +BRDA:3053,581,0,1228 +BRDA:3064,582,0,1228 +BRDA:3074,583,0,1129 +BRDA:3083,584,0,4 +BRDA:3093,585,0,192 +BRDA:3103,586,0,99 +BRDA:3113,587,0,1228 +BRDA:3123,588,0,1228 +BRDA:3133,589,0,1036 +BRDA:3143,590,0,3063 +BRDA:3152,591,0,8168 +BRDA:3161,592,0,3063 +BRDA:3171,593,0,16719 +BRDA:3172,594,0,13464 +BRDA:3172,595,0,3255 +BRDA:3182,596,0,4 +BRDA:3185,597,0,36 +BRDA:3186,598,0,72 +BRF:599 BRH:574 end_of_record diff --git a/dist/gssql.js b/dist/gssql.js index 34d86fa..c7367b8 100644 --- a/dist/gssql.js +++ b/dist/gssql.js @@ -1844,27 +1844,24 @@ class SelectTables { /** * - * @param {Object[]} ast + * @param {Object[]} astFields * @returns {Object[]} */ - getAggregateFunctionFieldsInGroupByCalculation(ast) { + getAggregateFunctionFieldsInGroupByCalculation(astFields) { const fields = []; const aggFuncList = ["SUM", "MIN", "MAX", "COUNT", "AVG", "DISTINCT", "GROUP_CONCAT"]; // When fld.terms is defined, it is a calculation, not just a single function. - const aggregateFunctions = ast.filter(f => typeof f.terms !== 'undefined'); + const aggregateFunctions = astFields.filter(f => typeof f.terms !== 'undefined'); for (const fld of aggregateFunctions) { const functionString = SelectTables.toUpperCaseExceptQuoted(fld.name, true); + const usedFunctions = aggFuncList.map(func => SelectTables.parseForFunctions(functionString, func)).filter(f => f != null); - for (const func of aggFuncList) { - const parsedFunctionList = SelectTables.parseForFunctions(functionString, func); + for (const parsedFunctionList of usedFunctions) { + this.tableFields.updateCalculatedFieldAsAggregateCalculation(fld.name); - if (parsedFunctionList !== null) { - this.tableFields.updateCalculatedFieldAsAggregateCalculation(fld.name); - - if (!this.tableFields.isFieldAlreadyInSelectList(parsedFunctionList)) { - fields.push({ name: parsedFunctionList[0], as: '', order: '' }); - } + if (!this.tableFields.isFieldAlreadyInSelectList(parsedFunctionList)) { + fields.push({ name: parsedFunctionList[0], as: '', order: '' }); } } } @@ -1916,16 +1913,9 @@ class SelectTables { * @returns {Number[]} - record ID's */ resolveCondition(logic, terms) { - const recordIDs = []; - - for (const cond of terms) { - if (typeof cond.logic === 'undefined') { - recordIDs.push(this.getRecordIDs(cond)); - } - else { - recordIDs.push(this.resolveCondition(cond.logic, cond.terms)); - } - } + const recordIDs = terms.map(cond => typeof cond.logic === 'undefined' + ? this.getRecordIDs(cond) + : this.resolveCondition(cond.logic, cond.terms)); return SelectTables.applyLogicOperatorToRecordIds(logic, recordIDs); } @@ -1943,7 +1933,7 @@ class SelectTables { if (logic === "AND") { results = recordIDs.reduce((a, b) => a.filter(c => b.includes(c)), recordIDs[0]); } - if (logic === "OR") { + else if (logic === "OR") { results = Array.from(new Set(recordIDs.reduce((a, b) => a.concat(b), recordIDs[0]))); } @@ -2000,17 +1990,16 @@ class SelectTables { fieldValue = fieldConditions.fieldConditionTableInfo.tableData[masterRecordID][fieldConditions.columnNumber]; } else if (fieldConditions.calculatedField !== "") { - if (fieldConditions.calculatedField.toUpperCase() === "NULL") { - fieldValue = "NULL"; - } - else { + fieldValue = "NULL"; + if (fieldConditions.calculatedField.toUpperCase() !== "NULL") { fieldValue = calcSqlField.evaluateCalculatedField(fieldConditions.calculatedField, masterRecordID); } } else if (fieldConditions.subQuery !== null) { const arrayResult = fieldConditions.subQuery.select(masterRecordID, calcSqlField); - if (typeof arrayResult !== 'undefined' && arrayResult !== null && arrayResult.length > 0) + if (typeof arrayResult !== 'undefined' && arrayResult !== null && arrayResult.length > 0) { fieldValue = arrayResult[0][0]; + } } return fieldValue; @@ -2441,15 +2430,10 @@ class SelectTables { * @returns {ResolvedFieldCondition} */ resolveFieldCondition(fieldCondition) { - /** @type {String} */ let constantData = null; - /** @type {Number} */ let columnNumber = -1; - /** @type {Table} */ let fieldConditionTableInfo = null; - /** @type {String} */ let calculatedField = ""; - /** @type {CorrelatedSubQuery} */ let subQuery = null; if (typeof fieldCondition.SELECT !== 'undefined') { @@ -2515,16 +2499,15 @@ class SelectTables { resolveBindData(fieldCondition) { // Bind variable data. const constantData = this.bindVariables.get(fieldCondition); - if (typeof constantData === 'undefined') { - if (fieldCondition === '?') { - throw new Error("Bind variable naming is ?1, ?2... where ?1 is first bind data point in list.") - } - else { - throw new Error(`Bind variable ${fieldCondition} was not found`); - } + + if (typeof constantData !== 'undefined') { + return constantData; } - return constantData; + if (fieldCondition === '?') { + throw new Error("Bind variable naming is ?1, ?2... where ?1 is first bind data point in list.") + } + throw new Error(`Bind variable ${fieldCondition} was not found`); } /** @@ -2547,12 +2530,12 @@ class SelectTables { for (const tableName of tableSetCorrelated.keys()) { let isFound = false; // @ts-ignore - for (const outerTable of tableSet.keys()) { + tableSet.keys().forEach(outerTable => { if (outerTable === tableName || tableSet.get(outerTable) === tableName) { isFound = true; - break; } - } + }); + if (!isFound) { return true; } @@ -3122,13 +3105,8 @@ class VirtualFields { for (let i = 0; i < astFields.length; i++) { if (astFields[i].name === "*") { // Replace wildcard will actual field names from master table. - const masterTableFields = []; const allExpandedFields = masterTableInfo.getAllExtendedNotationFieldNames(); - - for (const virtualField of allExpandedFields) { - const selField = { name: virtualField }; - masterTableFields.push(selField); - } + const masterTableFields = allExpandedFields.map(virtualField => ({ name: virtualField })); astFields.splice(i, 1, ...masterTableFields); break; @@ -3222,18 +3200,19 @@ class DerivedTable { // skipcq: JS-0128 createTable() { const columnCount = this.rightField.tableInfo.getColumnCount(); const emptyRightRow = Array(columnCount).fill(null); - const joinedData = [DerivedTable.getCombinedColumnTitles(this.leftField, this.rightField)]; for (let i = 1; i < this.leftField.tableInfo.tableData.length; i++) { - if (typeof this.leftRecords[i] !== "undefined") { - if (typeof this.rightField.tableInfo.tableData[this.leftRecords[i][0]] === "undefined") - joinedData.push(this.leftField.tableInfo.tableData[i].concat(emptyRightRow)); - else { - const maxJoin = this.leftRecords[i].length; - for (let j = 0; j < maxJoin; j++) { - joinedData.push(this.leftField.tableInfo.tableData[i].concat(this.rightField.tableInfo.tableData[this.leftRecords[i][j]])); - } + if (typeof this.leftRecords[i] === "undefined") { + continue; + } + + if (typeof this.rightField.tableInfo.tableData[this.leftRecords[i][0]] === "undefined") { + joinedData.push(this.leftField.tableInfo.tableData[i].concat(emptyRightRow)); + } + else { + for (let j = 0; j < this.leftRecords[i].length; j++) { + joinedData.push(this.leftField.tableInfo.tableData[i].concat(this.rightField.tableInfo.tableData[this.leftRecords[i][j]])); } } } @@ -3307,20 +3286,16 @@ class SqlServerFunctions { [args, functionString] = this.caseStart(func, args, functionString); while (args !== null && args.length > 0) { - // Split on COMMA, except within brackets. - const parms = typeof args[1] === 'undefined' ? [] : SelectTables.parseForParams(args[1]); - - let replacement = ""; try { - replacement = this[func.toLocaleLowerCase()](parms, args, masterFields); + // Split on COMMA, except within brackets. + const parms = typeof args[1] === 'undefined' ? [] : SelectTables.parseForParams(args[1]); + const replacement = this[func.toLocaleLowerCase()](parms, args, masterFields); + functionString = functionString.replace(args[0], replacement); + args = this.parseFunctionArgs(func, functionString); } catch (ex) { throw new Error(`Internal Error. Function is missing. ${func}`); } - - functionString = functionString.replace(args[0], replacement); - - args = this.parseFunctionArgs(func, functionString); } functionString = this.caseEnd(func, functionString); @@ -3865,7 +3840,6 @@ class SqlServerFunctions { const funcString = `lastDay = new Date(${today}.getFullYear(), ${today}.getMonth()+1, 0)`; return SqlServerFunctions.inlineFuncDateInReturn(funcString, "lastDay"); - } /** @@ -3939,21 +3913,23 @@ class SqlServerFunctions { * @returns {String} - js code to handle this WHEN case. */ caseWhen(args) { - let replacement = ""; + if (args.length < 3) { + return ""; + } - if (args.length > 2) { - if (typeof args[1] === 'undefined' && typeof args[2] === 'undefined') { - replacement = `else return ${args[3]};`; + let replacement = ""; + if (typeof args[1] === 'undefined' && typeof args[2] === 'undefined') { + replacement = `else return ${args[3]};`; + } + else { + if (this.firstCase) { + replacement = "(() => {if ("; + this.firstCase = false; } else { - if (this.firstCase) { - replacement = "(() => {if ("; - this.firstCase = false; - } - else - replacement = "else if ("; - replacement += `${SqlParse.sqlCondition2JsCondition(args[1])}) return ${args[2]} ;`; + replacement = "else if ("; } + replacement += `${SqlParse.sqlCondition2JsCondition(args[1])}) return ${args[2]} ;`; } return replacement; @@ -4003,7 +3979,7 @@ class ConglomerateRecord { return row; let i = 0; - for (/** @type {TableField} */ const field of this.selectVirtualFields) { + for (const field of this.selectVirtualFields) { if (field.aggregateFunction !== "") { row.push(ConglomerateRecord.aggregateColumn(field, groupRecords, i)); } @@ -4035,7 +4011,7 @@ class ConglomerateRecord { const calc = ConglomerateRecord.createCalculatedFieldObjectForTable(aggTable); let i = 0; - for (/** @type {TableField} */ const field of this.selectVirtualFields) { + for (const field of this.selectVirtualFields) { if (field.calculatedAggregateFunction !== "") { const ucFunction = SelectTables.toUpperCaseExceptQuoted(field.calculatedAggregateFunction, true); const updatedFunc = ConglomerateRecord.replaceFieldNames(ucFunction, mappedField); @@ -4046,7 +4022,6 @@ class ConglomerateRecord { } /** - * * @param {any[]} row * @returns {Table} */ @@ -4063,7 +4038,6 @@ class ConglomerateRecord { } /** - * * @param {Table} aggTable * @param {TableField[]} virtualFields * @returns {Object[]} @@ -4082,7 +4056,6 @@ class ConglomerateRecord { } /** - * * @param {Table} aggTable * @returns {CalculatedField} */ @@ -4095,14 +4068,13 @@ class ConglomerateRecord { } /** - * + * Returns an updated 'calcFunc' string, where fields are given different names. * @param {String} calcFunc * @param {Object[]} mappedField + * @returns {String} */ static replaceFieldNames(calcFunc, mappedField) { - for (const item of mappedField) { - calcFunc = calcFunc.replaceAll(item.oldName, item.newName); - } + mappedField.forEach(item => calcFunc = calcFunc.replaceAll(item.oldName, item.newName)); return calcFunc; } @@ -4160,7 +4132,6 @@ class ConglomerateRecord { } /** - * * @param {any} columnData * @returns {Number} */ @@ -4193,7 +4164,6 @@ class AggregateTrack { } /** - * * @param {Number} numericData * @returns {Number} */ @@ -4205,7 +4175,6 @@ class AggregateTrack { } /** - * * @param {Number} numericData * @returns {Number} */ @@ -4217,7 +4186,6 @@ class AggregateTrack { } /** - * * @param {Number} numericData * @returns {Number} */ @@ -4229,7 +4197,6 @@ class AggregateTrack { } /** - * * @returns {Number} */ getAverage() { @@ -4237,7 +4204,6 @@ class AggregateTrack { } /** - * * @param {any} columnData * @returns {Number} */ @@ -4256,7 +4222,6 @@ class AggregateTrack { } /** - * * @param {any} columnData * @returns {void} */ @@ -4346,6 +4311,7 @@ class TableFields { * Sort function for table fields list. * @param {TableField} fldA * @param {TableField} fldB + * @return {Number} */ static sortPrimaryFields(fldA, fldB) { let keyA = fldA.isPrimaryTable ? 0 : 1000; @@ -4382,8 +4348,9 @@ class TableFields { if (field.originalTableColumn !== -1) { const key = `${field.originalTable}:${field.originalTableColumn}`; - if (!this.tableColumnMap.has(key)) + if (!this.tableColumnMap.has(key)) { this.tableColumnMap.set(key, field); + } } } @@ -4491,7 +4458,6 @@ class TableFields { } /** - * * @param {SelectFieldParameters} selectedFieldParms * @returns {void} */ @@ -4499,8 +4465,9 @@ class TableFields { let fieldInfo = this.getFieldInfo(selectedFieldParms.parsedField.columnName); // If GROUP BY field is in our SELECT field list - we can ignore. - if (selectedFieldParms.isTempField && fieldInfo.selectColumn !== -1) + if (selectedFieldParms.isTempField && fieldInfo.selectColumn !== -1) { return; + } if (selectedFieldParms.parsedField.aggregateFunctionName !== "" || fieldInfo.selectColumn !== -1) { // A new SELECT field, not from existing. @@ -4525,7 +4492,6 @@ class TableFields { } /** - * * @param {SelectFieldParameters} selectedFieldParms */ updateCalculatedAsSelected(selectedFieldParms) { @@ -4544,7 +4510,6 @@ class TableFields { } /** - * * @param {SelectFieldParameters} selectedFieldParms */ updateConstantAsSelected(selectedFieldParms) { @@ -4563,7 +4528,6 @@ class TableFields { } /** - * * @param {String} fieldName * @returns {void} */ @@ -4577,7 +4541,6 @@ class TableFields { } /** - * * @param {String[]} columnName * @returns {Boolean} */ @@ -4651,7 +4614,6 @@ class TableFields { columnOutput = matchingTableIndex === 0 ? columnTableNameReplacement + columnOutput.slice(matchingTableIndex + fld.originalTable.length) : columnOutput; } columnTitles.push(columnOutput); - } return columnTitles; @@ -4873,7 +4835,6 @@ class TableField { } /** - * * @param {String} value * @returns {TableField} */ @@ -4977,20 +4938,17 @@ class TableField { * @returns {String[]} */ static getAllExtendedAliasNames(masterFields) { - const concatFields = []; - for (const vField of masterFields) { - for (const aliasName of vField.aliasNames) { - if (aliasName.indexOf(".") !== -1) { - concatFields.push(aliasName); - } - } - } + let concatFields = []; + + masterFields.forEach(vField => { + const fullNotationFields = vField.aliasNames.filter(aliasName => aliasName.indexOf(".") !== -1); + concatFields = concatFields.concat(fullNotationFields); + }) return concatFields; } } - /** * @classdesc Handle the various JOIN table types. */ @@ -5154,11 +5112,7 @@ class JoinTables { // skipcq: JS-0128 const result = []; for (let i = 0; i < recIds[0].length; i++) { - const temp = []; - - for (const rec of recIds) { - temp.push(typeof rec[i] === 'undefined' ? [] : rec[i]); - } + const temp = recIds.map(rec => typeof rec[i] === 'undefined' ? [] : rec[i]); const row = temp.reduce((accumulator, currentRecords) => accumulator.filter(c => currentRecords.includes(c)), temp[0]); if (row.length > 0) { @@ -5312,7 +5266,6 @@ class JoinTablesRecordIds { } /** - * * @param {Object} conditionAst The condition to JOIN our two tables. * @returns {MatchingJoinRecordIDs} */ @@ -5320,84 +5273,82 @@ class JoinTablesRecordIds { /** @type {Table} */ this.masterTable = this.dataJoin.isDerivedTable() ? this.dataJoin.getJoinedTableInfo() : this.primaryTableInfo; this.calcSqlField = new CalculatedField(this.masterTable, this.primaryTableInfo, this.tableFields); - this.joinFields = this.getLeftRightFieldInfo(conditionAst); return this.getMatchedRecordIds(); } /** - * * @param {TableFields} tableFields * @returns {JoinTablesRecordIds} */ setTableFields(tableFields) { this.tableFields = tableFields; + return this; } /** - * * @param {Map} tableInfo - Map of table info. * @returns {JoinTablesRecordIds} */ setTableInfo(tableInfo) { this.tableInfo = tableInfo; + return this; } /** - * * @param {BindData} bindVariables - Bind variable data. * @returns {JoinTablesRecordIds} */ setBindVariables(bindVariables) { this.bindVariables = bindVariables; + return this; } /** - * * @param {String} name * @returns {JoinTablesRecordIds} */ setRightTableName(name) { this.rightTableName = name; + return this; } /** - * * @param {String} name * @returns {JoinTablesRecordIds} */ setLeftTableName(name) { this.leftTableName = name; + return this; } /** - * * @param {String} joinType * @returns {JoinTablesRecordIds} */ setJoinType(joinType) { this.joinType = joinType; + return this; } /** - * * @param {Table} primaryTableInfo * @returns {JoinTablesRecordIds} */ setPrimaryTableInfo(primaryTableInfo) { this.primaryTableInfo = primaryTableInfo; + return this; } /** - * * @returns {LeftRightJoinFields} */ getJoinFieldsInfo() { @@ -5509,7 +5460,6 @@ class JoinTablesRecordIds { } /** - * * @param {String} calcField * @param {String[]} columns * @returns {Object} @@ -5617,11 +5567,7 @@ class JoinTablesRecordIds { keyMasterJoinField = this.calcSqlField.evaluateCalculatedField(fieldInfo.column, recordNumber); } - if (keyMasterJoinField !== null) { - keyMasterJoinField = keyMasterJoinField.toString().toUpperCase(); - } - - return keyMasterJoinField; + return keyMasterJoinField?.toString().toUpperCase(); } /** @@ -7020,7 +6966,7 @@ class TableData { // skipcq: JS-0128 else if (cacheSeconds > 21600) { cache = new ScriptSettings(); if (TableData.isTimeToRunLongCacheExpiry()) { - cache.expire(false); + ScriptSettings.expire(false); TableData.setLongCacheExpiry(); } cacheSeconds = cacheSeconds / 86400; // ScriptSettings put() wants days to hold. @@ -7236,7 +7182,7 @@ class TableData { // skipcq: JS-0128 // Load data from SHEETS. const arrData = TableData.loadValuesFromRangeOrSheet(namedRange); - Logger.log(`Just LOADED from SHEET: ${arrData.length}`); + Logger.log(`Just LOADED from SHEET: Item Count=${arrData.length}`); TableData.cachePutArray(cache, namedRange, cacheSeconds, arrData); @@ -7253,6 +7199,7 @@ class TableData { // skipcq: JS-0128 let output = []; try { + Logger.log("Getting Range of Values: " + tableNamedRange); const sheetNamedRange = SpreadsheetApp.getActiveSpreadsheet().getRangeByName(tableNamedRange); if (sheetNamedRange === null) { @@ -7280,6 +7227,7 @@ class TableData { // skipcq: JS-0128 else { // @ts-ignore output = sheetNamedRange.getValues(); + Logger.log("Named Range Data Loaded: " + tableNamedRange + ". Items=" + output.length); } } catch (ex) { @@ -7466,7 +7414,6 @@ class ScriptSettings { // skipcq: JS-0128 } /** - * * @param {Object} propertyDataObject * @param {Number} daysToHold */ @@ -7475,32 +7422,106 @@ class ScriptSettings { // skipcq: JS-0128 keys.forEach(key => this.put(key, propertyDataObject[key], daysToHold)); } + /** + * Puts list of data into cache using one API call. Data is converted to JSON before it is updated. + * @param {String[]} cacheKeys + * @param {any[]} newCacheData + * @param {Number} daysToHold + */ + static putAllKeysWithData(cacheKeys, newCacheData, daysToHold = 7) { + const bulkData = {}; + + for (let i = 0; i < cacheKeys.length; i++) { + // Create our object with an expiry time. + const objData = new PropertyData(newCacheData[i], daysToHold); + + // Our property needs to be a string + bulkData[cacheKeys[i]] = JSON.stringify(objData); + } + + PropertiesService.getScriptProperties().setProperties(bulkData); + } + + /** + * Returns ALL cached data for each key value requested. + * Only 1 API call is made, so much faster than retrieving single values. + * @param {String[]} cacheKeys + * @returns {any[]} + */ + static getAll(cacheKeys) { + const values = []; + + if (cacheKeys.length === 0) { + return values; + } + + const allProperties = PropertiesService.getScriptProperties().getProperties(); + + // Removing properties is very slow, so remove only 1 at a time. This is enough as this function is called frequently. + ScriptSettings.expire(false, 1, allProperties); + + for (const key of cacheKeys) { + const myData = allProperties[key]; + + if (typeof myData === 'undefined') { + values.push(null); + } + else { + /** @type {PropertyData} */ + const myPropertyData = JSON.parse(myData); + + if (PropertyData.isExpired(myPropertyData)) { + values.push(null); + PropertiesService.getScriptProperties().deleteProperty(key); + Logger.log(`Delete expired Script Property Key=${key}`); + } + else { + values.push(PropertyData.getData(myPropertyData)); + } + } + } + + return values; + } + /** * Removes script settings that have expired. * @param {Boolean} deleteAll - true - removes ALL script settings regardless of expiry time. + * @param {Number} maxDelete - maximum number of items to delete that are expired. + * @param {Object} allPropertiesObject - All properties already loaded. If null, will load iteself. */ - expire(deleteAll) { - const allKeys = this.scriptProperties.getKeys(); + static expire(deleteAll, maxDelete = 999, allPropertiesObject = null) { + const allProperties = allPropertiesObject === null ? PropertiesService.getScriptProperties().getProperties() : allPropertiesObject; + const allKeys = Object.keys(allProperties); + let deleteCount = 0; for (const key of allKeys) { - const myData = this.scriptProperties.getProperty(key); + let propertyValue = null; + try { + propertyValue = JSON.parse(allProperties[key]); + } + catch (e) { + // A property that is NOT cached by CACHEFINANCE + continue; + } - if (myData !== null) { - let propertyValue = null; - try { - propertyValue = JSON.parse(myData); - } - catch (e) { - Logger.log(`Script property data is not JSON. key=${key}`); - continue; - } + const propertyOfThisApplication = propertyValue?.expiry !== undefined; - const propertyOfThisApplication = propertyValue?.expiry !== undefined; + if (propertyOfThisApplication && (PropertyData.isExpired(propertyValue) || deleteAll)) { + PropertiesService.getScriptProperties().deleteProperty(key); + delete allProperties[key]; - if (propertyOfThisApplication && (PropertyData.isExpired(propertyValue) || deleteAll)) { - this.scriptProperties.deleteProperty(key); - Logger.log(`Removing expired SCRIPT PROPERTY: key=${key}`); - } + // There is no way to iterate existing from 'short' cache, so we assume there is a + // matching short cache entry and attempt to delete. + CacheFinance.deleteFromShortCache(key); + + Logger.log(`Removing expired SCRIPT PROPERTY: key=${key}`); + + deleteCount++; + } + + if (deleteCount >= maxDelete) { + return; } } } @@ -7535,16 +7556,13 @@ class PropertyData { } /** - * * @param {PropertyData} obj * @returns {any} */ static getData(obj) { let value = null; try { - if (!PropertyData.isExpired(obj)) { - value = JSON.parse(obj.myData); - } + value = JSON.parse(obj.myData); } catch (ex) { Logger.log(`Invalid property value. Not JSON: ${ex.toString()}`); @@ -7669,6 +7687,92 @@ class Select2Object { // skipcq: JS-0128 return noTableColumns; } + /** + * First row MUST be column names. + * @param {any[][]} tableDataArray + * @returns {Object[]} + */ + static convertTableArrayToObjectArray(tableDataArray) { + // First item in return array is an array of column names. + const propertyNames = Select2Object.convertColumnTitleToPropertyName(tableDataArray[0]); + + return Select2Object.createTableObjectArray(propertyNames, tableDataArray); + } + + /** + * + * @param {Object[]} objectArray + * @param {String[]} columnTitles + * @param {Boolean} outputTitleRow + * @returns {any[][]} + */ + static convertObjectArrayToTableArray(objectArray, columnTitles, outputTitleRow=true) { + const propertyNames = Select2Object.convertColumnTitleToPropertyName(columnTitles); + const tableArray = []; + + if (outputTitleRow) + tableArray.push(columnTitles); + + for (const objectRow of objectArray) { + const row = []; + + for (const prop of propertyNames) { + row.push(objectRow[prop]); + } + + tableArray.push(row); + } + + return tableArray; + } + + /** + * + * @param {Object} object + * @param {String[]} columnTitles + * @returns {String[]} + */ + static convertObjectToArray(object, columnTitles) { + const propertyNames = Select2Object.convertColumnTitleToPropertyName(columnTitles); + const row = []; + for (const prop of propertyNames) { + row.push(object[prop]); + } + + return row; + } + + /** + * Convert a sheet column name into format used for property name (spaces to underscore && lowercase) + * @param {String[]} columnTitles + * @returns {String[]} + */ + static convertColumnTitleToPropertyName(columnTitles) { + let columnNames = [...columnTitles]; + const srcColumns = columnNames.map(col => col.trim()).map(col => col.toLowerCase()).map(col => col.replaceAll(' ', '_')); + + return srcColumns; + } + + /** + * Get column number - starting at 1 in object. + * @param {Object} object + * @param {String} columnTitle + * @returns {Number} + */ + static getColumnNumber(object, columnTitle) { + const prop = Select2Object.convertColumnTitleToPropertyName([columnTitle])[0]; + let col = 1; + for (const propName in object) { + if (propName === prop) { + return col; + } + col++; + } + + return -1; + } + /** * * @param {String[]} columnNames @@ -7707,6 +7811,16 @@ class Select2Object { // skipcq: JS-0128 dataObject[col] = ''; } + dataObject.get = function (columnTitle) { + const prop = Select2Object.convertColumnTitleToPropertyName([columnTitle])[0]; + return this[prop]; + }; + + dataObject.set = function (columnTitle, value) { + const prop = Select2Object.convertColumnTitleToPropertyName([columnTitle])[0]; + this[prop] = value; + } + return dataObject; } } diff --git a/package-lock.json b/package-lock.json index f9a8b90..bb45126 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@demmings/gssql", - "version": "1.3.42", + "version": "1.3.43", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@demmings/gssql", - "version": "1.3.42", + "version": "1.3.43", "license": "ISC", "dependencies": { "gas-local": "^1.3.1" diff --git a/package.json b/package.json index 4db1933..4088d76 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@demmings/gssql", - "version": "1.3.42", + "version": "1.3.43", "description": "Google Sheets QUERY function replacement using real SQL select syntax.", "main": "testGsSql.js", "files": ["./src", "src", "img", "dist"], diff --git a/src/JoinTables.js b/src/JoinTables.js index 0b8bebd..4dfb938 100644 --- a/src/JoinTables.js +++ b/src/JoinTables.js @@ -170,11 +170,7 @@ class JoinTables { // skipcq: JS-0128 const result = []; for (let i = 0; i < recIds[0].length; i++) { - const temp = []; - - for (const rec of recIds) { - temp.push(typeof rec[i] === 'undefined' ? [] : rec[i]); - } + const temp = recIds.map(rec => typeof rec[i] === 'undefined' ? [] : rec[i]); const row = temp.reduce((accumulator, currentRecords) => accumulator.filter(c => currentRecords.includes(c)), temp[0]); if (row.length > 0) { @@ -328,7 +324,6 @@ class JoinTablesRecordIds { } /** - * * @param {Object} conditionAst The condition to JOIN our two tables. * @returns {MatchingJoinRecordIDs} */ @@ -336,84 +331,82 @@ class JoinTablesRecordIds { /** @type {Table} */ this.masterTable = this.dataJoin.isDerivedTable() ? this.dataJoin.getJoinedTableInfo() : this.primaryTableInfo; this.calcSqlField = new CalculatedField(this.masterTable, this.primaryTableInfo, this.tableFields); - this.joinFields = this.getLeftRightFieldInfo(conditionAst); return this.getMatchedRecordIds(); } /** - * * @param {TableFields} tableFields * @returns {JoinTablesRecordIds} */ setTableFields(tableFields) { this.tableFields = tableFields; + return this; } /** - * * @param {Map} tableInfo - Map of table info. * @returns {JoinTablesRecordIds} */ setTableInfo(tableInfo) { this.tableInfo = tableInfo; + return this; } /** - * * @param {BindData} bindVariables - Bind variable data. * @returns {JoinTablesRecordIds} */ setBindVariables(bindVariables) { this.bindVariables = bindVariables; + return this; } /** - * * @param {String} name * @returns {JoinTablesRecordIds} */ setRightTableName(name) { this.rightTableName = name; + return this; } /** - * * @param {String} name * @returns {JoinTablesRecordIds} */ setLeftTableName(name) { this.leftTableName = name; + return this; } /** - * * @param {String} joinType * @returns {JoinTablesRecordIds} */ setJoinType(joinType) { this.joinType = joinType; + return this; } /** - * * @param {Table} primaryTableInfo * @returns {JoinTablesRecordIds} */ setPrimaryTableInfo(primaryTableInfo) { this.primaryTableInfo = primaryTableInfo; + return this; } /** - * * @returns {LeftRightJoinFields} */ getJoinFieldsInfo() { @@ -525,7 +518,6 @@ class JoinTablesRecordIds { } /** - * * @param {String} calcField * @param {String[]} columns * @returns {Object} @@ -633,11 +625,7 @@ class JoinTablesRecordIds { keyMasterJoinField = this.calcSqlField.evaluateCalculatedField(fieldInfo.column, recordNumber); } - if (keyMasterJoinField !== null) { - keyMasterJoinField = keyMasterJoinField.toString().toUpperCase(); - } - - return keyMasterJoinField; + return keyMasterJoinField?.toString().toUpperCase(); } /** diff --git a/src/ScriptSettings.js b/src/ScriptSettings.js index b8da757..5fece4f 100644 --- a/src/ScriptSettings.js +++ b/src/ScriptSettings.js @@ -1,7 +1,15 @@ /* *** DEBUG START *** // Remove comments for testing in NODE -export { ScriptSettings }; +export { ScriptSettings, PropertyData }; + import { CacheFinance } from "../CacheFinance.js"; import { PropertiesService } from "../GasMocks.js"; + +class Logger { + static log(msg) { + console.log(msg); + } +} + // *** DEBUG END ***/ /** @classdesc @@ -53,7 +61,6 @@ class ScriptSettings { // skipcq: JS-0128 } /** - * * @param {Object} propertyDataObject * @param {Number} daysToHold */ @@ -62,32 +69,106 @@ class ScriptSettings { // skipcq: JS-0128 keys.forEach(key => this.put(key, propertyDataObject[key], daysToHold)); } + /** + * Puts list of data into cache using one API call. Data is converted to JSON before it is updated. + * @param {String[]} cacheKeys + * @param {any[]} newCacheData + * @param {Number} daysToHold + */ + static putAllKeysWithData(cacheKeys, newCacheData, daysToHold = 7) { + const bulkData = {}; + + for (let i = 0; i < cacheKeys.length; i++) { + // Create our object with an expiry time. + const objData = new PropertyData(newCacheData[i], daysToHold); + + // Our property needs to be a string + bulkData[cacheKeys[i]] = JSON.stringify(objData); + } + + PropertiesService.getScriptProperties().setProperties(bulkData); + } + + /** + * Returns ALL cached data for each key value requested. + * Only 1 API call is made, so much faster than retrieving single values. + * @param {String[]} cacheKeys + * @returns {any[]} + */ + static getAll(cacheKeys) { + const values = []; + + if (cacheKeys.length === 0) { + return values; + } + + const allProperties = PropertiesService.getScriptProperties().getProperties(); + + // Removing properties is very slow, so remove only 1 at a time. This is enough as this function is called frequently. + ScriptSettings.expire(false, 1, allProperties); + + for (const key of cacheKeys) { + const myData = allProperties[key]; + + if (typeof myData === 'undefined') { + values.push(null); + } + else { + /** @type {PropertyData} */ + const myPropertyData = JSON.parse(myData); + + if (PropertyData.isExpired(myPropertyData)) { + values.push(null); + PropertiesService.getScriptProperties().deleteProperty(key); + Logger.log(`Delete expired Script Property Key=${key}`); + } + else { + values.push(PropertyData.getData(myPropertyData)); + } + } + } + + return values; + } + /** * Removes script settings that have expired. * @param {Boolean} deleteAll - true - removes ALL script settings regardless of expiry time. + * @param {Number} maxDelete - maximum number of items to delete that are expired. + * @param {Object} allPropertiesObject - All properties already loaded. If null, will load iteself. */ - expire(deleteAll) { - const allKeys = this.scriptProperties.getKeys(); + static expire(deleteAll, maxDelete = 999, allPropertiesObject = null) { + const allProperties = allPropertiesObject === null ? PropertiesService.getScriptProperties().getProperties() : allPropertiesObject; + const allKeys = Object.keys(allProperties); + let deleteCount = 0; for (const key of allKeys) { - const myData = this.scriptProperties.getProperty(key); + let propertyValue = null; + try { + propertyValue = JSON.parse(allProperties[key]); + } + catch (e) { + // A property that is NOT cached by CACHEFINANCE + continue; + } - if (myData !== null) { - let propertyValue = null; - try { - propertyValue = JSON.parse(myData); - } - catch (e) { - Logger.log(`Script property data is not JSON. key=${key}`); - continue; - } + const propertyOfThisApplication = propertyValue?.expiry !== undefined; - const propertyOfThisApplication = propertyValue?.expiry !== undefined; + if (propertyOfThisApplication && (PropertyData.isExpired(propertyValue) || deleteAll)) { + PropertiesService.getScriptProperties().deleteProperty(key); + delete allProperties[key]; - if (propertyOfThisApplication && (PropertyData.isExpired(propertyValue) || deleteAll)) { - this.scriptProperties.deleteProperty(key); - Logger.log(`Removing expired SCRIPT PROPERTY: key=${key}`); - } + // There is no way to iterate existing from 'short' cache, so we assume there is a + // matching short cache entry and attempt to delete. + CacheFinance.deleteFromShortCache(key); + + Logger.log(`Removing expired SCRIPT PROPERTY: key=${key}`); + + deleteCount++; + } + + if (deleteCount >= maxDelete) { + return; } } } @@ -122,16 +203,13 @@ class PropertyData { } /** - * * @param {PropertyData} obj * @returns {any} */ static getData(obj) { let value = null; try { - if (!PropertyData.isExpired(obj)) { - value = JSON.parse(obj.myData); - } + value = JSON.parse(obj.myData); } catch (ex) { Logger.log(`Invalid property value. Not JSON: ${ex.toString()}`); diff --git a/src/Select2Object.js b/src/Select2Object.js index f4714ed..2278643 100644 --- a/src/Select2Object.js +++ b/src/Select2Object.js @@ -110,6 +110,92 @@ class Select2Object { // skipcq: JS-0128 return noTableColumns; } + /** + * First row MUST be column names. + * @param {any[][]} tableDataArray + * @returns {Object[]} + */ + static convertTableArrayToObjectArray(tableDataArray) { + // First item in return array is an array of column names. + const propertyNames = Select2Object.convertColumnTitleToPropertyName(tableDataArray[0]); + + return Select2Object.createTableObjectArray(propertyNames, tableDataArray); + } + + /** + * + * @param {Object[]} objectArray + * @param {String[]} columnTitles + * @param {Boolean} outputTitleRow + * @returns {any[][]} + */ + static convertObjectArrayToTableArray(objectArray, columnTitles, outputTitleRow=true) { + const propertyNames = Select2Object.convertColumnTitleToPropertyName(columnTitles); + const tableArray = []; + + if (outputTitleRow) + tableArray.push(columnTitles); + + for (const objectRow of objectArray) { + const row = []; + + for (const prop of propertyNames) { + row.push(objectRow[prop]); + } + + tableArray.push(row); + } + + return tableArray; + } + + /** + * + * @param {Object} object + * @param {String[]} columnTitles + * @returns {String[]} + */ + static convertObjectToArray(object, columnTitles) { + const propertyNames = Select2Object.convertColumnTitleToPropertyName(columnTitles); + const row = []; + for (const prop of propertyNames) { + row.push(object[prop]); + } + + return row; + } + + /** + * Convert a sheet column name into format used for property name (spaces to underscore && lowercase) + * @param {String[]} columnTitles + * @returns {String[]} + */ + static convertColumnTitleToPropertyName(columnTitles) { + let columnNames = [...columnTitles]; + const srcColumns = columnNames.map(col => col.trim()).map(col => col.toLowerCase()).map(col => col.replaceAll(' ', '_')); + + return srcColumns; + } + + /** + * Get column number - starting at 1 in object. + * @param {Object} object + * @param {String} columnTitle + * @returns {Number} + */ + static getColumnNumber(object, columnTitle) { + const prop = Select2Object.convertColumnTitleToPropertyName([columnTitle])[0]; + let col = 1; + for (const propName in object) { + if (propName === prop) { + return col; + } + col++; + } + + return -1; + } + /** * * @param {String[]} columnNames @@ -148,6 +234,16 @@ class Select2Object { // skipcq: JS-0128 dataObject[col] = ''; } + dataObject.get = function (columnTitle) { + const prop = Select2Object.convertColumnTitleToPropertyName([columnTitle])[0]; + return this[prop]; + }; + + dataObject.set = function (columnTitle, value) { + const prop = Select2Object.convertColumnTitleToPropertyName([columnTitle])[0]; + this[prop] = value; + } + return dataObject; } } \ No newline at end of file diff --git a/src/SqlTest.js b/src/SqlTest.js index d4dbced..9e5b341 100644 --- a/src/SqlTest.js +++ b/src/SqlTest.js @@ -270,8 +270,7 @@ class TestedStatements { for (let table of this.tables.values()) { let rangeName = table.tableName; if (table.tableData.length > 0) { - const tableUtil = new Table(""); - rangeName += "!A2:" + tableUtil.numberToSheetColumnLetter(table.tableData[0].length) + rangeName += "!A2:" + Table.numberToSheetColumnLetter(table.tableData[0].length) } if (tabDef !== "") { diff --git a/src/TableData.js b/src/TableData.js index b37309d..aaa7efe 100644 --- a/src/TableData.js +++ b/src/TableData.js @@ -61,7 +61,7 @@ class TableData { // skipcq: JS-0128 else if (cacheSeconds > 21600) { cache = new ScriptSettings(); if (TableData.isTimeToRunLongCacheExpiry()) { - cache.expire(false); + ScriptSettings.expire(false); TableData.setLongCacheExpiry(); } cacheSeconds = cacheSeconds / 86400; // ScriptSettings put() wants days to hold. @@ -277,7 +277,7 @@ class TableData { // skipcq: JS-0128 // Load data from SHEETS. const arrData = TableData.loadValuesFromRangeOrSheet(namedRange); - Logger.log(`Just LOADED from SHEET: ${arrData.length}`); + Logger.log(`Just LOADED from SHEET: Item Count=${arrData.length}`); TableData.cachePutArray(cache, namedRange, cacheSeconds, arrData); @@ -294,6 +294,7 @@ class TableData { // skipcq: JS-0128 let output = []; try { + Logger.log("Getting Range of Values: " + tableNamedRange); const sheetNamedRange = SpreadsheetApp.getActiveSpreadsheet().getRangeByName(tableNamedRange); if (sheetNamedRange === null) { @@ -321,6 +322,7 @@ class TableData { // skipcq: JS-0128 else { // @ts-ignore output = sheetNamedRange.getValues(); + Logger.log("Named Range Data Loaded: " + tableNamedRange + ". Items=" + output.length); } } catch (ex) { diff --git a/src/Views.js b/src/Views.js index 48b63cd..c4346b0 100644 --- a/src/Views.js +++ b/src/Views.js @@ -86,27 +86,24 @@ class SelectTables { /** * - * @param {Object[]} ast + * @param {Object[]} astFields * @returns {Object[]} */ - getAggregateFunctionFieldsInGroupByCalculation(ast) { + getAggregateFunctionFieldsInGroupByCalculation(astFields) { const fields = []; const aggFuncList = ["SUM", "MIN", "MAX", "COUNT", "AVG", "DISTINCT", "GROUP_CONCAT"]; // When fld.terms is defined, it is a calculation, not just a single function. - const aggregateFunctions = ast.filter(f => typeof f.terms !== 'undefined'); + const aggregateFunctions = astFields.filter(f => typeof f.terms !== 'undefined'); for (const fld of aggregateFunctions) { const functionString = SelectTables.toUpperCaseExceptQuoted(fld.name, true); + const usedFunctions = aggFuncList.map(func => SelectTables.parseForFunctions(functionString, func)).filter(f => f != null); - for (const func of aggFuncList) { - const parsedFunctionList = SelectTables.parseForFunctions(functionString, func); + for (const parsedFunctionList of usedFunctions) { + this.tableFields.updateCalculatedFieldAsAggregateCalculation(fld.name); - if (parsedFunctionList !== null) { - this.tableFields.updateCalculatedFieldAsAggregateCalculation(fld.name); - - if (!this.tableFields.isFieldAlreadyInSelectList(parsedFunctionList)) { - fields.push({ name: parsedFunctionList[0], as: '', order: '' }); - } + if (!this.tableFields.isFieldAlreadyInSelectList(parsedFunctionList)) { + fields.push({ name: parsedFunctionList[0], as: '', order: '' }); } } } @@ -158,16 +155,9 @@ class SelectTables { * @returns {Number[]} - record ID's */ resolveCondition(logic, terms) { - const recordIDs = []; - - for (const cond of terms) { - if (typeof cond.logic === 'undefined') { - recordIDs.push(this.getRecordIDs(cond)); - } - else { - recordIDs.push(this.resolveCondition(cond.logic, cond.terms)); - } - } + const recordIDs = terms.map(cond => typeof cond.logic === 'undefined' + ? this.getRecordIDs(cond) + : this.resolveCondition(cond.logic, cond.terms)); return SelectTables.applyLogicOperatorToRecordIds(logic, recordIDs); } @@ -185,7 +175,7 @@ class SelectTables { if (logic === "AND") { results = recordIDs.reduce((a, b) => a.filter(c => b.includes(c)), recordIDs[0]); } - if (logic === "OR") { + else if (logic === "OR") { results = Array.from(new Set(recordIDs.reduce((a, b) => a.concat(b), recordIDs[0]))); } @@ -242,17 +232,16 @@ class SelectTables { fieldValue = fieldConditions.fieldConditionTableInfo.tableData[masterRecordID][fieldConditions.columnNumber]; } else if (fieldConditions.calculatedField !== "") { - if (fieldConditions.calculatedField.toUpperCase() === "NULL") { - fieldValue = "NULL"; - } - else { + fieldValue = "NULL"; + if (fieldConditions.calculatedField.toUpperCase() !== "NULL") { fieldValue = calcSqlField.evaluateCalculatedField(fieldConditions.calculatedField, masterRecordID); } } else if (fieldConditions.subQuery !== null) { const arrayResult = fieldConditions.subQuery.select(masterRecordID, calcSqlField); - if (typeof arrayResult !== 'undefined' && arrayResult !== null && arrayResult.length > 0) + if (typeof arrayResult !== 'undefined' && arrayResult !== null && arrayResult.length > 0) { fieldValue = arrayResult[0][0]; + } } return fieldValue; @@ -683,15 +672,10 @@ class SelectTables { * @returns {ResolvedFieldCondition} */ resolveFieldCondition(fieldCondition) { - /** @type {String} */ let constantData = null; - /** @type {Number} */ let columnNumber = -1; - /** @type {Table} */ let fieldConditionTableInfo = null; - /** @type {String} */ let calculatedField = ""; - /** @type {CorrelatedSubQuery} */ let subQuery = null; if (typeof fieldCondition.SELECT !== 'undefined') { @@ -757,16 +741,15 @@ class SelectTables { resolveBindData(fieldCondition) { // Bind variable data. const constantData = this.bindVariables.get(fieldCondition); - if (typeof constantData === 'undefined') { - if (fieldCondition === '?') { - throw new Error("Bind variable naming is ?1, ?2... where ?1 is first bind data point in list.") - } - else { - throw new Error(`Bind variable ${fieldCondition} was not found`); - } + + if (typeof constantData !== 'undefined') { + return constantData; } - return constantData; + if (fieldCondition === '?') { + throw new Error("Bind variable naming is ?1, ?2... where ?1 is first bind data point in list.") + } + throw new Error(`Bind variable ${fieldCondition} was not found`); } /** @@ -789,12 +772,12 @@ class SelectTables { for (const tableName of tableSetCorrelated.keys()) { let isFound = false; // @ts-ignore - for (const outerTable of tableSet.keys()) { + tableSet.keys().forEach(outerTable => { if (outerTable === tableName || tableSet.get(outerTable) === tableName) { isFound = true; - break; } - } + }); + if (!isFound) { return true; } @@ -1364,13 +1347,8 @@ class VirtualFields { for (let i = 0; i < astFields.length; i++) { if (astFields[i].name === "*") { // Replace wildcard will actual field names from master table. - const masterTableFields = []; const allExpandedFields = masterTableInfo.getAllExtendedNotationFieldNames(); - - for (const virtualField of allExpandedFields) { - const selField = { name: virtualField }; - masterTableFields.push(selField); - } + const masterTableFields = allExpandedFields.map(virtualField => ({ name: virtualField })); astFields.splice(i, 1, ...masterTableFields); break; @@ -1464,18 +1442,19 @@ class DerivedTable { // skipcq: JS-0128 createTable() { const columnCount = this.rightField.tableInfo.getColumnCount(); const emptyRightRow = Array(columnCount).fill(null); - const joinedData = [DerivedTable.getCombinedColumnTitles(this.leftField, this.rightField)]; for (let i = 1; i < this.leftField.tableInfo.tableData.length; i++) { - if (typeof this.leftRecords[i] !== "undefined") { - if (typeof this.rightField.tableInfo.tableData[this.leftRecords[i][0]] === "undefined") - joinedData.push(this.leftField.tableInfo.tableData[i].concat(emptyRightRow)); - else { - const maxJoin = this.leftRecords[i].length; - for (let j = 0; j < maxJoin; j++) { - joinedData.push(this.leftField.tableInfo.tableData[i].concat(this.rightField.tableInfo.tableData[this.leftRecords[i][j]])); - } + if (typeof this.leftRecords[i] === "undefined") { + continue; + } + + if (typeof this.rightField.tableInfo.tableData[this.leftRecords[i][0]] === "undefined") { + joinedData.push(this.leftField.tableInfo.tableData[i].concat(emptyRightRow)); + } + else { + for (let j = 0; j < this.leftRecords[i].length; j++) { + joinedData.push(this.leftField.tableInfo.tableData[i].concat(this.rightField.tableInfo.tableData[this.leftRecords[i][j]])); } } } @@ -1549,20 +1528,16 @@ class SqlServerFunctions { [args, functionString] = this.caseStart(func, args, functionString); while (args !== null && args.length > 0) { - // Split on COMMA, except within brackets. - const parms = typeof args[1] === 'undefined' ? [] : SelectTables.parseForParams(args[1]); - - let replacement = ""; try { - replacement = this[func.toLocaleLowerCase()](parms, args, masterFields); + // Split on COMMA, except within brackets. + const parms = typeof args[1] === 'undefined' ? [] : SelectTables.parseForParams(args[1]); + const replacement = this[func.toLocaleLowerCase()](parms, args, masterFields); + functionString = functionString.replace(args[0], replacement); + args = this.parseFunctionArgs(func, functionString); } catch (ex) { throw new Error(`Internal Error. Function is missing. ${func}`); } - - functionString = functionString.replace(args[0], replacement); - - args = this.parseFunctionArgs(func, functionString); } functionString = this.caseEnd(func, functionString); @@ -2107,7 +2082,6 @@ class SqlServerFunctions { const funcString = `lastDay = new Date(${today}.getFullYear(), ${today}.getMonth()+1, 0)`; return SqlServerFunctions.inlineFuncDateInReturn(funcString, "lastDay"); - } /** @@ -2181,21 +2155,23 @@ class SqlServerFunctions { * @returns {String} - js code to handle this WHEN case. */ caseWhen(args) { - let replacement = ""; + if (args.length < 3) { + return ""; + } - if (args.length > 2) { - if (typeof args[1] === 'undefined' && typeof args[2] === 'undefined') { - replacement = `else return ${args[3]};`; + let replacement = ""; + if (typeof args[1] === 'undefined' && typeof args[2] === 'undefined') { + replacement = `else return ${args[3]};`; + } + else { + if (this.firstCase) { + replacement = "(() => {if ("; + this.firstCase = false; } else { - if (this.firstCase) { - replacement = "(() => {if ("; - this.firstCase = false; - } - else - replacement = "else if ("; - replacement += `${SqlParse.sqlCondition2JsCondition(args[1])}) return ${args[2]} ;`; + replacement = "else if ("; } + replacement += `${SqlParse.sqlCondition2JsCondition(args[1])}) return ${args[2]} ;`; } return replacement; @@ -2245,7 +2221,7 @@ class ConglomerateRecord { return row; let i = 0; - for (/** @type {TableField} */ const field of this.selectVirtualFields) { + for (const field of this.selectVirtualFields) { if (field.aggregateFunction !== "") { row.push(ConglomerateRecord.aggregateColumn(field, groupRecords, i)); } @@ -2277,7 +2253,7 @@ class ConglomerateRecord { const calc = ConglomerateRecord.createCalculatedFieldObjectForTable(aggTable); let i = 0; - for (/** @type {TableField} */ const field of this.selectVirtualFields) { + for (const field of this.selectVirtualFields) { if (field.calculatedAggregateFunction !== "") { const ucFunction = SelectTables.toUpperCaseExceptQuoted(field.calculatedAggregateFunction, true); const updatedFunc = ConglomerateRecord.replaceFieldNames(ucFunction, mappedField); @@ -2288,7 +2264,6 @@ class ConglomerateRecord { } /** - * * @param {any[]} row * @returns {Table} */ @@ -2305,7 +2280,6 @@ class ConglomerateRecord { } /** - * * @param {Table} aggTable * @param {TableField[]} virtualFields * @returns {Object[]} @@ -2324,7 +2298,6 @@ class ConglomerateRecord { } /** - * * @param {Table} aggTable * @returns {CalculatedField} */ @@ -2337,14 +2310,13 @@ class ConglomerateRecord { } /** - * + * Returns an updated 'calcFunc' string, where fields are given different names. * @param {String} calcFunc * @param {Object[]} mappedField + * @returns {String} */ static replaceFieldNames(calcFunc, mappedField) { - for (const item of mappedField) { - calcFunc = calcFunc.replaceAll(item.oldName, item.newName); - } + mappedField.forEach(item => calcFunc = calcFunc.replaceAll(item.oldName, item.newName)); return calcFunc; } @@ -2402,7 +2374,6 @@ class ConglomerateRecord { } /** - * * @param {any} columnData * @returns {Number} */ @@ -2435,7 +2406,6 @@ class AggregateTrack { } /** - * * @param {Number} numericData * @returns {Number} */ @@ -2447,7 +2417,6 @@ class AggregateTrack { } /** - * * @param {Number} numericData * @returns {Number} */ @@ -2459,7 +2428,6 @@ class AggregateTrack { } /** - * * @param {Number} numericData * @returns {Number} */ @@ -2471,7 +2439,6 @@ class AggregateTrack { } /** - * * @returns {Number} */ getAverage() { @@ -2479,7 +2446,6 @@ class AggregateTrack { } /** - * * @param {any} columnData * @returns {Number} */ @@ -2498,7 +2464,6 @@ class AggregateTrack { } /** - * * @param {any} columnData * @returns {void} */ @@ -2588,6 +2553,7 @@ class TableFields { * Sort function for table fields list. * @param {TableField} fldA * @param {TableField} fldB + * @return {Number} */ static sortPrimaryFields(fldA, fldB) { let keyA = fldA.isPrimaryTable ? 0 : 1000; @@ -2624,8 +2590,9 @@ class TableFields { if (field.originalTableColumn !== -1) { const key = `${field.originalTable}:${field.originalTableColumn}`; - if (!this.tableColumnMap.has(key)) + if (!this.tableColumnMap.has(key)) { this.tableColumnMap.set(key, field); + } } } @@ -2733,7 +2700,6 @@ class TableFields { } /** - * * @param {SelectFieldParameters} selectedFieldParms * @returns {void} */ @@ -2741,8 +2707,9 @@ class TableFields { let fieldInfo = this.getFieldInfo(selectedFieldParms.parsedField.columnName); // If GROUP BY field is in our SELECT field list - we can ignore. - if (selectedFieldParms.isTempField && fieldInfo.selectColumn !== -1) + if (selectedFieldParms.isTempField && fieldInfo.selectColumn !== -1) { return; + } if (selectedFieldParms.parsedField.aggregateFunctionName !== "" || fieldInfo.selectColumn !== -1) { // A new SELECT field, not from existing. @@ -2767,7 +2734,6 @@ class TableFields { } /** - * * @param {SelectFieldParameters} selectedFieldParms */ updateCalculatedAsSelected(selectedFieldParms) { @@ -2786,7 +2752,6 @@ class TableFields { } /** - * * @param {SelectFieldParameters} selectedFieldParms */ updateConstantAsSelected(selectedFieldParms) { @@ -2805,7 +2770,6 @@ class TableFields { } /** - * * @param {String} fieldName * @returns {void} */ @@ -2819,7 +2783,6 @@ class TableFields { } /** - * * @param {String[]} columnName * @returns {Boolean} */ @@ -2893,7 +2856,6 @@ class TableFields { columnOutput = matchingTableIndex === 0 ? columnTableNameReplacement + columnOutput.slice(matchingTableIndex + fld.originalTable.length) : columnOutput; } columnTitles.push(columnOutput); - } return columnTitles; @@ -3115,7 +3077,6 @@ class TableField { } /** - * * @param {String} value * @returns {TableField} */ @@ -3219,15 +3180,13 @@ class TableField { * @returns {String[]} */ static getAllExtendedAliasNames(masterFields) { - const concatFields = []; - for (const vField of masterFields) { - for (const aliasName of vField.aliasNames) { - if (aliasName.indexOf(".") !== -1) { - concatFields.push(aliasName); - } - } - } + let concatFields = []; + + masterFields.forEach(vField => { + const fullNotationFields = vField.aliasNames.filter(aliasName => aliasName.indexOf(".") !== -1); + concatFields = concatFields.concat(fullNotationFields); + }) return concatFields; } -} +} \ No newline at end of file