pixelize-design-library 2.3.8 → 2.3.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (155) hide show
  1. package/.claude/settings.local.json +51 -0
  2. package/.cursor/plans/current.md +8 -11
  3. package/coverage/clover.xml +405 -0
  4. package/coverage/coverage-final.json +16 -0
  5. package/coverage/coverage-summary.json +50 -0
  6. package/coverage/lcov-report/Button/Button.tsx.html +244 -0
  7. package/coverage/lcov-report/Button/index.html +116 -0
  8. package/coverage/lcov-report/Checkbox/Checkbox.tsx.html +433 -0
  9. package/coverage/lcov-report/Checkbox/index.html +116 -0
  10. package/coverage/lcov-report/Common/ErrorMessage.tsx.html +148 -0
  11. package/coverage/lcov-report/Common/FormLabel.tsx.html +331 -0
  12. package/coverage/lcov-report/Common/HelperText.tsx.html +124 -0
  13. package/coverage/lcov-report/Common/index.html +146 -0
  14. package/coverage/lcov-report/Components/Button/Button.tsx.html +244 -0
  15. package/coverage/lcov-report/Components/Button/index.html +116 -0
  16. package/coverage/lcov-report/Components/Checkbox/Checkbox.tsx.html +433 -0
  17. package/coverage/lcov-report/Components/Checkbox/index.html +116 -0
  18. package/coverage/lcov-report/Components/Common/ErrorMessage.tsx.html +148 -0
  19. package/coverage/lcov-report/Components/Common/FormLabel.tsx.html +331 -0
  20. package/coverage/lcov-report/Components/Common/HelperText.tsx.html +124 -0
  21. package/coverage/lcov-report/Components/Common/index.html +146 -0
  22. package/coverage/lcov-report/Components/CustomModulesTable/CustomModulesTable.tsx.html +712 -0
  23. package/coverage/lcov-report/Components/CustomModulesTable/DeleteModuleModal.tsx.html +343 -0
  24. package/coverage/lcov-report/Components/CustomModulesTable/EditModuleModal.tsx.html +313 -0
  25. package/coverage/lcov-report/Components/CustomModulesTable/index.html +146 -0
  26. package/coverage/lcov-report/Components/Divider/Divider.tsx.html +133 -0
  27. package/coverage/lcov-report/Components/Divider/index.html +116 -0
  28. package/coverage/lcov-report/Components/Dropdown/DropDown.tsx.html +994 -0
  29. package/coverage/lcov-report/Components/Dropdown/index.html +116 -0
  30. package/coverage/lcov-report/Components/EmptyState/EmptyState.tsx.html +466 -0
  31. package/coverage/lcov-report/Components/EmptyState/index.html +116 -0
  32. package/coverage/lcov-report/Components/Header/HeaderActions.tsx.html +373 -0
  33. package/coverage/lcov-report/Components/Header/index.html +116 -0
  34. package/coverage/lcov-report/Components/Input/TextInput.tsx.html +487 -0
  35. package/coverage/lcov-report/Components/Input/index.html +116 -0
  36. package/coverage/lcov-report/Components/Input/textInputIconSize.ts.html +205 -0
  37. package/coverage/lcov-report/Components/KanbanBoard/AccountCard.tsx.html +547 -0
  38. package/coverage/lcov-report/Components/KanbanBoard/AccountRow.tsx.html +190 -0
  39. package/coverage/lcov-report/Components/KanbanBoard/KanbanActions/KanbanActions.tsx.html +247 -0
  40. package/coverage/lcov-report/Components/KanbanBoard/KanbanActions/index.html +116 -0
  41. package/coverage/lcov-report/Components/KanbanBoard/KanbanBoard.tsx.html +3598 -0
  42. package/coverage/lcov-report/Components/KanbanBoard/MeasuredItem.tsx.html +283 -0
  43. package/coverage/lcov-report/Components/KanbanBoard/index.html +161 -0
  44. package/coverage/lcov-report/Components/OrganizationDetails/CreateOrgModal.tsx.html +511 -0
  45. package/coverage/lcov-report/Components/OrganizationDetails/DeleteOrgModal.tsx.html +334 -0
  46. package/coverage/lcov-report/Components/OrganizationDetails/OrganizationDetails.tsx.html +1519 -0
  47. package/coverage/lcov-report/Components/OrganizationDetails/index.html +146 -0
  48. package/coverage/lcov-report/Components/RolesPermission/DeleteRoleModal.tsx.html +328 -0
  49. package/coverage/lcov-report/Components/RolesPermission/RolesPermission.tsx.html +1732 -0
  50. package/coverage/lcov-report/Components/RolesPermission/index.html +131 -0
  51. package/coverage/lcov-report/Components/SearchSelect/SearchSelect.tsx.html +2575 -0
  52. package/coverage/lcov-report/Components/SearchSelect/SelectTruncatedLabel.tsx.html +202 -0
  53. package/coverage/lcov-report/Components/SearchSelect/index.html +146 -0
  54. package/coverage/lcov-report/Components/SearchSelect/searchSelectSize.ts.html +496 -0
  55. package/coverage/lcov-report/Components/Select/Select.tsx.html +361 -0
  56. package/coverage/lcov-report/Components/Select/index.html +116 -0
  57. package/coverage/lcov-report/Components/SideBar/components/OtherApps.tsx.html +562 -0
  58. package/coverage/lcov-report/Components/SideBar/components/OverflowTooltipText.tsx.html +346 -0
  59. package/coverage/lcov-report/Components/SideBar/components/index.html +116 -0
  60. package/coverage/lcov-report/Components/SignInActivityTable/SignInActivityTable.tsx.html +490 -0
  61. package/coverage/lcov-report/Components/SignInActivityTable/index.html +116 -0
  62. package/coverage/lcov-report/Components/Table/components/TableActions.tsx.html +595 -0
  63. package/coverage/lcov-report/Components/Table/components/TableBody.tsx.html +2212 -0
  64. package/coverage/lcov-report/Components/Table/components/TableGroupRow.tsx.html +358 -0
  65. package/coverage/lcov-report/Components/Table/components/TableLoading.tsx.html +358 -0
  66. package/coverage/lcov-report/Components/Table/components/index.html +161 -0
  67. package/coverage/lcov-report/Components/Table/settings/ManageColumns.tsx.html +856 -0
  68. package/coverage/lcov-report/Components/Table/settings/index.html +116 -0
  69. package/coverage/lcov-report/Components/Tag/Tag.styles.tsx.html +331 -0
  70. package/coverage/lcov-report/Components/Tag/Tag.tsx.html +256 -0
  71. package/coverage/lcov-report/Components/Tag/index.html +131 -0
  72. package/coverage/lcov-report/Components/ToolTip/ToolTip.tsx.html +286 -0
  73. package/coverage/lcov-report/Components/ToolTip/index.html +116 -0
  74. package/coverage/lcov-report/Components/UserDetails/AddUserModal.tsx.html +709 -0
  75. package/coverage/lcov-report/Components/UserDetails/ChangeRoleModal.tsx.html +505 -0
  76. package/coverage/lcov-report/Components/UserDetails/DeactivateConfirmModal.tsx.html +379 -0
  77. package/coverage/lcov-report/Components/UserDetails/UserDetails.tsx.html +1900 -0
  78. package/coverage/lcov-report/Components/UserDetails/index.html +161 -0
  79. package/coverage/lcov-report/EmptyState/EmptyState.tsx.html +466 -0
  80. package/coverage/lcov-report/EmptyState/index.html +116 -0
  81. package/coverage/lcov-report/Hooks/index.html +116 -0
  82. package/coverage/lcov-report/Hooks/usePreferences.ts.html +421 -0
  83. package/coverage/lcov-report/Input/TextInput.tsx.html +487 -0
  84. package/coverage/lcov-report/Input/index.html +131 -0
  85. package/coverage/lcov-report/Input/textInputIconSize.ts.html +205 -0
  86. package/coverage/lcov-report/KanbanBoard.tsx.html +3481 -0
  87. package/coverage/lcov-report/OrganizationDetails/CreateOrgModal.tsx.html +511 -0
  88. package/coverage/lcov-report/OrganizationDetails/DeleteOrgModal.tsx.html +334 -0
  89. package/coverage/lcov-report/OrganizationDetails/OrganizationDetails.tsx.html +1519 -0
  90. package/coverage/lcov-report/OrganizationDetails/index.html +146 -0
  91. package/coverage/lcov-report/RolesPermission/DeleteRoleModal.tsx.html +328 -0
  92. package/coverage/lcov-report/RolesPermission/RolesPermission.tsx.html +1732 -0
  93. package/coverage/lcov-report/RolesPermission/index.html +116 -0
  94. package/coverage/lcov-report/SearchSelect/SearchSelect.tsx.html +2575 -0
  95. package/coverage/lcov-report/SearchSelect/SelectTruncatedLabel.tsx.html +202 -0
  96. package/coverage/lcov-report/SearchSelect/index.html +146 -0
  97. package/coverage/lcov-report/SearchSelect/searchSelectSize.ts.html +496 -0
  98. package/coverage/lcov-report/Table/CompactSelect.tsx.html +379 -0
  99. package/coverage/lcov-report/Table/Components/ActiveFilters.tsx.html +514 -0
  100. package/coverage/lcov-report/Table/Components/HeaderActions.tsx.html +373 -0
  101. package/coverage/lcov-report/Table/Components/Pagination.tsx.html +574 -0
  102. package/coverage/lcov-report/Table/Components/TableActions.tsx.html +574 -0
  103. package/coverage/lcov-report/Table/Components/TableBody.tsx.html +1027 -0
  104. package/coverage/lcov-report/Table/Components/TableFilters.tsx.html +397 -0
  105. package/coverage/lcov-report/Table/Components/TableHeader.tsx.html +1060 -0
  106. package/coverage/lcov-report/Table/Components/TableLoading.tsx.html +361 -0
  107. package/coverage/lcov-report/Table/Components/TableSearch.tsx.html +337 -0
  108. package/coverage/lcov-report/Table/Components/index.html +266 -0
  109. package/coverage/lcov-report/Table/Components/useDebounce.ts.html +178 -0
  110. package/coverage/lcov-report/Table/Components/useTable.ts.html +778 -0
  111. package/coverage/lcov-report/Table/LeftFilterPane.tsx.html +1810 -0
  112. package/coverage/lcov-report/Table/SelectOperationControls.tsx.html +178 -0
  113. package/coverage/lcov-report/Table/Table.tsx.html +1567 -0
  114. package/coverage/lcov-report/Table/TableProps.tsx.html +658 -0
  115. package/coverage/lcov-report/Table/TableSettings/ManageColumns.tsx.html +619 -0
  116. package/coverage/lcov-report/Table/TableSettings/TableFilters.tsx.html +229 -0
  117. package/coverage/lcov-report/Table/TableSettings/TableSettings.tsx.html +532 -0
  118. package/coverage/lcov-report/Table/TableSettings/index.html +146 -0
  119. package/coverage/lcov-report/Table/TableToDo.tsx.html +973 -0
  120. package/coverage/lcov-report/Table/TextOperationControls.tsx.html +271 -0
  121. package/coverage/lcov-report/Table/filterTypes.ts.html +97 -0
  122. package/coverage/lcov-report/Table/index.html +176 -0
  123. package/coverage/lcov-report/Table/settings/ManageColumns.tsx.html +856 -0
  124. package/coverage/lcov-report/Table/settings/index.html +116 -0
  125. package/coverage/lcov-report/Tag/Tag.tsx.html +256 -0
  126. package/coverage/lcov-report/Tag/index.html +116 -0
  127. package/coverage/lcov-report/Theme/buildBrandTokens.ts.html +175 -0
  128. package/coverage/lcov-report/Theme/chartColorsFromTheme.ts.html +214 -0
  129. package/coverage/lcov-report/Theme/index.html +131 -0
  130. package/coverage/lcov-report/Theme/useCustomTheme.ts.html +100 -0
  131. package/coverage/lcov-report/ToolTip/ToolTip.tsx.html +286 -0
  132. package/coverage/lcov-report/ToolTip/index.html +116 -0
  133. package/coverage/lcov-report/UserDetails/AddUserModal.tsx.html +709 -0
  134. package/coverage/lcov-report/UserDetails/ChangeRoleModal.tsx.html +505 -0
  135. package/coverage/lcov-report/UserDetails/index.html +116 -0
  136. package/coverage/lcov-report/Utils/functions.ts.html +106 -0
  137. package/coverage/lcov-report/Utils/index.html +116 -0
  138. package/coverage/lcov-report/Utils/table.ts.html +1189 -0
  139. package/coverage/lcov-report/base.css +224 -0
  140. package/coverage/lcov-report/block-navigation.js +87 -0
  141. package/coverage/lcov-report/favicon.png +0 -0
  142. package/coverage/lcov-report/index.html +251 -0
  143. package/coverage/lcov-report/prettify.css +1 -0
  144. package/coverage/lcov-report/prettify.js +2 -0
  145. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  146. package/coverage/lcov-report/sorter.js +210 -0
  147. package/coverage/lcov.info +981 -0
  148. package/dist/Assets/defaultLogo.tsx +30 -0
  149. package/dist/Components/KanbanBoard/KanbanBoard.d.ts.map +1 -1
  150. package/dist/Components/KanbanBoard/KanbanBoard.js +38 -1
  151. package/dist/Components/Table/Table.d.ts.map +1 -1
  152. package/dist/Components/Table/Table.js +16 -7
  153. package/dist/Components/Table/settings/ManageColumns.d.ts.map +1 -1
  154. package/dist/Components/Table/settings/ManageColumns.js +2 -1
  155. package/package.json +1 -1
@@ -0,0 +1,1732 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for RolesPermission/RolesPermission.tsx</title>
7
+ <meta charset="utf-8" />
8
+ <link rel="stylesheet" href="../prettify.css" />
9
+ <link rel="stylesheet" href="../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
12
+ <style type='text/css'>
13
+ .coverage-summary .sorter {
14
+ background-image: url(../sort-arrow-sprite.png);
15
+ }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <div class='wrapper'>
21
+ <div class='pad1'>
22
+ <h1><a href="../index.html">All files</a> / <a href="index.html">RolesPermission</a> RolesPermission.tsx</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">72.09% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>31/43</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">54.41% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>37/68</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">50% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>10/20</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">73.8% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>31/42</span>
50
+ </div>
51
+
52
+
53
+ </div>
54
+ <p class="quiet">
55
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
+ </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input type="search" id="fileSearch">
61
+ </div>
62
+ </template>
63
+ </div>
64
+ <div class='status-line medium'></div>
65
+ <pre><table class="coverage">
66
+ <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
+ <a name='L2'></a><a href='#L2'>2</a>
68
+ <a name='L3'></a><a href='#L3'>3</a>
69
+ <a name='L4'></a><a href='#L4'>4</a>
70
+ <a name='L5'></a><a href='#L5'>5</a>
71
+ <a name='L6'></a><a href='#L6'>6</a>
72
+ <a name='L7'></a><a href='#L7'>7</a>
73
+ <a name='L8'></a><a href='#L8'>8</a>
74
+ <a name='L9'></a><a href='#L9'>9</a>
75
+ <a name='L10'></a><a href='#L10'>10</a>
76
+ <a name='L11'></a><a href='#L11'>11</a>
77
+ <a name='L12'></a><a href='#L12'>12</a>
78
+ <a name='L13'></a><a href='#L13'>13</a>
79
+ <a name='L14'></a><a href='#L14'>14</a>
80
+ <a name='L15'></a><a href='#L15'>15</a>
81
+ <a name='L16'></a><a href='#L16'>16</a>
82
+ <a name='L17'></a><a href='#L17'>17</a>
83
+ <a name='L18'></a><a href='#L18'>18</a>
84
+ <a name='L19'></a><a href='#L19'>19</a>
85
+ <a name='L20'></a><a href='#L20'>20</a>
86
+ <a name='L21'></a><a href='#L21'>21</a>
87
+ <a name='L22'></a><a href='#L22'>22</a>
88
+ <a name='L23'></a><a href='#L23'>23</a>
89
+ <a name='L24'></a><a href='#L24'>24</a>
90
+ <a name='L25'></a><a href='#L25'>25</a>
91
+ <a name='L26'></a><a href='#L26'>26</a>
92
+ <a name='L27'></a><a href='#L27'>27</a>
93
+ <a name='L28'></a><a href='#L28'>28</a>
94
+ <a name='L29'></a><a href='#L29'>29</a>
95
+ <a name='L30'></a><a href='#L30'>30</a>
96
+ <a name='L31'></a><a href='#L31'>31</a>
97
+ <a name='L32'></a><a href='#L32'>32</a>
98
+ <a name='L33'></a><a href='#L33'>33</a>
99
+ <a name='L34'></a><a href='#L34'>34</a>
100
+ <a name='L35'></a><a href='#L35'>35</a>
101
+ <a name='L36'></a><a href='#L36'>36</a>
102
+ <a name='L37'></a><a href='#L37'>37</a>
103
+ <a name='L38'></a><a href='#L38'>38</a>
104
+ <a name='L39'></a><a href='#L39'>39</a>
105
+ <a name='L40'></a><a href='#L40'>40</a>
106
+ <a name='L41'></a><a href='#L41'>41</a>
107
+ <a name='L42'></a><a href='#L42'>42</a>
108
+ <a name='L43'></a><a href='#L43'>43</a>
109
+ <a name='L44'></a><a href='#L44'>44</a>
110
+ <a name='L45'></a><a href='#L45'>45</a>
111
+ <a name='L46'></a><a href='#L46'>46</a>
112
+ <a name='L47'></a><a href='#L47'>47</a>
113
+ <a name='L48'></a><a href='#L48'>48</a>
114
+ <a name='L49'></a><a href='#L49'>49</a>
115
+ <a name='L50'></a><a href='#L50'>50</a>
116
+ <a name='L51'></a><a href='#L51'>51</a>
117
+ <a name='L52'></a><a href='#L52'>52</a>
118
+ <a name='L53'></a><a href='#L53'>53</a>
119
+ <a name='L54'></a><a href='#L54'>54</a>
120
+ <a name='L55'></a><a href='#L55'>55</a>
121
+ <a name='L56'></a><a href='#L56'>56</a>
122
+ <a name='L57'></a><a href='#L57'>57</a>
123
+ <a name='L58'></a><a href='#L58'>58</a>
124
+ <a name='L59'></a><a href='#L59'>59</a>
125
+ <a name='L60'></a><a href='#L60'>60</a>
126
+ <a name='L61'></a><a href='#L61'>61</a>
127
+ <a name='L62'></a><a href='#L62'>62</a>
128
+ <a name='L63'></a><a href='#L63'>63</a>
129
+ <a name='L64'></a><a href='#L64'>64</a>
130
+ <a name='L65'></a><a href='#L65'>65</a>
131
+ <a name='L66'></a><a href='#L66'>66</a>
132
+ <a name='L67'></a><a href='#L67'>67</a>
133
+ <a name='L68'></a><a href='#L68'>68</a>
134
+ <a name='L69'></a><a href='#L69'>69</a>
135
+ <a name='L70'></a><a href='#L70'>70</a>
136
+ <a name='L71'></a><a href='#L71'>71</a>
137
+ <a name='L72'></a><a href='#L72'>72</a>
138
+ <a name='L73'></a><a href='#L73'>73</a>
139
+ <a name='L74'></a><a href='#L74'>74</a>
140
+ <a name='L75'></a><a href='#L75'>75</a>
141
+ <a name='L76'></a><a href='#L76'>76</a>
142
+ <a name='L77'></a><a href='#L77'>77</a>
143
+ <a name='L78'></a><a href='#L78'>78</a>
144
+ <a name='L79'></a><a href='#L79'>79</a>
145
+ <a name='L80'></a><a href='#L80'>80</a>
146
+ <a name='L81'></a><a href='#L81'>81</a>
147
+ <a name='L82'></a><a href='#L82'>82</a>
148
+ <a name='L83'></a><a href='#L83'>83</a>
149
+ <a name='L84'></a><a href='#L84'>84</a>
150
+ <a name='L85'></a><a href='#L85'>85</a>
151
+ <a name='L86'></a><a href='#L86'>86</a>
152
+ <a name='L87'></a><a href='#L87'>87</a>
153
+ <a name='L88'></a><a href='#L88'>88</a>
154
+ <a name='L89'></a><a href='#L89'>89</a>
155
+ <a name='L90'></a><a href='#L90'>90</a>
156
+ <a name='L91'></a><a href='#L91'>91</a>
157
+ <a name='L92'></a><a href='#L92'>92</a>
158
+ <a name='L93'></a><a href='#L93'>93</a>
159
+ <a name='L94'></a><a href='#L94'>94</a>
160
+ <a name='L95'></a><a href='#L95'>95</a>
161
+ <a name='L96'></a><a href='#L96'>96</a>
162
+ <a name='L97'></a><a href='#L97'>97</a>
163
+ <a name='L98'></a><a href='#L98'>98</a>
164
+ <a name='L99'></a><a href='#L99'>99</a>
165
+ <a name='L100'></a><a href='#L100'>100</a>
166
+ <a name='L101'></a><a href='#L101'>101</a>
167
+ <a name='L102'></a><a href='#L102'>102</a>
168
+ <a name='L103'></a><a href='#L103'>103</a>
169
+ <a name='L104'></a><a href='#L104'>104</a>
170
+ <a name='L105'></a><a href='#L105'>105</a>
171
+ <a name='L106'></a><a href='#L106'>106</a>
172
+ <a name='L107'></a><a href='#L107'>107</a>
173
+ <a name='L108'></a><a href='#L108'>108</a>
174
+ <a name='L109'></a><a href='#L109'>109</a>
175
+ <a name='L110'></a><a href='#L110'>110</a>
176
+ <a name='L111'></a><a href='#L111'>111</a>
177
+ <a name='L112'></a><a href='#L112'>112</a>
178
+ <a name='L113'></a><a href='#L113'>113</a>
179
+ <a name='L114'></a><a href='#L114'>114</a>
180
+ <a name='L115'></a><a href='#L115'>115</a>
181
+ <a name='L116'></a><a href='#L116'>116</a>
182
+ <a name='L117'></a><a href='#L117'>117</a>
183
+ <a name='L118'></a><a href='#L118'>118</a>
184
+ <a name='L119'></a><a href='#L119'>119</a>
185
+ <a name='L120'></a><a href='#L120'>120</a>
186
+ <a name='L121'></a><a href='#L121'>121</a>
187
+ <a name='L122'></a><a href='#L122'>122</a>
188
+ <a name='L123'></a><a href='#L123'>123</a>
189
+ <a name='L124'></a><a href='#L124'>124</a>
190
+ <a name='L125'></a><a href='#L125'>125</a>
191
+ <a name='L126'></a><a href='#L126'>126</a>
192
+ <a name='L127'></a><a href='#L127'>127</a>
193
+ <a name='L128'></a><a href='#L128'>128</a>
194
+ <a name='L129'></a><a href='#L129'>129</a>
195
+ <a name='L130'></a><a href='#L130'>130</a>
196
+ <a name='L131'></a><a href='#L131'>131</a>
197
+ <a name='L132'></a><a href='#L132'>132</a>
198
+ <a name='L133'></a><a href='#L133'>133</a>
199
+ <a name='L134'></a><a href='#L134'>134</a>
200
+ <a name='L135'></a><a href='#L135'>135</a>
201
+ <a name='L136'></a><a href='#L136'>136</a>
202
+ <a name='L137'></a><a href='#L137'>137</a>
203
+ <a name='L138'></a><a href='#L138'>138</a>
204
+ <a name='L139'></a><a href='#L139'>139</a>
205
+ <a name='L140'></a><a href='#L140'>140</a>
206
+ <a name='L141'></a><a href='#L141'>141</a>
207
+ <a name='L142'></a><a href='#L142'>142</a>
208
+ <a name='L143'></a><a href='#L143'>143</a>
209
+ <a name='L144'></a><a href='#L144'>144</a>
210
+ <a name='L145'></a><a href='#L145'>145</a>
211
+ <a name='L146'></a><a href='#L146'>146</a>
212
+ <a name='L147'></a><a href='#L147'>147</a>
213
+ <a name='L148'></a><a href='#L148'>148</a>
214
+ <a name='L149'></a><a href='#L149'>149</a>
215
+ <a name='L150'></a><a href='#L150'>150</a>
216
+ <a name='L151'></a><a href='#L151'>151</a>
217
+ <a name='L152'></a><a href='#L152'>152</a>
218
+ <a name='L153'></a><a href='#L153'>153</a>
219
+ <a name='L154'></a><a href='#L154'>154</a>
220
+ <a name='L155'></a><a href='#L155'>155</a>
221
+ <a name='L156'></a><a href='#L156'>156</a>
222
+ <a name='L157'></a><a href='#L157'>157</a>
223
+ <a name='L158'></a><a href='#L158'>158</a>
224
+ <a name='L159'></a><a href='#L159'>159</a>
225
+ <a name='L160'></a><a href='#L160'>160</a>
226
+ <a name='L161'></a><a href='#L161'>161</a>
227
+ <a name='L162'></a><a href='#L162'>162</a>
228
+ <a name='L163'></a><a href='#L163'>163</a>
229
+ <a name='L164'></a><a href='#L164'>164</a>
230
+ <a name='L165'></a><a href='#L165'>165</a>
231
+ <a name='L166'></a><a href='#L166'>166</a>
232
+ <a name='L167'></a><a href='#L167'>167</a>
233
+ <a name='L168'></a><a href='#L168'>168</a>
234
+ <a name='L169'></a><a href='#L169'>169</a>
235
+ <a name='L170'></a><a href='#L170'>170</a>
236
+ <a name='L171'></a><a href='#L171'>171</a>
237
+ <a name='L172'></a><a href='#L172'>172</a>
238
+ <a name='L173'></a><a href='#L173'>173</a>
239
+ <a name='L174'></a><a href='#L174'>174</a>
240
+ <a name='L175'></a><a href='#L175'>175</a>
241
+ <a name='L176'></a><a href='#L176'>176</a>
242
+ <a name='L177'></a><a href='#L177'>177</a>
243
+ <a name='L178'></a><a href='#L178'>178</a>
244
+ <a name='L179'></a><a href='#L179'>179</a>
245
+ <a name='L180'></a><a href='#L180'>180</a>
246
+ <a name='L181'></a><a href='#L181'>181</a>
247
+ <a name='L182'></a><a href='#L182'>182</a>
248
+ <a name='L183'></a><a href='#L183'>183</a>
249
+ <a name='L184'></a><a href='#L184'>184</a>
250
+ <a name='L185'></a><a href='#L185'>185</a>
251
+ <a name='L186'></a><a href='#L186'>186</a>
252
+ <a name='L187'></a><a href='#L187'>187</a>
253
+ <a name='L188'></a><a href='#L188'>188</a>
254
+ <a name='L189'></a><a href='#L189'>189</a>
255
+ <a name='L190'></a><a href='#L190'>190</a>
256
+ <a name='L191'></a><a href='#L191'>191</a>
257
+ <a name='L192'></a><a href='#L192'>192</a>
258
+ <a name='L193'></a><a href='#L193'>193</a>
259
+ <a name='L194'></a><a href='#L194'>194</a>
260
+ <a name='L195'></a><a href='#L195'>195</a>
261
+ <a name='L196'></a><a href='#L196'>196</a>
262
+ <a name='L197'></a><a href='#L197'>197</a>
263
+ <a name='L198'></a><a href='#L198'>198</a>
264
+ <a name='L199'></a><a href='#L199'>199</a>
265
+ <a name='L200'></a><a href='#L200'>200</a>
266
+ <a name='L201'></a><a href='#L201'>201</a>
267
+ <a name='L202'></a><a href='#L202'>202</a>
268
+ <a name='L203'></a><a href='#L203'>203</a>
269
+ <a name='L204'></a><a href='#L204'>204</a>
270
+ <a name='L205'></a><a href='#L205'>205</a>
271
+ <a name='L206'></a><a href='#L206'>206</a>
272
+ <a name='L207'></a><a href='#L207'>207</a>
273
+ <a name='L208'></a><a href='#L208'>208</a>
274
+ <a name='L209'></a><a href='#L209'>209</a>
275
+ <a name='L210'></a><a href='#L210'>210</a>
276
+ <a name='L211'></a><a href='#L211'>211</a>
277
+ <a name='L212'></a><a href='#L212'>212</a>
278
+ <a name='L213'></a><a href='#L213'>213</a>
279
+ <a name='L214'></a><a href='#L214'>214</a>
280
+ <a name='L215'></a><a href='#L215'>215</a>
281
+ <a name='L216'></a><a href='#L216'>216</a>
282
+ <a name='L217'></a><a href='#L217'>217</a>
283
+ <a name='L218'></a><a href='#L218'>218</a>
284
+ <a name='L219'></a><a href='#L219'>219</a>
285
+ <a name='L220'></a><a href='#L220'>220</a>
286
+ <a name='L221'></a><a href='#L221'>221</a>
287
+ <a name='L222'></a><a href='#L222'>222</a>
288
+ <a name='L223'></a><a href='#L223'>223</a>
289
+ <a name='L224'></a><a href='#L224'>224</a>
290
+ <a name='L225'></a><a href='#L225'>225</a>
291
+ <a name='L226'></a><a href='#L226'>226</a>
292
+ <a name='L227'></a><a href='#L227'>227</a>
293
+ <a name='L228'></a><a href='#L228'>228</a>
294
+ <a name='L229'></a><a href='#L229'>229</a>
295
+ <a name='L230'></a><a href='#L230'>230</a>
296
+ <a name='L231'></a><a href='#L231'>231</a>
297
+ <a name='L232'></a><a href='#L232'>232</a>
298
+ <a name='L233'></a><a href='#L233'>233</a>
299
+ <a name='L234'></a><a href='#L234'>234</a>
300
+ <a name='L235'></a><a href='#L235'>235</a>
301
+ <a name='L236'></a><a href='#L236'>236</a>
302
+ <a name='L237'></a><a href='#L237'>237</a>
303
+ <a name='L238'></a><a href='#L238'>238</a>
304
+ <a name='L239'></a><a href='#L239'>239</a>
305
+ <a name='L240'></a><a href='#L240'>240</a>
306
+ <a name='L241'></a><a href='#L241'>241</a>
307
+ <a name='L242'></a><a href='#L242'>242</a>
308
+ <a name='L243'></a><a href='#L243'>243</a>
309
+ <a name='L244'></a><a href='#L244'>244</a>
310
+ <a name='L245'></a><a href='#L245'>245</a>
311
+ <a name='L246'></a><a href='#L246'>246</a>
312
+ <a name='L247'></a><a href='#L247'>247</a>
313
+ <a name='L248'></a><a href='#L248'>248</a>
314
+ <a name='L249'></a><a href='#L249'>249</a>
315
+ <a name='L250'></a><a href='#L250'>250</a>
316
+ <a name='L251'></a><a href='#L251'>251</a>
317
+ <a name='L252'></a><a href='#L252'>252</a>
318
+ <a name='L253'></a><a href='#L253'>253</a>
319
+ <a name='L254'></a><a href='#L254'>254</a>
320
+ <a name='L255'></a><a href='#L255'>255</a>
321
+ <a name='L256'></a><a href='#L256'>256</a>
322
+ <a name='L257'></a><a href='#L257'>257</a>
323
+ <a name='L258'></a><a href='#L258'>258</a>
324
+ <a name='L259'></a><a href='#L259'>259</a>
325
+ <a name='L260'></a><a href='#L260'>260</a>
326
+ <a name='L261'></a><a href='#L261'>261</a>
327
+ <a name='L262'></a><a href='#L262'>262</a>
328
+ <a name='L263'></a><a href='#L263'>263</a>
329
+ <a name='L264'></a><a href='#L264'>264</a>
330
+ <a name='L265'></a><a href='#L265'>265</a>
331
+ <a name='L266'></a><a href='#L266'>266</a>
332
+ <a name='L267'></a><a href='#L267'>267</a>
333
+ <a name='L268'></a><a href='#L268'>268</a>
334
+ <a name='L269'></a><a href='#L269'>269</a>
335
+ <a name='L270'></a><a href='#L270'>270</a>
336
+ <a name='L271'></a><a href='#L271'>271</a>
337
+ <a name='L272'></a><a href='#L272'>272</a>
338
+ <a name='L273'></a><a href='#L273'>273</a>
339
+ <a name='L274'></a><a href='#L274'>274</a>
340
+ <a name='L275'></a><a href='#L275'>275</a>
341
+ <a name='L276'></a><a href='#L276'>276</a>
342
+ <a name='L277'></a><a href='#L277'>277</a>
343
+ <a name='L278'></a><a href='#L278'>278</a>
344
+ <a name='L279'></a><a href='#L279'>279</a>
345
+ <a name='L280'></a><a href='#L280'>280</a>
346
+ <a name='L281'></a><a href='#L281'>281</a>
347
+ <a name='L282'></a><a href='#L282'>282</a>
348
+ <a name='L283'></a><a href='#L283'>283</a>
349
+ <a name='L284'></a><a href='#L284'>284</a>
350
+ <a name='L285'></a><a href='#L285'>285</a>
351
+ <a name='L286'></a><a href='#L286'>286</a>
352
+ <a name='L287'></a><a href='#L287'>287</a>
353
+ <a name='L288'></a><a href='#L288'>288</a>
354
+ <a name='L289'></a><a href='#L289'>289</a>
355
+ <a name='L290'></a><a href='#L290'>290</a>
356
+ <a name='L291'></a><a href='#L291'>291</a>
357
+ <a name='L292'></a><a href='#L292'>292</a>
358
+ <a name='L293'></a><a href='#L293'>293</a>
359
+ <a name='L294'></a><a href='#L294'>294</a>
360
+ <a name='L295'></a><a href='#L295'>295</a>
361
+ <a name='L296'></a><a href='#L296'>296</a>
362
+ <a name='L297'></a><a href='#L297'>297</a>
363
+ <a name='L298'></a><a href='#L298'>298</a>
364
+ <a name='L299'></a><a href='#L299'>299</a>
365
+ <a name='L300'></a><a href='#L300'>300</a>
366
+ <a name='L301'></a><a href='#L301'>301</a>
367
+ <a name='L302'></a><a href='#L302'>302</a>
368
+ <a name='L303'></a><a href='#L303'>303</a>
369
+ <a name='L304'></a><a href='#L304'>304</a>
370
+ <a name='L305'></a><a href='#L305'>305</a>
371
+ <a name='L306'></a><a href='#L306'>306</a>
372
+ <a name='L307'></a><a href='#L307'>307</a>
373
+ <a name='L308'></a><a href='#L308'>308</a>
374
+ <a name='L309'></a><a href='#L309'>309</a>
375
+ <a name='L310'></a><a href='#L310'>310</a>
376
+ <a name='L311'></a><a href='#L311'>311</a>
377
+ <a name='L312'></a><a href='#L312'>312</a>
378
+ <a name='L313'></a><a href='#L313'>313</a>
379
+ <a name='L314'></a><a href='#L314'>314</a>
380
+ <a name='L315'></a><a href='#L315'>315</a>
381
+ <a name='L316'></a><a href='#L316'>316</a>
382
+ <a name='L317'></a><a href='#L317'>317</a>
383
+ <a name='L318'></a><a href='#L318'>318</a>
384
+ <a name='L319'></a><a href='#L319'>319</a>
385
+ <a name='L320'></a><a href='#L320'>320</a>
386
+ <a name='L321'></a><a href='#L321'>321</a>
387
+ <a name='L322'></a><a href='#L322'>322</a>
388
+ <a name='L323'></a><a href='#L323'>323</a>
389
+ <a name='L324'></a><a href='#L324'>324</a>
390
+ <a name='L325'></a><a href='#L325'>325</a>
391
+ <a name='L326'></a><a href='#L326'>326</a>
392
+ <a name='L327'></a><a href='#L327'>327</a>
393
+ <a name='L328'></a><a href='#L328'>328</a>
394
+ <a name='L329'></a><a href='#L329'>329</a>
395
+ <a name='L330'></a><a href='#L330'>330</a>
396
+ <a name='L331'></a><a href='#L331'>331</a>
397
+ <a name='L332'></a><a href='#L332'>332</a>
398
+ <a name='L333'></a><a href='#L333'>333</a>
399
+ <a name='L334'></a><a href='#L334'>334</a>
400
+ <a name='L335'></a><a href='#L335'>335</a>
401
+ <a name='L336'></a><a href='#L336'>336</a>
402
+ <a name='L337'></a><a href='#L337'>337</a>
403
+ <a name='L338'></a><a href='#L338'>338</a>
404
+ <a name='L339'></a><a href='#L339'>339</a>
405
+ <a name='L340'></a><a href='#L340'>340</a>
406
+ <a name='L341'></a><a href='#L341'>341</a>
407
+ <a name='L342'></a><a href='#L342'>342</a>
408
+ <a name='L343'></a><a href='#L343'>343</a>
409
+ <a name='L344'></a><a href='#L344'>344</a>
410
+ <a name='L345'></a><a href='#L345'>345</a>
411
+ <a name='L346'></a><a href='#L346'>346</a>
412
+ <a name='L347'></a><a href='#L347'>347</a>
413
+ <a name='L348'></a><a href='#L348'>348</a>
414
+ <a name='L349'></a><a href='#L349'>349</a>
415
+ <a name='L350'></a><a href='#L350'>350</a>
416
+ <a name='L351'></a><a href='#L351'>351</a>
417
+ <a name='L352'></a><a href='#L352'>352</a>
418
+ <a name='L353'></a><a href='#L353'>353</a>
419
+ <a name='L354'></a><a href='#L354'>354</a>
420
+ <a name='L355'></a><a href='#L355'>355</a>
421
+ <a name='L356'></a><a href='#L356'>356</a>
422
+ <a name='L357'></a><a href='#L357'>357</a>
423
+ <a name='L358'></a><a href='#L358'>358</a>
424
+ <a name='L359'></a><a href='#L359'>359</a>
425
+ <a name='L360'></a><a href='#L360'>360</a>
426
+ <a name='L361'></a><a href='#L361'>361</a>
427
+ <a name='L362'></a><a href='#L362'>362</a>
428
+ <a name='L363'></a><a href='#L363'>363</a>
429
+ <a name='L364'></a><a href='#L364'>364</a>
430
+ <a name='L365'></a><a href='#L365'>365</a>
431
+ <a name='L366'></a><a href='#L366'>366</a>
432
+ <a name='L367'></a><a href='#L367'>367</a>
433
+ <a name='L368'></a><a href='#L368'>368</a>
434
+ <a name='L369'></a><a href='#L369'>369</a>
435
+ <a name='L370'></a><a href='#L370'>370</a>
436
+ <a name='L371'></a><a href='#L371'>371</a>
437
+ <a name='L372'></a><a href='#L372'>372</a>
438
+ <a name='L373'></a><a href='#L373'>373</a>
439
+ <a name='L374'></a><a href='#L374'>374</a>
440
+ <a name='L375'></a><a href='#L375'>375</a>
441
+ <a name='L376'></a><a href='#L376'>376</a>
442
+ <a name='L377'></a><a href='#L377'>377</a>
443
+ <a name='L378'></a><a href='#L378'>378</a>
444
+ <a name='L379'></a><a href='#L379'>379</a>
445
+ <a name='L380'></a><a href='#L380'>380</a>
446
+ <a name='L381'></a><a href='#L381'>381</a>
447
+ <a name='L382'></a><a href='#L382'>382</a>
448
+ <a name='L383'></a><a href='#L383'>383</a>
449
+ <a name='L384'></a><a href='#L384'>384</a>
450
+ <a name='L385'></a><a href='#L385'>385</a>
451
+ <a name='L386'></a><a href='#L386'>386</a>
452
+ <a name='L387'></a><a href='#L387'>387</a>
453
+ <a name='L388'></a><a href='#L388'>388</a>
454
+ <a name='L389'></a><a href='#L389'>389</a>
455
+ <a name='L390'></a><a href='#L390'>390</a>
456
+ <a name='L391'></a><a href='#L391'>391</a>
457
+ <a name='L392'></a><a href='#L392'>392</a>
458
+ <a name='L393'></a><a href='#L393'>393</a>
459
+ <a name='L394'></a><a href='#L394'>394</a>
460
+ <a name='L395'></a><a href='#L395'>395</a>
461
+ <a name='L396'></a><a href='#L396'>396</a>
462
+ <a name='L397'></a><a href='#L397'>397</a>
463
+ <a name='L398'></a><a href='#L398'>398</a>
464
+ <a name='L399'></a><a href='#L399'>399</a>
465
+ <a name='L400'></a><a href='#L400'>400</a>
466
+ <a name='L401'></a><a href='#L401'>401</a>
467
+ <a name='L402'></a><a href='#L402'>402</a>
468
+ <a name='L403'></a><a href='#L403'>403</a>
469
+ <a name='L404'></a><a href='#L404'>404</a>
470
+ <a name='L405'></a><a href='#L405'>405</a>
471
+ <a name='L406'></a><a href='#L406'>406</a>
472
+ <a name='L407'></a><a href='#L407'>407</a>
473
+ <a name='L408'></a><a href='#L408'>408</a>
474
+ <a name='L409'></a><a href='#L409'>409</a>
475
+ <a name='L410'></a><a href='#L410'>410</a>
476
+ <a name='L411'></a><a href='#L411'>411</a>
477
+ <a name='L412'></a><a href='#L412'>412</a>
478
+ <a name='L413'></a><a href='#L413'>413</a>
479
+ <a name='L414'></a><a href='#L414'>414</a>
480
+ <a name='L415'></a><a href='#L415'>415</a>
481
+ <a name='L416'></a><a href='#L416'>416</a>
482
+ <a name='L417'></a><a href='#L417'>417</a>
483
+ <a name='L418'></a><a href='#L418'>418</a>
484
+ <a name='L419'></a><a href='#L419'>419</a>
485
+ <a name='L420'></a><a href='#L420'>420</a>
486
+ <a name='L421'></a><a href='#L421'>421</a>
487
+ <a name='L422'></a><a href='#L422'>422</a>
488
+ <a name='L423'></a><a href='#L423'>423</a>
489
+ <a name='L424'></a><a href='#L424'>424</a>
490
+ <a name='L425'></a><a href='#L425'>425</a>
491
+ <a name='L426'></a><a href='#L426'>426</a>
492
+ <a name='L427'></a><a href='#L427'>427</a>
493
+ <a name='L428'></a><a href='#L428'>428</a>
494
+ <a name='L429'></a><a href='#L429'>429</a>
495
+ <a name='L430'></a><a href='#L430'>430</a>
496
+ <a name='L431'></a><a href='#L431'>431</a>
497
+ <a name='L432'></a><a href='#L432'>432</a>
498
+ <a name='L433'></a><a href='#L433'>433</a>
499
+ <a name='L434'></a><a href='#L434'>434</a>
500
+ <a name='L435'></a><a href='#L435'>435</a>
501
+ <a name='L436'></a><a href='#L436'>436</a>
502
+ <a name='L437'></a><a href='#L437'>437</a>
503
+ <a name='L438'></a><a href='#L438'>438</a>
504
+ <a name='L439'></a><a href='#L439'>439</a>
505
+ <a name='L440'></a><a href='#L440'>440</a>
506
+ <a name='L441'></a><a href='#L441'>441</a>
507
+ <a name='L442'></a><a href='#L442'>442</a>
508
+ <a name='L443'></a><a href='#L443'>443</a>
509
+ <a name='L444'></a><a href='#L444'>444</a>
510
+ <a name='L445'></a><a href='#L445'>445</a>
511
+ <a name='L446'></a><a href='#L446'>446</a>
512
+ <a name='L447'></a><a href='#L447'>447</a>
513
+ <a name='L448'></a><a href='#L448'>448</a>
514
+ <a name='L449'></a><a href='#L449'>449</a>
515
+ <a name='L450'></a><a href='#L450'>450</a>
516
+ <a name='L451'></a><a href='#L451'>451</a>
517
+ <a name='L452'></a><a href='#L452'>452</a>
518
+ <a name='L453'></a><a href='#L453'>453</a>
519
+ <a name='L454'></a><a href='#L454'>454</a>
520
+ <a name='L455'></a><a href='#L455'>455</a>
521
+ <a name='L456'></a><a href='#L456'>456</a>
522
+ <a name='L457'></a><a href='#L457'>457</a>
523
+ <a name='L458'></a><a href='#L458'>458</a>
524
+ <a name='L459'></a><a href='#L459'>459</a>
525
+ <a name='L460'></a><a href='#L460'>460</a>
526
+ <a name='L461'></a><a href='#L461'>461</a>
527
+ <a name='L462'></a><a href='#L462'>462</a>
528
+ <a name='L463'></a><a href='#L463'>463</a>
529
+ <a name='L464'></a><a href='#L464'>464</a>
530
+ <a name='L465'></a><a href='#L465'>465</a>
531
+ <a name='L466'></a><a href='#L466'>466</a>
532
+ <a name='L467'></a><a href='#L467'>467</a>
533
+ <a name='L468'></a><a href='#L468'>468</a>
534
+ <a name='L469'></a><a href='#L469'>469</a>
535
+ <a name='L470'></a><a href='#L470'>470</a>
536
+ <a name='L471'></a><a href='#L471'>471</a>
537
+ <a name='L472'></a><a href='#L472'>472</a>
538
+ <a name='L473'></a><a href='#L473'>473</a>
539
+ <a name='L474'></a><a href='#L474'>474</a>
540
+ <a name='L475'></a><a href='#L475'>475</a>
541
+ <a name='L476'></a><a href='#L476'>476</a>
542
+ <a name='L477'></a><a href='#L477'>477</a>
543
+ <a name='L478'></a><a href='#L478'>478</a>
544
+ <a name='L479'></a><a href='#L479'>479</a>
545
+ <a name='L480'></a><a href='#L480'>480</a>
546
+ <a name='L481'></a><a href='#L481'>481</a>
547
+ <a name='L482'></a><a href='#L482'>482</a>
548
+ <a name='L483'></a><a href='#L483'>483</a>
549
+ <a name='L484'></a><a href='#L484'>484</a>
550
+ <a name='L485'></a><a href='#L485'>485</a>
551
+ <a name='L486'></a><a href='#L486'>486</a>
552
+ <a name='L487'></a><a href='#L487'>487</a>
553
+ <a name='L488'></a><a href='#L488'>488</a>
554
+ <a name='L489'></a><a href='#L489'>489</a>
555
+ <a name='L490'></a><a href='#L490'>490</a>
556
+ <a name='L491'></a><a href='#L491'>491</a>
557
+ <a name='L492'></a><a href='#L492'>492</a>
558
+ <a name='L493'></a><a href='#L493'>493</a>
559
+ <a name='L494'></a><a href='#L494'>494</a>
560
+ <a name='L495'></a><a href='#L495'>495</a>
561
+ <a name='L496'></a><a href='#L496'>496</a>
562
+ <a name='L497'></a><a href='#L497'>497</a>
563
+ <a name='L498'></a><a href='#L498'>498</a>
564
+ <a name='L499'></a><a href='#L499'>499</a>
565
+ <a name='L500'></a><a href='#L500'>500</a>
566
+ <a name='L501'></a><a href='#L501'>501</a>
567
+ <a name='L502'></a><a href='#L502'>502</a>
568
+ <a name='L503'></a><a href='#L503'>503</a>
569
+ <a name='L504'></a><a href='#L504'>504</a>
570
+ <a name='L505'></a><a href='#L505'>505</a>
571
+ <a name='L506'></a><a href='#L506'>506</a>
572
+ <a name='L507'></a><a href='#L507'>507</a>
573
+ <a name='L508'></a><a href='#L508'>508</a>
574
+ <a name='L509'></a><a href='#L509'>509</a>
575
+ <a name='L510'></a><a href='#L510'>510</a>
576
+ <a name='L511'></a><a href='#L511'>511</a>
577
+ <a name='L512'></a><a href='#L512'>512</a>
578
+ <a name='L513'></a><a href='#L513'>513</a>
579
+ <a name='L514'></a><a href='#L514'>514</a>
580
+ <a name='L515'></a><a href='#L515'>515</a>
581
+ <a name='L516'></a><a href='#L516'>516</a>
582
+ <a name='L517'></a><a href='#L517'>517</a>
583
+ <a name='L518'></a><a href='#L518'>518</a>
584
+ <a name='L519'></a><a href='#L519'>519</a>
585
+ <a name='L520'></a><a href='#L520'>520</a>
586
+ <a name='L521'></a><a href='#L521'>521</a>
587
+ <a name='L522'></a><a href='#L522'>522</a>
588
+ <a name='L523'></a><a href='#L523'>523</a>
589
+ <a name='L524'></a><a href='#L524'>524</a>
590
+ <a name='L525'></a><a href='#L525'>525</a>
591
+ <a name='L526'></a><a href='#L526'>526</a>
592
+ <a name='L527'></a><a href='#L527'>527</a>
593
+ <a name='L528'></a><a href='#L528'>528</a>
594
+ <a name='L529'></a><a href='#L529'>529</a>
595
+ <a name='L530'></a><a href='#L530'>530</a>
596
+ <a name='L531'></a><a href='#L531'>531</a>
597
+ <a name='L532'></a><a href='#L532'>532</a>
598
+ <a name='L533'></a><a href='#L533'>533</a>
599
+ <a name='L534'></a><a href='#L534'>534</a>
600
+ <a name='L535'></a><a href='#L535'>535</a>
601
+ <a name='L536'></a><a href='#L536'>536</a>
602
+ <a name='L537'></a><a href='#L537'>537</a>
603
+ <a name='L538'></a><a href='#L538'>538</a>
604
+ <a name='L539'></a><a href='#L539'>539</a>
605
+ <a name='L540'></a><a href='#L540'>540</a>
606
+ <a name='L541'></a><a href='#L541'>541</a>
607
+ <a name='L542'></a><a href='#L542'>542</a>
608
+ <a name='L543'></a><a href='#L543'>543</a>
609
+ <a name='L544'></a><a href='#L544'>544</a>
610
+ <a name='L545'></a><a href='#L545'>545</a>
611
+ <a name='L546'></a><a href='#L546'>546</a>
612
+ <a name='L547'></a><a href='#L547'>547</a>
613
+ <a name='L548'></a><a href='#L548'>548</a>
614
+ <a name='L549'></a><a href='#L549'>549</a>
615
+ <a name='L550'></a><a href='#L550'>550</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
616
+ <span class="cline-any cline-neutral">&nbsp;</span>
617
+ <span class="cline-any cline-neutral">&nbsp;</span>
618
+ <span class="cline-any cline-neutral">&nbsp;</span>
619
+ <span class="cline-any cline-neutral">&nbsp;</span>
620
+ <span class="cline-any cline-neutral">&nbsp;</span>
621
+ <span class="cline-any cline-neutral">&nbsp;</span>
622
+ <span class="cline-any cline-neutral">&nbsp;</span>
623
+ <span class="cline-any cline-neutral">&nbsp;</span>
624
+ <span class="cline-any cline-neutral">&nbsp;</span>
625
+ <span class="cline-any cline-neutral">&nbsp;</span>
626
+ <span class="cline-any cline-neutral">&nbsp;</span>
627
+ <span class="cline-any cline-neutral">&nbsp;</span>
628
+ <span class="cline-any cline-neutral">&nbsp;</span>
629
+ <span class="cline-any cline-neutral">&nbsp;</span>
630
+ <span class="cline-any cline-neutral">&nbsp;</span>
631
+ <span class="cline-any cline-neutral">&nbsp;</span>
632
+ <span class="cline-any cline-neutral">&nbsp;</span>
633
+ <span class="cline-any cline-neutral">&nbsp;</span>
634
+ <span class="cline-any cline-neutral">&nbsp;</span>
635
+ <span class="cline-any cline-neutral">&nbsp;</span>
636
+ <span class="cline-any cline-neutral">&nbsp;</span>
637
+ <span class="cline-any cline-neutral">&nbsp;</span>
638
+ <span class="cline-any cline-neutral">&nbsp;</span>
639
+ <span class="cline-any cline-neutral">&nbsp;</span>
640
+ <span class="cline-any cline-neutral">&nbsp;</span>
641
+ <span class="cline-any cline-neutral">&nbsp;</span>
642
+ <span class="cline-any cline-neutral">&nbsp;</span>
643
+ <span class="cline-any cline-neutral">&nbsp;</span>
644
+ <span class="cline-any cline-neutral">&nbsp;</span>
645
+ <span class="cline-any cline-neutral">&nbsp;</span>
646
+ <span class="cline-any cline-neutral">&nbsp;</span>
647
+ <span class="cline-any cline-neutral">&nbsp;</span>
648
+ <span class="cline-any cline-neutral">&nbsp;</span>
649
+ <span class="cline-any cline-neutral">&nbsp;</span>
650
+ <span class="cline-any cline-neutral">&nbsp;</span>
651
+ <span class="cline-any cline-neutral">&nbsp;</span>
652
+ <span class="cline-any cline-neutral">&nbsp;</span>
653
+ <span class="cline-any cline-neutral">&nbsp;</span>
654
+ <span class="cline-any cline-neutral">&nbsp;</span>
655
+ <span class="cline-any cline-neutral">&nbsp;</span>
656
+ <span class="cline-any cline-neutral">&nbsp;</span>
657
+ <span class="cline-any cline-yes">1x</span>
658
+ <span class="cline-any cline-neutral">&nbsp;</span>
659
+ <span class="cline-any cline-neutral">&nbsp;</span>
660
+ <span class="cline-any cline-neutral">&nbsp;</span>
661
+ <span class="cline-any cline-neutral">&nbsp;</span>
662
+ <span class="cline-any cline-neutral">&nbsp;</span>
663
+ <span class="cline-any cline-neutral">&nbsp;</span>
664
+ <span class="cline-any cline-neutral">&nbsp;</span>
665
+ <span class="cline-any cline-neutral">&nbsp;</span>
666
+ <span class="cline-any cline-neutral">&nbsp;</span>
667
+ <span class="cline-any cline-neutral">&nbsp;</span>
668
+ <span class="cline-any cline-neutral">&nbsp;</span>
669
+ <span class="cline-any cline-neutral">&nbsp;</span>
670
+ <span class="cline-any cline-neutral">&nbsp;</span>
671
+ <span class="cline-any cline-neutral">&nbsp;</span>
672
+ <span class="cline-any cline-neutral">&nbsp;</span>
673
+ <span class="cline-any cline-neutral">&nbsp;</span>
674
+ <span class="cline-any cline-neutral">&nbsp;</span>
675
+ <span class="cline-any cline-neutral">&nbsp;</span>
676
+ <span class="cline-any cline-neutral">&nbsp;</span>
677
+ <span class="cline-any cline-neutral">&nbsp;</span>
678
+ <span class="cline-any cline-neutral">&nbsp;</span>
679
+ <span class="cline-any cline-neutral">&nbsp;</span>
680
+ <span class="cline-any cline-neutral">&nbsp;</span>
681
+ <span class="cline-any cline-neutral">&nbsp;</span>
682
+ <span class="cline-any cline-neutral">&nbsp;</span>
683
+ <span class="cline-any cline-neutral">&nbsp;</span>
684
+ <span class="cline-any cline-neutral">&nbsp;</span>
685
+ <span class="cline-any cline-neutral">&nbsp;</span>
686
+ <span class="cline-any cline-neutral">&nbsp;</span>
687
+ <span class="cline-any cline-neutral">&nbsp;</span>
688
+ <span class="cline-any cline-neutral">&nbsp;</span>
689
+ <span class="cline-any cline-neutral">&nbsp;</span>
690
+ <span class="cline-any cline-neutral">&nbsp;</span>
691
+ <span class="cline-any cline-neutral">&nbsp;</span>
692
+ <span class="cline-any cline-neutral">&nbsp;</span>
693
+ <span class="cline-any cline-yes">1x</span>
694
+ <span class="cline-any cline-neutral">&nbsp;</span>
695
+ <span class="cline-any cline-neutral">&nbsp;</span>
696
+ <span class="cline-any cline-neutral">&nbsp;</span>
697
+ <span class="cline-any cline-neutral">&nbsp;</span>
698
+ <span class="cline-any cline-neutral">&nbsp;</span>
699
+ <span class="cline-any cline-neutral">&nbsp;</span>
700
+ <span class="cline-any cline-neutral">&nbsp;</span>
701
+ <span class="cline-any cline-neutral">&nbsp;</span>
702
+ <span class="cline-any cline-yes">1x</span>
703
+ <span class="cline-any cline-neutral">&nbsp;</span>
704
+ <span class="cline-any cline-neutral">&nbsp;</span>
705
+ <span class="cline-any cline-neutral">&nbsp;</span>
706
+ <span class="cline-any cline-neutral">&nbsp;</span>
707
+ <span class="cline-any cline-neutral">&nbsp;</span>
708
+ <span class="cline-any cline-neutral">&nbsp;</span>
709
+ <span class="cline-any cline-neutral">&nbsp;</span>
710
+ <span class="cline-any cline-neutral">&nbsp;</span>
711
+ <span class="cline-any cline-neutral">&nbsp;</span>
712
+ <span class="cline-any cline-neutral">&nbsp;</span>
713
+ <span class="cline-any cline-neutral">&nbsp;</span>
714
+ <span class="cline-any cline-neutral">&nbsp;</span>
715
+ <span class="cline-any cline-neutral">&nbsp;</span>
716
+ <span class="cline-any cline-neutral">&nbsp;</span>
717
+ <span class="cline-any cline-neutral">&nbsp;</span>
718
+ <span class="cline-any cline-neutral">&nbsp;</span>
719
+ <span class="cline-any cline-neutral">&nbsp;</span>
720
+ <span class="cline-any cline-neutral">&nbsp;</span>
721
+ <span class="cline-any cline-neutral">&nbsp;</span>
722
+ <span class="cline-any cline-neutral">&nbsp;</span>
723
+ <span class="cline-any cline-neutral">&nbsp;</span>
724
+ <span class="cline-any cline-neutral">&nbsp;</span>
725
+ <span class="cline-any cline-neutral">&nbsp;</span>
726
+ <span class="cline-any cline-neutral">&nbsp;</span>
727
+ <span class="cline-any cline-neutral">&nbsp;</span>
728
+ <span class="cline-any cline-neutral">&nbsp;</span>
729
+ <span class="cline-any cline-neutral">&nbsp;</span>
730
+ <span class="cline-any cline-neutral">&nbsp;</span>
731
+ <span class="cline-any cline-neutral">&nbsp;</span>
732
+ <span class="cline-any cline-neutral">&nbsp;</span>
733
+ <span class="cline-any cline-yes">8x</span>
734
+ <span class="cline-any cline-yes">8x</span>
735
+ <span class="cline-any cline-yes">7x</span>
736
+ <span class="cline-any cline-neutral">&nbsp;</span>
737
+ <span class="cline-any cline-neutral">&nbsp;</span>
738
+ <span class="cline-any cline-neutral">&nbsp;</span>
739
+ <span class="cline-any cline-yes">8x</span>
740
+ <span class="cline-any cline-neutral">&nbsp;</span>
741
+ <span class="cline-any cline-yes">8x</span>
742
+ <span class="cline-any cline-yes">8x</span>
743
+ <span class="cline-any cline-yes">8x</span>
744
+ <span class="cline-any cline-yes">8x</span>
745
+ <span class="cline-any cline-yes">8x</span>
746
+ <span class="cline-any cline-yes">8x</span>
747
+ <span class="cline-any cline-neutral">&nbsp;</span>
748
+ <span class="cline-any cline-yes">8x</span>
749
+ <span class="cline-any cline-neutral">&nbsp;</span>
750
+ <span class="cline-any cline-neutral">&nbsp;</span>
751
+ <span class="cline-any cline-neutral">&nbsp;</span>
752
+ <span class="cline-any cline-neutral">&nbsp;</span>
753
+ <span class="cline-any cline-neutral">&nbsp;</span>
754
+ <span class="cline-any cline-neutral">&nbsp;</span>
755
+ <span class="cline-any cline-neutral">&nbsp;</span>
756
+ <span class="cline-any cline-neutral">&nbsp;</span>
757
+ <span class="cline-any cline-neutral">&nbsp;</span>
758
+ <span class="cline-any cline-yes">8x</span>
759
+ <span class="cline-any cline-neutral">&nbsp;</span>
760
+ <span class="cline-any cline-neutral">&nbsp;</span>
761
+ <span class="cline-any cline-neutral">&nbsp;</span>
762
+ <span class="cline-any cline-neutral">&nbsp;</span>
763
+ <span class="cline-any cline-neutral">&nbsp;</span>
764
+ <span class="cline-any cline-neutral">&nbsp;</span>
765
+ <span class="cline-any cline-neutral">&nbsp;</span>
766
+ <span class="cline-any cline-neutral">&nbsp;</span>
767
+ <span class="cline-any cline-yes">8x</span>
768
+ <span class="cline-any cline-neutral">&nbsp;</span>
769
+ <span class="cline-any cline-neutral">&nbsp;</span>
770
+ <span class="cline-any cline-neutral">&nbsp;</span>
771
+ <span class="cline-any cline-neutral">&nbsp;</span>
772
+ <span class="cline-any cline-neutral">&nbsp;</span>
773
+ <span class="cline-any cline-neutral">&nbsp;</span>
774
+ <span class="cline-any cline-yes">8x</span>
775
+ <span class="cline-any cline-neutral">&nbsp;</span>
776
+ <span class="cline-any cline-neutral">&nbsp;</span>
777
+ <span class="cline-any cline-neutral">&nbsp;</span>
778
+ <span class="cline-any cline-neutral">&nbsp;</span>
779
+ <span class="cline-any cline-neutral">&nbsp;</span>
780
+ <span class="cline-any cline-neutral">&nbsp;</span>
781
+ <span class="cline-any cline-neutral">&nbsp;</span>
782
+ <span class="cline-any cline-neutral">&nbsp;</span>
783
+ <span class="cline-any cline-yes">8x</span>
784
+ <span class="cline-any cline-no">&nbsp;</span>
785
+ <span class="cline-any cline-neutral">&nbsp;</span>
786
+ <span class="cline-any cline-neutral">&nbsp;</span>
787
+ <span class="cline-any cline-neutral">&nbsp;</span>
788
+ <span class="cline-any cline-neutral">&nbsp;</span>
789
+ <span class="cline-any cline-neutral">&nbsp;</span>
790
+ <span class="cline-any cline-yes">8x</span>
791
+ <span class="cline-any cline-yes">6x</span>
792
+ <span class="cline-any cline-neutral">&nbsp;</span>
793
+ <span class="cline-any cline-neutral">&nbsp;</span>
794
+ <span class="cline-any cline-neutral">&nbsp;</span>
795
+ <span class="cline-any cline-neutral">&nbsp;</span>
796
+ <span class="cline-any cline-neutral">&nbsp;</span>
797
+ <span class="cline-any cline-neutral">&nbsp;</span>
798
+ <span class="cline-any cline-neutral">&nbsp;</span>
799
+ <span class="cline-any cline-neutral">&nbsp;</span>
800
+ <span class="cline-any cline-neutral">&nbsp;</span>
801
+ <span class="cline-any cline-neutral">&nbsp;</span>
802
+ <span class="cline-any cline-neutral">&nbsp;</span>
803
+ <span class="cline-any cline-neutral">&nbsp;</span>
804
+ <span class="cline-any cline-neutral">&nbsp;</span>
805
+ <span class="cline-any cline-neutral">&nbsp;</span>
806
+ <span class="cline-any cline-neutral">&nbsp;</span>
807
+ <span class="cline-any cline-neutral">&nbsp;</span>
808
+ <span class="cline-any cline-neutral">&nbsp;</span>
809
+ <span class="cline-any cline-neutral">&nbsp;</span>
810
+ <span class="cline-any cline-neutral">&nbsp;</span>
811
+ <span class="cline-any cline-neutral">&nbsp;</span>
812
+ <span class="cline-any cline-neutral">&nbsp;</span>
813
+ <span class="cline-any cline-neutral">&nbsp;</span>
814
+ <span class="cline-any cline-neutral">&nbsp;</span>
815
+ <span class="cline-any cline-neutral">&nbsp;</span>
816
+ <span class="cline-any cline-neutral">&nbsp;</span>
817
+ <span class="cline-any cline-neutral">&nbsp;</span>
818
+ <span class="cline-any cline-neutral">&nbsp;</span>
819
+ <span class="cline-any cline-neutral">&nbsp;</span>
820
+ <span class="cline-any cline-neutral">&nbsp;</span>
821
+ <span class="cline-any cline-neutral">&nbsp;</span>
822
+ <span class="cline-any cline-neutral">&nbsp;</span>
823
+ <span class="cline-any cline-neutral">&nbsp;</span>
824
+ <span class="cline-any cline-neutral">&nbsp;</span>
825
+ <span class="cline-any cline-neutral">&nbsp;</span>
826
+ <span class="cline-any cline-neutral">&nbsp;</span>
827
+ <span class="cline-any cline-neutral">&nbsp;</span>
828
+ <span class="cline-any cline-neutral">&nbsp;</span>
829
+ <span class="cline-any cline-neutral">&nbsp;</span>
830
+ <span class="cline-any cline-neutral">&nbsp;</span>
831
+ <span class="cline-any cline-neutral">&nbsp;</span>
832
+ <span class="cline-any cline-neutral">&nbsp;</span>
833
+ <span class="cline-any cline-neutral">&nbsp;</span>
834
+ <span class="cline-any cline-neutral">&nbsp;</span>
835
+ <span class="cline-any cline-neutral">&nbsp;</span>
836
+ <span class="cline-any cline-neutral">&nbsp;</span>
837
+ <span class="cline-any cline-neutral">&nbsp;</span>
838
+ <span class="cline-any cline-neutral">&nbsp;</span>
839
+ <span class="cline-any cline-neutral">&nbsp;</span>
840
+ <span class="cline-any cline-no">&nbsp;</span>
841
+ <span class="cline-any cline-neutral">&nbsp;</span>
842
+ <span class="cline-any cline-neutral">&nbsp;</span>
843
+ <span class="cline-any cline-neutral">&nbsp;</span>
844
+ <span class="cline-any cline-neutral">&nbsp;</span>
845
+ <span class="cline-any cline-neutral">&nbsp;</span>
846
+ <span class="cline-any cline-neutral">&nbsp;</span>
847
+ <span class="cline-any cline-neutral">&nbsp;</span>
848
+ <span class="cline-any cline-neutral">&nbsp;</span>
849
+ <span class="cline-any cline-neutral">&nbsp;</span>
850
+ <span class="cline-any cline-neutral">&nbsp;</span>
851
+ <span class="cline-any cline-neutral">&nbsp;</span>
852
+ <span class="cline-any cline-neutral">&nbsp;</span>
853
+ <span class="cline-any cline-neutral">&nbsp;</span>
854
+ <span class="cline-any cline-neutral">&nbsp;</span>
855
+ <span class="cline-any cline-neutral">&nbsp;</span>
856
+ <span class="cline-any cline-neutral">&nbsp;</span>
857
+ <span class="cline-any cline-neutral">&nbsp;</span>
858
+ <span class="cline-any cline-neutral">&nbsp;</span>
859
+ <span class="cline-any cline-neutral">&nbsp;</span>
860
+ <span class="cline-any cline-neutral">&nbsp;</span>
861
+ <span class="cline-any cline-neutral">&nbsp;</span>
862
+ <span class="cline-any cline-neutral">&nbsp;</span>
863
+ <span class="cline-any cline-neutral">&nbsp;</span>
864
+ <span class="cline-any cline-neutral">&nbsp;</span>
865
+ <span class="cline-any cline-neutral">&nbsp;</span>
866
+ <span class="cline-any cline-neutral">&nbsp;</span>
867
+ <span class="cline-any cline-yes">10x</span>
868
+ <span class="cline-any cline-neutral">&nbsp;</span>
869
+ <span class="cline-any cline-neutral">&nbsp;</span>
870
+ <span class="cline-any cline-neutral">&nbsp;</span>
871
+ <span class="cline-any cline-neutral">&nbsp;</span>
872
+ <span class="cline-any cline-neutral">&nbsp;</span>
873
+ <span class="cline-any cline-neutral">&nbsp;</span>
874
+ <span class="cline-any cline-neutral">&nbsp;</span>
875
+ <span class="cline-any cline-neutral">&nbsp;</span>
876
+ <span class="cline-any cline-neutral">&nbsp;</span>
877
+ <span class="cline-any cline-neutral">&nbsp;</span>
878
+ <span class="cline-any cline-neutral">&nbsp;</span>
879
+ <span class="cline-any cline-neutral">&nbsp;</span>
880
+ <span class="cline-any cline-neutral">&nbsp;</span>
881
+ <span class="cline-any cline-neutral">&nbsp;</span>
882
+ <span class="cline-any cline-neutral">&nbsp;</span>
883
+ <span class="cline-any cline-neutral">&nbsp;</span>
884
+ <span class="cline-any cline-neutral">&nbsp;</span>
885
+ <span class="cline-any cline-neutral">&nbsp;</span>
886
+ <span class="cline-any cline-neutral">&nbsp;</span>
887
+ <span class="cline-any cline-neutral">&nbsp;</span>
888
+ <span class="cline-any cline-neutral">&nbsp;</span>
889
+ <span class="cline-any cline-neutral">&nbsp;</span>
890
+ <span class="cline-any cline-neutral">&nbsp;</span>
891
+ <span class="cline-any cline-neutral">&nbsp;</span>
892
+ <span class="cline-any cline-neutral">&nbsp;</span>
893
+ <span class="cline-any cline-neutral">&nbsp;</span>
894
+ <span class="cline-any cline-neutral">&nbsp;</span>
895
+ <span class="cline-any cline-neutral">&nbsp;</span>
896
+ <span class="cline-any cline-neutral">&nbsp;</span>
897
+ <span class="cline-any cline-neutral">&nbsp;</span>
898
+ <span class="cline-any cline-neutral">&nbsp;</span>
899
+ <span class="cline-any cline-neutral">&nbsp;</span>
900
+ <span class="cline-any cline-neutral">&nbsp;</span>
901
+ <span class="cline-any cline-neutral">&nbsp;</span>
902
+ <span class="cline-any cline-no">&nbsp;</span>
903
+ <span class="cline-any cline-neutral">&nbsp;</span>
904
+ <span class="cline-any cline-neutral">&nbsp;</span>
905
+ <span class="cline-any cline-neutral">&nbsp;</span>
906
+ <span class="cline-any cline-neutral">&nbsp;</span>
907
+ <span class="cline-any cline-neutral">&nbsp;</span>
908
+ <span class="cline-any cline-neutral">&nbsp;</span>
909
+ <span class="cline-any cline-neutral">&nbsp;</span>
910
+ <span class="cline-any cline-neutral">&nbsp;</span>
911
+ <span class="cline-any cline-neutral">&nbsp;</span>
912
+ <span class="cline-any cline-no">&nbsp;</span>
913
+ <span class="cline-any cline-neutral">&nbsp;</span>
914
+ <span class="cline-any cline-neutral">&nbsp;</span>
915
+ <span class="cline-any cline-neutral">&nbsp;</span>
916
+ <span class="cline-any cline-neutral">&nbsp;</span>
917
+ <span class="cline-any cline-neutral">&nbsp;</span>
918
+ <span class="cline-any cline-neutral">&nbsp;</span>
919
+ <span class="cline-any cline-neutral">&nbsp;</span>
920
+ <span class="cline-any cline-neutral">&nbsp;</span>
921
+ <span class="cline-any cline-neutral">&nbsp;</span>
922
+ <span class="cline-any cline-neutral">&nbsp;</span>
923
+ <span class="cline-any cline-yes">1x</span>
924
+ <span class="cline-any cline-neutral">&nbsp;</span>
925
+ <span class="cline-any cline-neutral">&nbsp;</span>
926
+ <span class="cline-any cline-neutral">&nbsp;</span>
927
+ <span class="cline-any cline-neutral">&nbsp;</span>
928
+ <span class="cline-any cline-neutral">&nbsp;</span>
929
+ <span class="cline-any cline-neutral">&nbsp;</span>
930
+ <span class="cline-any cline-neutral">&nbsp;</span>
931
+ <span class="cline-any cline-neutral">&nbsp;</span>
932
+ <span class="cline-any cline-neutral">&nbsp;</span>
933
+ <span class="cline-any cline-neutral">&nbsp;</span>
934
+ <span class="cline-any cline-neutral">&nbsp;</span>
935
+ <span class="cline-any cline-neutral">&nbsp;</span>
936
+ <span class="cline-any cline-neutral">&nbsp;</span>
937
+ <span class="cline-any cline-neutral">&nbsp;</span>
938
+ <span class="cline-any cline-neutral">&nbsp;</span>
939
+ <span class="cline-any cline-neutral">&nbsp;</span>
940
+ <span class="cline-any cline-yes">8x</span>
941
+ <span class="cline-any cline-yes">2x</span>
942
+ <span class="cline-any cline-neutral">&nbsp;</span>
943
+ <span class="cline-any cline-neutral">&nbsp;</span>
944
+ <span class="cline-any cline-neutral">&nbsp;</span>
945
+ <span class="cline-any cline-neutral">&nbsp;</span>
946
+ <span class="cline-any cline-neutral">&nbsp;</span>
947
+ <span class="cline-any cline-neutral">&nbsp;</span>
948
+ <span class="cline-any cline-neutral">&nbsp;</span>
949
+ <span class="cline-any cline-neutral">&nbsp;</span>
950
+ <span class="cline-any cline-neutral">&nbsp;</span>
951
+ <span class="cline-any cline-neutral">&nbsp;</span>
952
+ <span class="cline-any cline-neutral">&nbsp;</span>
953
+ <span class="cline-any cline-neutral">&nbsp;</span>
954
+ <span class="cline-any cline-neutral">&nbsp;</span>
955
+ <span class="cline-any cline-neutral">&nbsp;</span>
956
+ <span class="cline-any cline-neutral">&nbsp;</span>
957
+ <span class="cline-any cline-neutral">&nbsp;</span>
958
+ <span class="cline-any cline-neutral">&nbsp;</span>
959
+ <span class="cline-any cline-neutral">&nbsp;</span>
960
+ <span class="cline-any cline-neutral">&nbsp;</span>
961
+ <span class="cline-any cline-neutral">&nbsp;</span>
962
+ <span class="cline-any cline-neutral">&nbsp;</span>
963
+ <span class="cline-any cline-neutral">&nbsp;</span>
964
+ <span class="cline-any cline-neutral">&nbsp;</span>
965
+ <span class="cline-any cline-neutral">&nbsp;</span>
966
+ <span class="cline-any cline-neutral">&nbsp;</span>
967
+ <span class="cline-any cline-neutral">&nbsp;</span>
968
+ <span class="cline-any cline-neutral">&nbsp;</span>
969
+ <span class="cline-any cline-neutral">&nbsp;</span>
970
+ <span class="cline-any cline-no">&nbsp;</span>
971
+ <span class="cline-any cline-neutral">&nbsp;</span>
972
+ <span class="cline-any cline-neutral">&nbsp;</span>
973
+ <span class="cline-any cline-neutral">&nbsp;</span>
974
+ <span class="cline-any cline-neutral">&nbsp;</span>
975
+ <span class="cline-any cline-neutral">&nbsp;</span>
976
+ <span class="cline-any cline-neutral">&nbsp;</span>
977
+ <span class="cline-any cline-neutral">&nbsp;</span>
978
+ <span class="cline-any cline-neutral">&nbsp;</span>
979
+ <span class="cline-any cline-neutral">&nbsp;</span>
980
+ <span class="cline-any cline-neutral">&nbsp;</span>
981
+ <span class="cline-any cline-neutral">&nbsp;</span>
982
+ <span class="cline-any cline-neutral">&nbsp;</span>
983
+ <span class="cline-any cline-neutral">&nbsp;</span>
984
+ <span class="cline-any cline-yes">1x</span>
985
+ <span class="cline-any cline-neutral">&nbsp;</span>
986
+ <span class="cline-any cline-neutral">&nbsp;</span>
987
+ <span class="cline-any cline-neutral">&nbsp;</span>
988
+ <span class="cline-any cline-neutral">&nbsp;</span>
989
+ <span class="cline-any cline-neutral">&nbsp;</span>
990
+ <span class="cline-any cline-neutral">&nbsp;</span>
991
+ <span class="cline-any cline-neutral">&nbsp;</span>
992
+ <span class="cline-any cline-neutral">&nbsp;</span>
993
+ <span class="cline-any cline-neutral">&nbsp;</span>
994
+ <span class="cline-any cline-no">&nbsp;</span>
995
+ <span class="cline-any cline-neutral">&nbsp;</span>
996
+ <span class="cline-any cline-neutral">&nbsp;</span>
997
+ <span class="cline-any cline-neutral">&nbsp;</span>
998
+ <span class="cline-any cline-neutral">&nbsp;</span>
999
+ <span class="cline-any cline-neutral">&nbsp;</span>
1000
+ <span class="cline-any cline-neutral">&nbsp;</span>
1001
+ <span class="cline-any cline-neutral">&nbsp;</span>
1002
+ <span class="cline-any cline-neutral">&nbsp;</span>
1003
+ <span class="cline-any cline-neutral">&nbsp;</span>
1004
+ <span class="cline-any cline-no">&nbsp;</span>
1005
+ <span class="cline-any cline-neutral">&nbsp;</span>
1006
+ <span class="cline-any cline-neutral">&nbsp;</span>
1007
+ <span class="cline-any cline-neutral">&nbsp;</span>
1008
+ <span class="cline-any cline-neutral">&nbsp;</span>
1009
+ <span class="cline-any cline-neutral">&nbsp;</span>
1010
+ <span class="cline-any cline-neutral">&nbsp;</span>
1011
+ <span class="cline-any cline-neutral">&nbsp;</span>
1012
+ <span class="cline-any cline-neutral">&nbsp;</span>
1013
+ <span class="cline-any cline-neutral">&nbsp;</span>
1014
+ <span class="cline-any cline-neutral">&nbsp;</span>
1015
+ <span class="cline-any cline-neutral">&nbsp;</span>
1016
+ <span class="cline-any cline-neutral">&nbsp;</span>
1017
+ <span class="cline-any cline-neutral">&nbsp;</span>
1018
+ <span class="cline-any cline-neutral">&nbsp;</span>
1019
+ <span class="cline-any cline-neutral">&nbsp;</span>
1020
+ <span class="cline-any cline-neutral">&nbsp;</span>
1021
+ <span class="cline-any cline-neutral">&nbsp;</span>
1022
+ <span class="cline-any cline-neutral">&nbsp;</span>
1023
+ <span class="cline-any cline-neutral">&nbsp;</span>
1024
+ <span class="cline-any cline-neutral">&nbsp;</span>
1025
+ <span class="cline-any cline-neutral">&nbsp;</span>
1026
+ <span class="cline-any cline-neutral">&nbsp;</span>
1027
+ <span class="cline-any cline-neutral">&nbsp;</span>
1028
+ <span class="cline-any cline-yes">12x</span>
1029
+ <span class="cline-any cline-neutral">&nbsp;</span>
1030
+ <span class="cline-any cline-neutral">&nbsp;</span>
1031
+ <span class="cline-any cline-neutral">&nbsp;</span>
1032
+ <span class="cline-any cline-neutral">&nbsp;</span>
1033
+ <span class="cline-any cline-neutral">&nbsp;</span>
1034
+ <span class="cline-any cline-neutral">&nbsp;</span>
1035
+ <span class="cline-any cline-neutral">&nbsp;</span>
1036
+ <span class="cline-any cline-neutral">&nbsp;</span>
1037
+ <span class="cline-any cline-neutral">&nbsp;</span>
1038
+ <span class="cline-any cline-neutral">&nbsp;</span>
1039
+ <span class="cline-any cline-neutral">&nbsp;</span>
1040
+ <span class="cline-any cline-neutral">&nbsp;</span>
1041
+ <span class="cline-any cline-neutral">&nbsp;</span>
1042
+ <span class="cline-any cline-neutral">&nbsp;</span>
1043
+ <span class="cline-any cline-neutral">&nbsp;</span>
1044
+ <span class="cline-any cline-neutral">&nbsp;</span>
1045
+ <span class="cline-any cline-neutral">&nbsp;</span>
1046
+ <span class="cline-any cline-neutral">&nbsp;</span>
1047
+ <span class="cline-any cline-neutral">&nbsp;</span>
1048
+ <span class="cline-any cline-neutral">&nbsp;</span>
1049
+ <span class="cline-any cline-neutral">&nbsp;</span>
1050
+ <span class="cline-any cline-yes">4x</span>
1051
+ <span class="cline-any cline-yes">4x</span>
1052
+ <span class="cline-any cline-neutral">&nbsp;</span>
1053
+ <span class="cline-any cline-neutral">&nbsp;</span>
1054
+ <span class="cline-any cline-neutral">&nbsp;</span>
1055
+ <span class="cline-any cline-neutral">&nbsp;</span>
1056
+ <span class="cline-any cline-neutral">&nbsp;</span>
1057
+ <span class="cline-any cline-neutral">&nbsp;</span>
1058
+ <span class="cline-any cline-neutral">&nbsp;</span>
1059
+ <span class="cline-any cline-neutral">&nbsp;</span>
1060
+ <span class="cline-any cline-neutral">&nbsp;</span>
1061
+ <span class="cline-any cline-neutral">&nbsp;</span>
1062
+ <span class="cline-any cline-neutral">&nbsp;</span>
1063
+ <span class="cline-any cline-neutral">&nbsp;</span>
1064
+ <span class="cline-any cline-neutral">&nbsp;</span>
1065
+ <span class="cline-any cline-neutral">&nbsp;</span>
1066
+ <span class="cline-any cline-neutral">&nbsp;</span>
1067
+ <span class="cline-any cline-neutral">&nbsp;</span>
1068
+ <span class="cline-any cline-neutral">&nbsp;</span>
1069
+ <span class="cline-any cline-neutral">&nbsp;</span>
1070
+ <span class="cline-any cline-yes">24x</span>
1071
+ <span class="cline-any cline-yes">24x</span>
1072
+ <span class="cline-any cline-neutral">&nbsp;</span>
1073
+ <span class="cline-any cline-neutral">&nbsp;</span>
1074
+ <span class="cline-any cline-neutral">&nbsp;</span>
1075
+ <span class="cline-any cline-neutral">&nbsp;</span>
1076
+ <span class="cline-any cline-neutral">&nbsp;</span>
1077
+ <span class="cline-any cline-neutral">&nbsp;</span>
1078
+ <span class="cline-any cline-neutral">&nbsp;</span>
1079
+ <span class="cline-any cline-neutral">&nbsp;</span>
1080
+ <span class="cline-any cline-neutral">&nbsp;</span>
1081
+ <span class="cline-any cline-neutral">&nbsp;</span>
1082
+ <span class="cline-any cline-neutral">&nbsp;</span>
1083
+ <span class="cline-any cline-neutral">&nbsp;</span>
1084
+ <span class="cline-any cline-neutral">&nbsp;</span>
1085
+ <span class="cline-any cline-neutral">&nbsp;</span>
1086
+ <span class="cline-any cline-neutral">&nbsp;</span>
1087
+ <span class="cline-any cline-neutral">&nbsp;</span>
1088
+ <span class="cline-any cline-neutral">&nbsp;</span>
1089
+ <span class="cline-any cline-neutral">&nbsp;</span>
1090
+ <span class="cline-any cline-neutral">&nbsp;</span>
1091
+ <span class="cline-any cline-neutral">&nbsp;</span>
1092
+ <span class="cline-any cline-neutral">&nbsp;</span>
1093
+ <span class="cline-any cline-neutral">&nbsp;</span>
1094
+ <span class="cline-any cline-neutral">&nbsp;</span>
1095
+ <span class="cline-any cline-neutral">&nbsp;</span>
1096
+ <span class="cline-any cline-no">&nbsp;</span>
1097
+ <span class="cline-any cline-neutral">&nbsp;</span>
1098
+ <span class="cline-any cline-neutral">&nbsp;</span>
1099
+ <span class="cline-any cline-neutral">&nbsp;</span>
1100
+ <span class="cline-any cline-neutral">&nbsp;</span>
1101
+ <span class="cline-any cline-neutral">&nbsp;</span>
1102
+ <span class="cline-any cline-neutral">&nbsp;</span>
1103
+ <span class="cline-any cline-neutral">&nbsp;</span>
1104
+ <span class="cline-any cline-neutral">&nbsp;</span>
1105
+ <span class="cline-any cline-neutral">&nbsp;</span>
1106
+ <span class="cline-any cline-neutral">&nbsp;</span>
1107
+ <span class="cline-any cline-neutral">&nbsp;</span>
1108
+ <span class="cline-any cline-neutral">&nbsp;</span>
1109
+ <span class="cline-any cline-neutral">&nbsp;</span>
1110
+ <span class="cline-any cline-neutral">&nbsp;</span>
1111
+ <span class="cline-any cline-neutral">&nbsp;</span>
1112
+ <span class="cline-any cline-neutral">&nbsp;</span>
1113
+ <span class="cline-any cline-neutral">&nbsp;</span>
1114
+ <span class="cline-any cline-neutral">&nbsp;</span>
1115
+ <span class="cline-any cline-neutral">&nbsp;</span>
1116
+ <span class="cline-any cline-neutral">&nbsp;</span>
1117
+ <span class="cline-any cline-neutral">&nbsp;</span>
1118
+ <span class="cline-any cline-neutral">&nbsp;</span>
1119
+ <span class="cline-any cline-neutral">&nbsp;</span>
1120
+ <span class="cline-any cline-neutral">&nbsp;</span>
1121
+ <span class="cline-any cline-neutral">&nbsp;</span>
1122
+ <span class="cline-any cline-neutral">&nbsp;</span>
1123
+ <span class="cline-any cline-neutral">&nbsp;</span>
1124
+ <span class="cline-any cline-neutral">&nbsp;</span>
1125
+ <span class="cline-any cline-neutral">&nbsp;</span>
1126
+ <span class="cline-any cline-neutral">&nbsp;</span>
1127
+ <span class="cline-any cline-neutral">&nbsp;</span>
1128
+ <span class="cline-any cline-neutral">&nbsp;</span>
1129
+ <span class="cline-any cline-neutral">&nbsp;</span>
1130
+ <span class="cline-any cline-neutral">&nbsp;</span>
1131
+ <span class="cline-any cline-neutral">&nbsp;</span>
1132
+ <span class="cline-any cline-neutral">&nbsp;</span>
1133
+ <span class="cline-any cline-neutral">&nbsp;</span>
1134
+ <span class="cline-any cline-neutral">&nbsp;</span>
1135
+ <span class="cline-any cline-neutral">&nbsp;</span>
1136
+ <span class="cline-any cline-neutral">&nbsp;</span>
1137
+ <span class="cline-any cline-neutral">&nbsp;</span>
1138
+ <span class="cline-any cline-neutral">&nbsp;</span>
1139
+ <span class="cline-any cline-neutral">&nbsp;</span>
1140
+ <span class="cline-any cline-neutral">&nbsp;</span>
1141
+ <span class="cline-any cline-neutral">&nbsp;</span>
1142
+ <span class="cline-any cline-yes">8x</span>
1143
+ <span class="cline-any cline-neutral">&nbsp;</span>
1144
+ <span class="cline-any cline-neutral">&nbsp;</span>
1145
+ <span class="cline-any cline-neutral">&nbsp;</span>
1146
+ <span class="cline-any cline-neutral">&nbsp;</span>
1147
+ <span class="cline-any cline-neutral">&nbsp;</span>
1148
+ <span class="cline-any cline-neutral">&nbsp;</span>
1149
+ <span class="cline-any cline-neutral">&nbsp;</span>
1150
+ <span class="cline-any cline-neutral">&nbsp;</span>
1151
+ <span class="cline-any cline-neutral">&nbsp;</span>
1152
+ <span class="cline-any cline-no">&nbsp;</span>
1153
+ <span class="cline-any cline-neutral">&nbsp;</span>
1154
+ <span class="cline-any cline-no">&nbsp;</span>
1155
+ <span class="cline-any cline-no">&nbsp;</span>
1156
+ <span class="cline-any cline-neutral">&nbsp;</span>
1157
+ <span class="cline-any cline-neutral">&nbsp;</span>
1158
+ <span class="cline-any cline-neutral">&nbsp;</span>
1159
+ <span class="cline-any cline-neutral">&nbsp;</span>
1160
+ <span class="cline-any cline-neutral">&nbsp;</span>
1161
+ <span class="cline-any cline-neutral">&nbsp;</span>
1162
+ <span class="cline-any cline-neutral">&nbsp;</span>
1163
+ <span class="cline-any cline-neutral">&nbsp;</span>
1164
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import React, { useMemo, useState } from "react";
1165
+ import {
1166
+ Badge,
1167
+ Box,
1168
+ Checkbox,
1169
+ Divider,
1170
+ Flex,
1171
+ Heading,
1172
+ HStack,
1173
+ IconButton,
1174
+ Skeleton,
1175
+ Table,
1176
+ Tbody,
1177
+ Td,
1178
+ Text,
1179
+ Th,
1180
+ Thead,
1181
+ Tooltip,
1182
+ Tr,
1183
+ VStack,
1184
+ } from "@chakra-ui/react";
1185
+ import {
1186
+ ArrowLeft,
1187
+ Check,
1188
+ Pencil,
1189
+ Plus,
1190
+ ShieldCheck,
1191
+ SquareArrowOutUpRight,
1192
+ Trash2,
1193
+ } from "lucide-react";
1194
+ &nbsp;
1195
+ import { useCustomTheme } from "../../Theme/useCustomTheme";
1196
+ import Button from "../Button/Button";
1197
+ import TextInput from "../Input/TextInput";
1198
+ import EmptyState from "../EmptyState/EmptyState";
1199
+ import DeleteRoleModal from "./DeleteRoleModal";
1200
+ import {
1201
+ PermissionKey,
1202
+ RolesPermissionLabels,
1203
+ RolesPermissionProps,
1204
+ } from "./RolesPermissionProps";
1205
+ &nbsp;
1206
+ const DEFAULT_LABELS: Required&lt;RolesPermissionLabels&gt; = {
1207
+ title: "Roles &amp; Permissions",
1208
+ totalRoles: "Total Roles",
1209
+ newRole: "New Role",
1210
+ sNo: "S.No",
1211
+ roleNameColumn: "Role name",
1212
+ createdBy: "Created By",
1213
+ createdTime: "Created Time",
1214
+ actions: "Actions",
1215
+ noRoles: "No roles found",
1216
+ view: "View",
1217
+ edit: "Edit",
1218
+ delete: "Delete",
1219
+ roleInformation: "Role &amp; Permission Information",
1220
+ roleName: "Role Name",
1221
+ roleNamePlaceholder: "Enter role name",
1222
+ enableAllPermissions: "Enable All Permissions",
1223
+ trackLocation: "Track Location",
1224
+ showAllUserRecords: "Show All User Records",
1225
+ permissionSettings: "Permission Settings",
1226
+ moduleName: "Module Name",
1227
+ read: "Read",
1228
+ create: "Create",
1229
+ editPermission: "Edit",
1230
+ deletePermission: "Delete",
1231
+ importPermission: "Import",
1232
+ exportPermission: "Export",
1233
+ noPermissions: "No permissions found",
1234
+ cancel: "Cancel",
1235
+ saveChanges: "Save Changes",
1236
+ updateChanges: "Update Changes",
1237
+ readOnly: "Read Only",
1238
+ deleteRole: "Delete Role",
1239
+ deleteRoleConfirm: "Are you sure you want to delete this role?",
1240
+ };
1241
+ &nbsp;
1242
+ const DEFAULT_KEYS: PermissionKey[] = [
1243
+ "read",
1244
+ "create",
1245
+ "edit",
1246
+ "delete",
1247
+ "import",
1248
+ "export",
1249
+ ];
1250
+ &nbsp;
1251
+ const RolesPermission: React.FC&lt;RolesPermissionProps&gt; = ({
1252
+ view,
1253
+ mode = "create",
1254
+ roles,
1255
+ isRolesLoading = false,
1256
+ permissions,
1257
+ permissionKeys = DEFAULT_KEYS,
1258
+ roleName,
1259
+ roleNameError,
1260
+ isSuperAdmin,
1261
+ isTrackLocation,
1262
+ isShowRecords,
1263
+ isEditing = false,
1264
+ isSaving = false,
1265
+ onNewRole,
1266
+ onViewRole,
1267
+ onEditRole,
1268
+ onDeleteRole,
1269
+ onBack,
1270
+ onRoleNameChange,
1271
+ onToggleSuperAdmin,
1272
+ onToggleTrackLocation,
1273
+ onToggleShowRecords,
1274
+ onPermissionChange,
1275
+ onSave,
1276
+ onCancelForm,
1277
+ footerSlot,
1278
+ checkIcon,
1279
+ labels: labelOverrides,
1280
+ padding = "16px",
1281
+ }) =&gt; {
1282
+ const { colors } = useCustomTheme();
1283
+ const labels = useMemo(
1284
+ () =&gt; ({ ...DEFAULT_LABELS, ...labelOverrides }),
1285
+ [labelOverrides]
1286
+ );
1287
+ &nbsp;
1288
+ const [deleteId, setDeleteId] = useState&lt;number | null&gt;(null);
1289
+ &nbsp;
1290
+ const border = colors?.boxborder?.[200] ?? <span class="branch-1 cbranch-no" title="branch not covered" >colors?.gray?.[200] </span>?? <span class="branch-2 cbranch-no" title="branch not covered" >"#E2E8F0";</span>
1291
+ const surface = colors?.white ?? <span class="branch-1 cbranch-no" title="branch not covered" >"#FFFFFF";</span>
1292
+ const muted = colors?.gray?.[500] ?? <span class="branch-1 cbranch-no" title="branch not covered" >"#64748B";</span>
1293
+ const heading = colors?.gray?.[800] ?? <span class="branch-1 cbranch-no" title="branch not covered" >"#1E293B";</span>
1294
+ const headBg = colors?.gray?.[50] ?? <span class="branch-1 cbranch-no" title="branch not covered" >"#F8FAFC";</span>
1295
+ const isViewMode = mode === "view";
1296
+ &nbsp;
1297
+ const columnLabels: Record&lt;PermissionKey, string&gt; = {
1298
+ read: labels.read,
1299
+ create: labels.create,
1300
+ edit: labels.editPermission,
1301
+ delete: labels.deletePermission,
1302
+ import: labels.importPermission,
1303
+ export: labels.exportPermission,
1304
+ automation: "Automation",
1305
+ };
1306
+ &nbsp;
1307
+ const cardSx = {
1308
+ backgroundColor: surface,
1309
+ borderRadius: "xl",
1310
+ border: "1px solid",
1311
+ borderColor: border,
1312
+ boxShadow: "0 1px 2px rgba(16,24,40,0.05)",
1313
+ overflow: "hidden" as const,
1314
+ };
1315
+ &nbsp;
1316
+ const cardHeaderSx = {
1317
+ px: 4,
1318
+ py: 3,
1319
+ borderBottom: "1px solid",
1320
+ borderColor: border,
1321
+ };
1322
+ &nbsp;
1323
+ const thStyle = {
1324
+ fontSize: "0.7rem",
1325
+ textTransform: "uppercase" as const,
1326
+ letterSpacing: "0.04em",
1327
+ color: muted,
1328
+ borderColor: border,
1329
+ py: 3,
1330
+ };
1331
+ &nbsp;
1332
+ const renderGrantedCheck = <span class="fstat-no" title="function not covered" >()</span> =&gt;
1333
+ <span class="cstat-no" title="statement not covered" > checkIcon ?? (</span>
1334
+ &lt;Box color={colors?.green?.[500] ?? "#22C55E"} display="inline-flex"&gt;
1335
+ &lt;Check size={18} strokeWidth={3} /&gt;
1336
+ &lt;/Box&gt;
1337
+ );
1338
+ &nbsp;
1339
+ const renderListView = () =&gt; (
1340
+ &lt;VStack align="stretch" spacing={4}&gt;
1341
+ &lt;Box {...cardSx}&gt;
1342
+ &lt;Flex
1343
+ {...cardHeaderSx}
1344
+ alignItems="center"
1345
+ justifyContent="space-between"
1346
+ &gt;
1347
+ &lt;HStack spacing={2}&gt;
1348
+ {onBack &amp;&amp; (
1349
+ <span class="branch-1 cbranch-no" title="branch not covered" > &lt;IconButton</span>
1350
+ aria-label="Go back"
1351
+ icon={&lt;ArrowLeft size={16} /&gt;}
1352
+ variant="ghost"
1353
+ size="xs"
1354
+ color={muted}
1355
+ onClick={onBack}
1356
+ /&gt;
1357
+ )}
1358
+ &lt;Heading size="sm" fontWeight={600} color={heading}&gt;
1359
+ {labels.title}
1360
+ &lt;/Heading&gt;
1361
+ {!isRolesLoading &amp;&amp; (
1362
+ &lt;Badge
1363
+ colorScheme="blue"
1364
+ variant="subtle"
1365
+ borderRadius="full"
1366
+ px={2}
1367
+ py={0.5}
1368
+ fontSize="0.65rem"
1369
+ textTransform="none"
1370
+ &gt;
1371
+ {labels.totalRoles}: {roles.length}
1372
+ &lt;/Badge&gt;
1373
+ )}
1374
+ &lt;/HStack&gt;
1375
+ &lt;Button
1376
+ label={labels.newRole}
1377
+ onClick={onNewRole}
1378
+ size="sm"
1379
+ sx={{ fontSize: "xs" }}
1380
+ colorScheme="primary"
1381
+ leftIcon={&lt;Plus size={15} /&gt;}
1382
+ /&gt;
1383
+ &lt;/Flex&gt;
1384
+ &nbsp;
1385
+ &lt;Box overflowX="auto"&gt;
1386
+ {isRolesLoading ? (
1387
+ <span class="branch-0 cbranch-no" title="branch not covered" > &lt;VStack spacing={3} p={4} align="stretch"&gt;</span>
1388
+ {Array.from({ length: 6 }).map(<span class="fstat-no" title="function not covered" >(_</span>, idx) =&gt; (
1389
+ <span class="cstat-no" title="statement not covered" > &lt;Skeleton key={idx} height="18px" borderRadius="md" /&gt;</span>
1390
+ ))}
1391
+ &lt;/VStack&gt;
1392
+ ) : roles.length === 0 ? (
1393
+ &lt;EmptyState
1394
+ icon={ShieldCheck}
1395
+ title={labels.noRoles}
1396
+ size="sm"
1397
+ minH="200px"
1398
+ /&gt;
1399
+ ) : (
1400
+ &lt;Table variant="simple" size="sm"&gt;
1401
+ &lt;Thead bg={headBg}&gt;
1402
+ &lt;Tr&gt;
1403
+ &lt;Th {...thStyle} width="56px"&gt;
1404
+ {labels.sNo}
1405
+ &lt;/Th&gt;
1406
+ &lt;Th {...thStyle}&gt;{labels.roleNameColumn}&lt;/Th&gt;
1407
+ &lt;Th {...thStyle}&gt;{labels.createdBy}&lt;/Th&gt;
1408
+ &lt;Th {...thStyle}&gt;{labels.createdTime}&lt;/Th&gt;
1409
+ &lt;Th {...thStyle} textAlign="right"&gt;
1410
+ {labels.actions}
1411
+ &lt;/Th&gt;
1412
+ &lt;/Tr&gt;
1413
+ &lt;/Thead&gt;
1414
+ &lt;Tbody&gt;
1415
+ {roles.map((role, index) =&gt; (
1416
+ &lt;Tr
1417
+ key={role.roles_id ?? <span class="branch-1 cbranch-no" title="branch not covered" >role.roleName}</span>
1418
+ _hover={{ bg: headBg }}
1419
+ transition="background 0.15s ease"
1420
+ &gt;
1421
+ &lt;Td borderColor={border} color={muted} fontSize="sm"&gt;
1422
+ {index + 1}
1423
+ &lt;/Td&gt;
1424
+ &lt;Td
1425
+ borderColor={border}
1426
+ maxW="160px"
1427
+ whiteSpace="nowrap"
1428
+ overflow="hidden"
1429
+ textOverflow="ellipsis"
1430
+ fontSize="sm"
1431
+ fontWeight={600}
1432
+ color={heading}
1433
+ &gt;
1434
+ {role.roleName}
1435
+ &lt;/Td&gt;
1436
+ &lt;Td borderColor={border} fontSize="sm" color={muted}&gt;
1437
+ {role.createdBy}
1438
+ &lt;/Td&gt;
1439
+ &lt;Td borderColor={border} fontSize="sm" color={muted}&gt;
1440
+ {role.created_at}
1441
+ &lt;/Td&gt;
1442
+ &lt;Td borderColor={border}&gt;
1443
+ &lt;HStack spacing={1} justifyContent="flex-end"&gt;
1444
+ &lt;Tooltip label={labels.view} hasArrow&gt;
1445
+ &lt;IconButton
1446
+ icon={&lt;SquareArrowOutUpRight size={15} /&gt;}
1447
+ aria-label={labels.view}
1448
+ variant="ghost"
1449
+ size="xs"
1450
+ color={muted}
1451
+ onClick={<span class="fstat-no" title="function not covered" >()</span> =&gt; <span class="cstat-no" title="statement not covered" >onViewRole?.(role)}</span>
1452
+ /&gt;
1453
+ &lt;/Tooltip&gt;
1454
+ &lt;Tooltip label={labels.edit} hasArrow&gt;
1455
+ &lt;IconButton
1456
+ icon={&lt;Pencil size={15} /&gt;}
1457
+ aria-label={labels.edit}
1458
+ variant="ghost"
1459
+ size="xs"
1460
+ color={muted}
1461
+ onClick={<span class="fstat-no" title="function not covered" >()</span> =&gt; <span class="cstat-no" title="statement not covered" >onEditRole?.(role)}</span>
1462
+ /&gt;
1463
+ &lt;/Tooltip&gt;
1464
+ &lt;Tooltip label={labels.delete} hasArrow&gt;
1465
+ &lt;IconButton
1466
+ icon={&lt;Trash2 size={15} /&gt;}
1467
+ aria-label={labels.delete}
1468
+ variant="ghost"
1469
+ size="xs"
1470
+ colorScheme="red"
1471
+ color={colors?.red?.[400] ?? <span class="branch-1 cbranch-no" title="branch not covered" >"#F87171"}</span>
1472
+ onClick={() =&gt; setDeleteId(Number(role.roles_id))}
1473
+ /&gt;
1474
+ &lt;/Tooltip&gt;
1475
+ &lt;/HStack&gt;
1476
+ &lt;/Td&gt;
1477
+ &lt;/Tr&gt;
1478
+ ))}
1479
+ &lt;/Tbody&gt;
1480
+ &lt;/Table&gt;
1481
+ )}
1482
+ &lt;/Box&gt;
1483
+ &lt;/Box&gt;
1484
+ &nbsp;
1485
+ {footerSlot}
1486
+ &lt;/VStack&gt;
1487
+ );
1488
+ &nbsp;
1489
+ const renderFormView = () =&gt; (
1490
+ &lt;VStack align="stretch" spacing={4}&gt;
1491
+ {/* Role information card */}
1492
+ &lt;Box {...cardSx}&gt;
1493
+ &lt;Flex {...cardHeaderSx} alignItems="center" gap={2}&gt;
1494
+ {onCancelForm &amp;&amp; (
1495
+ <span class="branch-1 cbranch-no" title="branch not covered" > &lt;IconButton</span>
1496
+ aria-label="Go back"
1497
+ icon={&lt;ArrowLeft size={16} /&gt;}
1498
+ variant="ghost"
1499
+ size="xs"
1500
+ color={muted}
1501
+ onClick={onCancelForm}
1502
+ /&gt;
1503
+ )}
1504
+ &lt;Heading size="sm" fontWeight={600} color={heading}&gt;
1505
+ {labels.roleInformation}
1506
+ &lt;/Heading&gt;
1507
+ &lt;/Flex&gt;
1508
+ &nbsp;
1509
+ &lt;Box p={4}&gt;
1510
+ &lt;Box maxW="320px"&gt;
1511
+ &lt;Tooltip label={isViewMode ? <span class="branch-0 cbranch-no" title="branch not covered" >labels.readOnly </span>: ""} isDisabled={!isViewMode}&gt;
1512
+ &lt;Box&gt;
1513
+ &lt;TextInput
1514
+ label={labels.roleName}
1515
+ value={roleName}
1516
+ placeholder={labels.roleNamePlaceholder}
1517
+ error={!!roleNameError}
1518
+ errorMessage={roleNameError}
1519
+ onChange={<span class="fstat-no" title="function not covered" >(e</span>) =&gt; <span class="cstat-no" title="statement not covered" >onRoleNameChange?.(e.target.value)}</span>
1520
+ isRequired
1521
+ width="100%"
1522
+ isDisabled={isViewMode}
1523
+ /&gt;
1524
+ &lt;/Box&gt;
1525
+ &lt;/Tooltip&gt;
1526
+ &lt;/Box&gt;
1527
+ &nbsp;
1528
+ &lt;VStack align="stretch" spacing={3} mt={4}&gt;
1529
+ &lt;Checkbox
1530
+ isChecked={isSuperAdmin}
1531
+ isDisabled={isViewMode}
1532
+ size="sm"
1533
+ onChange={(e) =&gt; onToggleSuperAdmin?.(e.target.checked)}
1534
+ &gt;
1535
+ &lt;Text fontSize="sm" color={heading}&gt;
1536
+ {labels.enableAllPermissions}
1537
+ &lt;/Text&gt;
1538
+ &lt;/Checkbox&gt;
1539
+ &lt;Checkbox
1540
+ isChecked={isTrackLocation}
1541
+ isDisabled={isViewMode}
1542
+ size="sm"
1543
+ onChange={<span class="fstat-no" title="function not covered" >(e</span>) =&gt; <span class="cstat-no" title="statement not covered" >onToggleTrackLocation?.(e.target.checked)}</span>
1544
+ &gt;
1545
+ &lt;Text fontSize="sm" color={heading}&gt;
1546
+ {labels.trackLocation}
1547
+ &lt;/Text&gt;
1548
+ &lt;/Checkbox&gt;
1549
+ &lt;Checkbox
1550
+ isChecked={isShowRecords}
1551
+ isDisabled={isViewMode}
1552
+ size="sm"
1553
+ onChange={<span class="fstat-no" title="function not covered" >(e</span>) =&gt; <span class="cstat-no" title="statement not covered" >onToggleShowRecords?.(e.target.checked)}</span>
1554
+ &gt;
1555
+ &lt;Text fontSize="sm" color={heading}&gt;
1556
+ {labels.showAllUserRecords}
1557
+ &lt;/Text&gt;
1558
+ &lt;/Checkbox&gt;
1559
+ &lt;/VStack&gt;
1560
+ &lt;/Box&gt;
1561
+ &lt;/Box&gt;
1562
+ &nbsp;
1563
+ {/* Permission matrix card */}
1564
+ &lt;Box {...cardSx}&gt;
1565
+ &lt;Flex {...cardHeaderSx} alignItems="center"&gt;
1566
+ &lt;Heading size="sm" fontWeight={600} color={heading}&gt;
1567
+ {labels.permissionSettings}
1568
+ &lt;/Heading&gt;
1569
+ &lt;/Flex&gt;
1570
+ &nbsp;
1571
+ &lt;Box overflowX="auto"&gt;
1572
+ &lt;Table variant="simple" size="sm"&gt;
1573
+ &lt;Thead bg={headBg}&gt;
1574
+ &lt;Tr&gt;
1575
+ &lt;Th {...thStyle}&gt;{labels.moduleName}&lt;/Th&gt;
1576
+ {permissionKeys.map((key) =&gt; (
1577
+ &lt;Th key={key} {...thStyle} textAlign="center"&gt;
1578
+ {columnLabels[key]}
1579
+ &lt;/Th&gt;
1580
+ ))}
1581
+ &lt;/Tr&gt;
1582
+ &lt;/Thead&gt;
1583
+ &lt;Tbody&gt;
1584
+ {permissions.length === 0 ? (
1585
+ <span class="branch-0 cbranch-no" title="branch not covered" > &lt;Tr&gt;</span>
1586
+ &lt;Td
1587
+ colSpan={permissionKeys.length + 1}
1588
+ textAlign="center"
1589
+ borderColor={border}
1590
+ &gt;
1591
+ &lt;Text color={muted} fontSize="sm" py={4}&gt;
1592
+ {labels.noPermissions}
1593
+ &lt;/Text&gt;
1594
+ &lt;/Td&gt;
1595
+ &lt;/Tr&gt;
1596
+ ) : (
1597
+ permissions.map((perm) =&gt; {
1598
+ const isAutomationModule =
1599
+ perm.module?.toLowerCase() === "automation";
1600
+ return (
1601
+ &lt;Tr
1602
+ key={perm.module}
1603
+ _hover={{ bg: headBg }}
1604
+ transition="background 0.15s ease"
1605
+ &gt;
1606
+ &lt;Td
1607
+ borderColor={border}
1608
+ color={heading}
1609
+ fontSize="sm"
1610
+ fontWeight={500}
1611
+ maxW="160px"
1612
+ whiteSpace="nowrap"
1613
+ overflow="hidden"
1614
+ textOverflow="ellipsis"
1615
+ &gt;
1616
+ {perm.module}
1617
+ &lt;/Td&gt;
1618
+ {permissionKeys.map((key) =&gt; {
1619
+ const isRead = key === "read";
1620
+ return (
1621
+ &lt;Td
1622
+ key={key}
1623
+ textAlign="center"
1624
+ borderColor={border}
1625
+ &gt;
1626
+ &lt;Flex justify="center"&gt;
1627
+ {isViewMode ? (
1628
+ <span class="branch-0 cbranch-no" title="branch not covered" > isAutomationModule ? (</span>
1629
+ isRead &amp;&amp;
1630
+ perm.automation &amp;&amp;
1631
+ renderGrantedCheck()
1632
+ ) : (
1633
+ perm[key] &amp;&amp; renderGrantedCheck()
1634
+ )
1635
+ ) : isAutomationModule &amp;&amp; !isRead ? null : (
1636
+ &lt;Checkbox
1637
+ size="sm"
1638
+ isChecked={
1639
+ isAutomationModule
1640
+ ? perm.automation
1641
+ : perm[key]
1642
+ }
1643
+ isDisabled={isAutomationModule &amp;&amp; !isRead}
1644
+ onChange={<span class="fstat-no" title="function not covered" >()</span> =&gt;
1645
+ <span class="cstat-no" title="statement not covered" > onPermissionChange?.(</span>
1646
+ perm.module,
1647
+ isAutomationModule ? "automation" : key
1648
+ )
1649
+ }
1650
+ /&gt;
1651
+ )}
1652
+ &lt;/Flex&gt;
1653
+ &lt;/Td&gt;
1654
+ );
1655
+ })}
1656
+ &lt;/Tr&gt;
1657
+ );
1658
+ })
1659
+ )}
1660
+ &lt;/Tbody&gt;
1661
+ &lt;/Table&gt;
1662
+ &lt;/Box&gt;
1663
+ &nbsp;
1664
+ {!isViewMode &amp;&amp; (
1665
+ &lt;&gt;
1666
+ &lt;Divider borderColor={border} /&gt;
1667
+ &lt;Flex justifyContent="flex-end" gap={3} p={4}&gt;
1668
+ &lt;Button
1669
+ onClick={onCancelForm}
1670
+ size="sm"
1671
+ sx={{ fontSize: "xs" }}
1672
+ label={labels.cancel}
1673
+ colorScheme="red"
1674
+ variant="outline"
1675
+ /&gt;
1676
+ &lt;Button
1677
+ onClick={onSave}
1678
+ size="sm"
1679
+ sx={{ fontSize: "xs" }}
1680
+ colorScheme="primary"
1681
+ isLoading={isSaving}
1682
+ label={isEditing ? <span class="branch-0 cbranch-no" title="branch not covered" >labels.updateChanges </span>: labels.saveChanges}
1683
+ /&gt;
1684
+ &lt;/Flex&gt;
1685
+ &lt;/&gt;
1686
+ )}
1687
+ &lt;/Box&gt;
1688
+ &lt;/VStack&gt;
1689
+ );
1690
+ &nbsp;
1691
+ return (
1692
+ &lt;Box
1693
+ p={padding}
1694
+ backgroundColor={colors?.gray?.[50] ?? <span class="branch-1 cbranch-no" title="branch not covered" >"#F8FAFC"}</span>
1695
+ minHeight="100%"
1696
+ &gt;
1697
+ {view === "list" ? renderListView() : renderFormView()}
1698
+ &nbsp;
1699
+ &lt;DeleteRoleModal
1700
+ isOpen={deleteId !== null}
1701
+ onClose={<span class="fstat-no" title="function not covered" >()</span> =&gt; <span class="cstat-no" title="statement not covered" >setDeleteId(null)}</span>
1702
+ onConfirm={<span class="fstat-no" title="function not covered" >()</span> =&gt; {
1703
+ <span class="cstat-no" title="statement not covered" > if (deleteId !== null) <span class="cstat-no" title="statement not covered" >onDeleteRole?.(deleteId);</span></span>
1704
+ <span class="cstat-no" title="statement not covered" > setDeleteId(null);</span>
1705
+ }}
1706
+ labels={labels}
1707
+ /&gt;
1708
+ &lt;/Box&gt;
1709
+ );
1710
+ };
1711
+ &nbsp;
1712
+ export default RolesPermission;
1713
+ &nbsp;</pre></td></tr></table></pre>
1714
+
1715
+ <div class='push'></div><!-- for sticky footer -->
1716
+ </div><!-- /wrapper -->
1717
+ <div class='footer quiet pad2 space-top1 center small'>
1718
+ Code coverage generated by
1719
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1720
+ at 2026-06-13T07:10:21.402Z
1721
+ </div>
1722
+ <script src="../prettify.js"></script>
1723
+ <script>
1724
+ window.onload = function () {
1725
+ prettyPrint();
1726
+ };
1727
+ </script>
1728
+ <script src="../sorter.js"></script>
1729
+ <script src="../block-navigation.js"></script>
1730
+ </body>
1731
+ </html>
1732
+