@stream-io/video-client 0.0.1-alpha.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 (222) hide show
  1. package/LICENSE +219 -0
  2. package/README.md +14 -0
  3. package/coverage/lcov-report/base.css +224 -0
  4. package/coverage/lcov-report/block-navigation.js +87 -0
  5. package/coverage/lcov-report/favicon.png +0 -0
  6. package/coverage/lcov-report/index.html +296 -0
  7. package/coverage/lcov-report/prettify.css +1 -0
  8. package/coverage/lcov-report/prettify.js +2 -0
  9. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  10. package/coverage/lcov-report/sorter.js +196 -0
  11. package/coverage/lcov-report/src/Batcher.ts.html +214 -0
  12. package/coverage/lcov-report/src/CallDropScheduler.ts.html +661 -0
  13. package/coverage/lcov-report/src/StreamSfuClient.ts.html +640 -0
  14. package/coverage/lcov-report/src/StreamVideoClient.ts.html +1594 -0
  15. package/coverage/lcov-report/src/config/defaultConfigs.ts.html +130 -0
  16. package/coverage/lcov-report/src/config/index.html +116 -0
  17. package/coverage/lcov-report/src/coordinator/StreamCoordinatorClient.ts.html +430 -0
  18. package/coverage/lcov-report/src/coordinator/connection/base64.ts.html +325 -0
  19. package/coverage/lcov-report/src/coordinator/connection/client.ts.html +2527 -0
  20. package/coverage/lcov-report/src/coordinator/connection/connection.ts.html +2335 -0
  21. package/coverage/lcov-report/src/coordinator/connection/connection_fallback.ts.html +802 -0
  22. package/coverage/lcov-report/src/coordinator/connection/errors.ts.html +295 -0
  23. package/coverage/lcov-report/src/coordinator/connection/index.html +251 -0
  24. package/coverage/lcov-report/src/coordinator/connection/insights.ts.html +349 -0
  25. package/coverage/lcov-report/src/coordinator/connection/signing.ts.html +397 -0
  26. package/coverage/lcov-report/src/coordinator/connection/token_manager.ts.html +565 -0
  27. package/coverage/lcov-report/src/coordinator/connection/types.ts.html +418 -0
  28. package/coverage/lcov-report/src/coordinator/connection/utils.ts.html +529 -0
  29. package/coverage/lcov-report/src/coordinator/index.html +116 -0
  30. package/coverage/lcov-report/src/events/call.ts.html +583 -0
  31. package/coverage/lcov-report/src/events/index.html +161 -0
  32. package/coverage/lcov-report/src/events/internal.ts.html +226 -0
  33. package/coverage/lcov-report/src/events/participant.ts.html +376 -0
  34. package/coverage/lcov-report/src/events/speaker.ts.html +271 -0
  35. package/coverage/lcov-report/src/gen/google/protobuf/index.html +131 -0
  36. package/coverage/lcov-report/src/gen/google/protobuf/struct.ts.html +1528 -0
  37. package/coverage/lcov-report/src/gen/google/protobuf/timestamp.ts.html +958 -0
  38. package/coverage/lcov-report/src/gen/video/sfu/event/events.ts.html +5971 -0
  39. package/coverage/lcov-report/src/gen/video/sfu/event/index.html +116 -0
  40. package/coverage/lcov-report/src/gen/video/sfu/models/index.html +116 -0
  41. package/coverage/lcov-report/src/gen/video/sfu/models/models.ts.html +3271 -0
  42. package/coverage/lcov-report/src/index.html +161 -0
  43. package/coverage/lcov-report/src/rpc/index.html +131 -0
  44. package/coverage/lcov-report/src/rpc/index.ts.html +91 -0
  45. package/coverage/lcov-report/src/rpc/latency.ts.html +214 -0
  46. package/coverage/lcov-report/src/rtc/Call.ts.html +1840 -0
  47. package/coverage/lcov-report/src/rtc/CallMetadata.ts.html +157 -0
  48. package/coverage/lcov-report/src/rtc/Dispatcher.ts.html +223 -0
  49. package/coverage/lcov-report/src/rtc/IceTrickleBuffer.ts.html +148 -0
  50. package/coverage/lcov-report/src/rtc/callEventHandlers.ts.html +196 -0
  51. package/coverage/lcov-report/src/rtc/codecs.ts.html +268 -0
  52. package/coverage/lcov-report/src/rtc/helpers/iceCandidate.ts.html +133 -0
  53. package/coverage/lcov-report/src/rtc/helpers/index.html +131 -0
  54. package/coverage/lcov-report/src/rtc/helpers/tracks.ts.html +139 -0
  55. package/coverage/lcov-report/src/rtc/index.html +251 -0
  56. package/coverage/lcov-report/src/rtc/publisher.ts.html +1000 -0
  57. package/coverage/lcov-report/src/rtc/signal.ts.html +187 -0
  58. package/coverage/lcov-report/src/rtc/subscriber.ts.html +340 -0
  59. package/coverage/lcov-report/src/rtc/videoLayers.ts.html +394 -0
  60. package/coverage/lcov-report/src/stats/index.html +116 -0
  61. package/coverage/lcov-report/src/stats/state-store-stats-reporter.ts.html +1177 -0
  62. package/coverage/lcov-report/src/store/index.html +146 -0
  63. package/coverage/lcov-report/src/store/index.ts.html +91 -0
  64. package/coverage/lcov-report/src/store/rxUtils.ts.html +211 -0
  65. package/coverage/lcov-report/src/store/stateStore.ts.html +1108 -0
  66. package/coverage/lcov.info +11463 -0
  67. package/coverage/tmp/coverage-2131-1675959950516-2.json +1 -0
  68. package/dist/index.d.ts +18 -0
  69. package/dist/index.js +8636 -0
  70. package/dist/index.js.map +1 -0
  71. package/dist/src/Batcher.d.ts +12 -0
  72. package/dist/src/CallDropScheduler.d.ts +44 -0
  73. package/dist/src/StreamSfuClient.d.ts +25 -0
  74. package/dist/src/StreamVideoClient.d.ts +145 -0
  75. package/dist/src/__tests__/StreamVideoClient.test.d.ts +1 -0
  76. package/dist/src/config/defaultConfigs.d.ts +2 -0
  77. package/dist/src/config/types.d.ts +29 -0
  78. package/dist/src/coordinator/StreamCoordinatorClient.d.ts +19 -0
  79. package/dist/src/coordinator/connection/base64.d.ts +2 -0
  80. package/dist/src/coordinator/connection/client.d.ts +174 -0
  81. package/dist/src/coordinator/connection/connection.d.ts +139 -0
  82. package/dist/src/coordinator/connection/connection_fallback.d.ts +38 -0
  83. package/dist/src/coordinator/connection/errors.d.ts +16 -0
  84. package/dist/src/coordinator/connection/events.d.ts +10 -0
  85. package/dist/src/coordinator/connection/insights.d.ts +58 -0
  86. package/dist/src/coordinator/connection/signing.d.ts +30 -0
  87. package/dist/src/coordinator/connection/token_manager.d.ts +39 -0
  88. package/dist/src/coordinator/connection/types.d.ts +87 -0
  89. package/dist/src/coordinator/connection/utils.d.ts +25 -0
  90. package/dist/src/devices.d.ts +79 -0
  91. package/dist/src/events/call.d.ts +26 -0
  92. package/dist/src/events/internal.d.ts +8 -0
  93. package/dist/src/events/participant.d.ts +21 -0
  94. package/dist/src/events/speaker.d.ts +10 -0
  95. package/dist/src/gen/coordinator/index.d.ts +1973 -0
  96. package/dist/src/gen/google/protobuf/descriptor.d.ts +1650 -0
  97. package/dist/src/gen/google/protobuf/duration.d.ts +113 -0
  98. package/dist/src/gen/google/protobuf/struct.d.ts +184 -0
  99. package/dist/src/gen/google/protobuf/timestamp.d.ts +158 -0
  100. package/dist/src/gen/video/coordinator/broadcast_v1/broadcast.d.ts +66 -0
  101. package/dist/src/gen/video/coordinator/call_v1/call.d.ts +254 -0
  102. package/dist/src/gen/video/coordinator/client_v1_rpc/client_rpc.client.d.ts +351 -0
  103. package/dist/src/gen/video/coordinator/client_v1_rpc/client_rpc.d.ts +1488 -0
  104. package/dist/src/gen/video/coordinator/client_v1_rpc/envelopes.d.ts +143 -0
  105. package/dist/src/gen/video/coordinator/client_v1_rpc/websocket.d.ts +292 -0
  106. package/dist/src/gen/video/coordinator/edge_v1/edge.d.ts +183 -0
  107. package/dist/src/gen/video/coordinator/event_v1/event.d.ts +411 -0
  108. package/dist/src/gen/video/coordinator/geofence_v1/geofence.d.ts +63 -0
  109. package/dist/src/gen/video/coordinator/member_v1/member.d.ts +59 -0
  110. package/dist/src/gen/video/coordinator/participant_v1/participant.d.ts +103 -0
  111. package/dist/src/gen/video/coordinator/push_v1/push.d.ts +240 -0
  112. package/dist/src/gen/video/coordinator/stat_v1/stat.d.ts +308 -0
  113. package/dist/src/gen/video/coordinator/user_v1/user.d.ts +112 -0
  114. package/dist/src/gen/video/coordinator/utils_v1/utils.d.ts +47 -0
  115. package/dist/src/gen/video/sfu/event/events.d.ts +736 -0
  116. package/dist/src/gen/video/sfu/models/models.d.ts +460 -0
  117. package/dist/src/gen/video/sfu/signal_rpc/signal.client.d.ts +89 -0
  118. package/dist/src/gen/video/sfu/signal_rpc/signal.d.ts +320 -0
  119. package/dist/src/helpers/browsers.d.ts +8 -0
  120. package/dist/src/helpers/sound-detector.d.ts +34 -0
  121. package/dist/src/rpc/createClient.d.ts +10 -0
  122. package/dist/src/rpc/index.d.ts +2 -0
  123. package/dist/src/rpc/latency.d.ts +9 -0
  124. package/dist/src/rtc/Call.d.ts +180 -0
  125. package/dist/src/rtc/CallMetadata.d.ts +9 -0
  126. package/dist/src/rtc/Dispatcher.d.ts +9 -0
  127. package/dist/src/rtc/IceTrickleBuffer.d.ts +11 -0
  128. package/dist/src/rtc/callEventHandlers.d.ts +5 -0
  129. package/dist/src/rtc/codecs.d.ts +2 -0
  130. package/dist/src/rtc/helpers/iceCandidate.d.ts +2 -0
  131. package/dist/src/rtc/helpers/tracks.d.ts +3 -0
  132. package/dist/src/rtc/publisher.d.ts +53 -0
  133. package/dist/src/rtc/signal.d.ts +5 -0
  134. package/dist/src/rtc/subscriber.d.ts +7 -0
  135. package/dist/src/rtc/types.d.ts +84 -0
  136. package/dist/src/rtc/videoLayers.d.ts +17 -0
  137. package/dist/src/stats/coordinator-stats-reporter.d.ts +10 -0
  138. package/dist/src/stats/state-store-stats-reporter.d.ts +57 -0
  139. package/dist/src/stats/types.d.ts +42 -0
  140. package/dist/src/store/index.d.ts +2 -0
  141. package/dist/src/store/rxUtils.d.ts +18 -0
  142. package/dist/src/store/stateStore.d.ts +182 -0
  143. package/generate-openapi.sh +32 -0
  144. package/index.ts +31 -0
  145. package/openapitools.json +7 -0
  146. package/package.json +54 -0
  147. package/rollup.config.mjs +48 -0
  148. package/src/Batcher.ts +43 -0
  149. package/src/CallDropScheduler.ts +192 -0
  150. package/src/StreamSfuClient.ts +185 -0
  151. package/src/StreamVideoClient.ts +503 -0
  152. package/src/__tests__/StreamVideoClient.test.ts +83 -0
  153. package/src/config/defaultConfigs.ts +15 -0
  154. package/src/config/types.ts +30 -0
  155. package/src/coordinator/StreamCoordinatorClient.ts +115 -0
  156. package/src/coordinator/connection/base64.ts +80 -0
  157. package/src/coordinator/connection/client.ts +814 -0
  158. package/src/coordinator/connection/connection.ts +750 -0
  159. package/src/coordinator/connection/connection_fallback.ts +239 -0
  160. package/src/coordinator/connection/errors.ts +70 -0
  161. package/src/coordinator/connection/events.ts +13 -0
  162. package/src/coordinator/connection/insights.ts +88 -0
  163. package/src/coordinator/connection/signing.ts +104 -0
  164. package/src/coordinator/connection/token_manager.ts +160 -0
  165. package/src/coordinator/connection/types.ts +111 -0
  166. package/src/coordinator/connection/utils.ts +148 -0
  167. package/src/devices.ts +266 -0
  168. package/src/events/call.ts +166 -0
  169. package/src/events/internal.ts +47 -0
  170. package/src/events/participant.ts +97 -0
  171. package/src/events/speaker.ts +62 -0
  172. package/src/gen/coordinator/index.ts +1956 -0
  173. package/src/gen/google/protobuf/descriptor.ts +3466 -0
  174. package/src/gen/google/protobuf/duration.ts +232 -0
  175. package/src/gen/google/protobuf/struct.ts +481 -0
  176. package/src/gen/google/protobuf/timestamp.ts +291 -0
  177. package/src/gen/video/coordinator/broadcast_v1/broadcast.ts +154 -0
  178. package/src/gen/video/coordinator/call_v1/call.ts +651 -0
  179. package/src/gen/video/coordinator/client_v1_rpc/client_rpc.client.ts +463 -0
  180. package/src/gen/video/coordinator/client_v1_rpc/client_rpc.ts +3819 -0
  181. package/src/gen/video/coordinator/client_v1_rpc/envelopes.ts +424 -0
  182. package/src/gen/video/coordinator/client_v1_rpc/websocket.ts +719 -0
  183. package/src/gen/video/coordinator/edge_v1/edge.ts +532 -0
  184. package/src/gen/video/coordinator/event_v1/event.ts +1171 -0
  185. package/src/gen/video/coordinator/geofence_v1/geofence.ts +128 -0
  186. package/src/gen/video/coordinator/member_v1/member.ts +138 -0
  187. package/src/gen/video/coordinator/participant_v1/participant.ts +261 -0
  188. package/src/gen/video/coordinator/push_v1/push.ts +651 -0
  189. package/src/gen/video/coordinator/stat_v1/stat.ts +656 -0
  190. package/src/gen/video/coordinator/user_v1/user.ts +277 -0
  191. package/src/gen/video/coordinator/utils_v1/utils.ts +98 -0
  192. package/src/gen/video/sfu/event/events.ts +1962 -0
  193. package/src/gen/video/sfu/models/models.ts +1062 -0
  194. package/src/gen/video/sfu/signal_rpc/signal.client.ts +108 -0
  195. package/src/gen/video/sfu/signal_rpc/signal.ts +906 -0
  196. package/src/helpers/browsers.ts +13 -0
  197. package/src/helpers/sound-detector.ts +85 -0
  198. package/src/rpc/createClient.ts +50 -0
  199. package/src/rpc/index.ts +2 -0
  200. package/src/rpc/latency.ts +43 -0
  201. package/src/rtc/Call.ts +585 -0
  202. package/src/rtc/CallMetadata.ts +24 -0
  203. package/src/rtc/Dispatcher.ts +46 -0
  204. package/src/rtc/IceTrickleBuffer.ts +21 -0
  205. package/src/rtc/callEventHandlers.ts +37 -0
  206. package/src/rtc/codecs.ts +61 -0
  207. package/src/rtc/helpers/iceCandidate.ts +16 -0
  208. package/src/rtc/helpers/tracks.ts +18 -0
  209. package/src/rtc/publisher.ts +305 -0
  210. package/src/rtc/signal.ts +34 -0
  211. package/src/rtc/subscriber.ts +85 -0
  212. package/src/rtc/types.ts +105 -0
  213. package/src/rtc/videoLayers.ts +103 -0
  214. package/src/stats/coordinator-stats-reporter.ts +167 -0
  215. package/src/stats/state-store-stats-reporter.ts +364 -0
  216. package/src/stats/types.ts +46 -0
  217. package/src/store/index.ts +2 -0
  218. package/src/store/rxUtils.ts +42 -0
  219. package/src/store/stateStore.ts +341 -0
  220. package/tsconfig.json +25 -0
  221. package/typedoc.json +11 -0
  222. package/vite.config.ts +11 -0
@@ -0,0 +1,1528 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for src/gen/google/protobuf/struct.ts</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">src/gen/google/protobuf</a> struct.ts</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">50.31% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>242/481</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">100% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>4/4</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">10.71% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>3/28</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">50.31% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>242/481</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 oninput="onInput()" 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></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
548
+ <span class="cline-any cline-yes">1x</span>
549
+ <span class="cline-any cline-yes">1x</span>
550
+ <span class="cline-any cline-yes">1x</span>
551
+ <span class="cline-any cline-yes">1x</span>
552
+ <span class="cline-any cline-yes">1x</span>
553
+ <span class="cline-any cline-yes">1x</span>
554
+ <span class="cline-any cline-yes">1x</span>
555
+ <span class="cline-any cline-yes">1x</span>
556
+ <span class="cline-any cline-yes">1x</span>
557
+ <span class="cline-any cline-yes">1x</span>
558
+ <span class="cline-any cline-yes">1x</span>
559
+ <span class="cline-any cline-yes">1x</span>
560
+ <span class="cline-any cline-yes">1x</span>
561
+ <span class="cline-any cline-yes">1x</span>
562
+ <span class="cline-any cline-yes">1x</span>
563
+ <span class="cline-any cline-yes">1x</span>
564
+ <span class="cline-any cline-yes">1x</span>
565
+ <span class="cline-any cline-yes">1x</span>
566
+ <span class="cline-any cline-yes">1x</span>
567
+ <span class="cline-any cline-yes">1x</span>
568
+ <span class="cline-any cline-yes">1x</span>
569
+ <span class="cline-any cline-yes">1x</span>
570
+ <span class="cline-any cline-yes">1x</span>
571
+ <span class="cline-any cline-yes">1x</span>
572
+ <span class="cline-any cline-yes">1x</span>
573
+ <span class="cline-any cline-yes">1x</span>
574
+ <span class="cline-any cline-yes">1x</span>
575
+ <span class="cline-any cline-yes">1x</span>
576
+ <span class="cline-any cline-yes">1x</span>
577
+ <span class="cline-any cline-yes">1x</span>
578
+ <span class="cline-any cline-yes">1x</span>
579
+ <span class="cline-any cline-yes">1x</span>
580
+ <span class="cline-any cline-yes">1x</span>
581
+ <span class="cline-any cline-yes">1x</span>
582
+ <span class="cline-any cline-yes">1x</span>
583
+ <span class="cline-any cline-yes">1x</span>
584
+ <span class="cline-any cline-yes">1x</span>
585
+ <span class="cline-any cline-yes">1x</span>
586
+ <span class="cline-any cline-yes">1x</span>
587
+ <span class="cline-any cline-yes">1x</span>
588
+ <span class="cline-any cline-yes">1x</span>
589
+ <span class="cline-any cline-yes">1x</span>
590
+ <span class="cline-any cline-yes">1x</span>
591
+ <span class="cline-any cline-yes">1x</span>
592
+ <span class="cline-any cline-yes">1x</span>
593
+ <span class="cline-any cline-yes">1x</span>
594
+ <span class="cline-any cline-yes">1x</span>
595
+ <span class="cline-any cline-yes">1x</span>
596
+ <span class="cline-any cline-yes">1x</span>
597
+ <span class="cline-any cline-yes">1x</span>
598
+ <span class="cline-any cline-yes">1x</span>
599
+ <span class="cline-any cline-yes">1x</span>
600
+ <span class="cline-any cline-yes">1x</span>
601
+ <span class="cline-any cline-yes">1x</span>
602
+ <span class="cline-any cline-yes">1x</span>
603
+ <span class="cline-any cline-yes">1x</span>
604
+ <span class="cline-any cline-yes">1x</span>
605
+ <span class="cline-any cline-yes">1x</span>
606
+ <span class="cline-any cline-yes">1x</span>
607
+ <span class="cline-any cline-yes">1x</span>
608
+ <span class="cline-any cline-yes">1x</span>
609
+ <span class="cline-any cline-yes">1x</span>
610
+ <span class="cline-any cline-yes">1x</span>
611
+ <span class="cline-any cline-yes">1x</span>
612
+ <span class="cline-any cline-yes">1x</span>
613
+ <span class="cline-any cline-yes">1x</span>
614
+ <span class="cline-any cline-yes">1x</span>
615
+ <span class="cline-any cline-yes">1x</span>
616
+ <span class="cline-any cline-yes">1x</span>
617
+ <span class="cline-any cline-yes">1x</span>
618
+ <span class="cline-any cline-yes">1x</span>
619
+ <span class="cline-any cline-yes">1x</span>
620
+ <span class="cline-any cline-yes">1x</span>
621
+ <span class="cline-any cline-yes">1x</span>
622
+ <span class="cline-any cline-yes">1x</span>
623
+ <span class="cline-any cline-yes">1x</span>
624
+ <span class="cline-any cline-yes">1x</span>
625
+ <span class="cline-any cline-yes">1x</span>
626
+ <span class="cline-any cline-yes">1x</span>
627
+ <span class="cline-any cline-yes">1x</span>
628
+ <span class="cline-any cline-yes">1x</span>
629
+ <span class="cline-any cline-yes">1x</span>
630
+ <span class="cline-any cline-yes">1x</span>
631
+ <span class="cline-any cline-yes">1x</span>
632
+ <span class="cline-any cline-yes">1x</span>
633
+ <span class="cline-any cline-yes">1x</span>
634
+ <span class="cline-any cline-yes">1x</span>
635
+ <span class="cline-any cline-yes">1x</span>
636
+ <span class="cline-any cline-yes">1x</span>
637
+ <span class="cline-any cline-yes">1x</span>
638
+ <span class="cline-any cline-yes">1x</span>
639
+ <span class="cline-any cline-yes">1x</span>
640
+ <span class="cline-any cline-yes">1x</span>
641
+ <span class="cline-any cline-yes">1x</span>
642
+ <span class="cline-any cline-yes">1x</span>
643
+ <span class="cline-any cline-yes">1x</span>
644
+ <span class="cline-any cline-yes">1x</span>
645
+ <span class="cline-any cline-yes">1x</span>
646
+ <span class="cline-any cline-yes">1x</span>
647
+ <span class="cline-any cline-yes">1x</span>
648
+ <span class="cline-any cline-yes">1x</span>
649
+ <span class="cline-any cline-yes">1x</span>
650
+ <span class="cline-any cline-yes">1x</span>
651
+ <span class="cline-any cline-yes">1x</span>
652
+ <span class="cline-any cline-yes">1x</span>
653
+ <span class="cline-any cline-yes">1x</span>
654
+ <span class="cline-any cline-yes">1x</span>
655
+ <span class="cline-any cline-yes">1x</span>
656
+ <span class="cline-any cline-yes">1x</span>
657
+ <span class="cline-any cline-yes">1x</span>
658
+ <span class="cline-any cline-yes">1x</span>
659
+ <span class="cline-any cline-yes">1x</span>
660
+ <span class="cline-any cline-yes">1x</span>
661
+ <span class="cline-any cline-yes">1x</span>
662
+ <span class="cline-any cline-yes">1x</span>
663
+ <span class="cline-any cline-yes">1x</span>
664
+ <span class="cline-any cline-yes">1x</span>
665
+ <span class="cline-any cline-yes">1x</span>
666
+ <span class="cline-any cline-yes">1x</span>
667
+ <span class="cline-any cline-yes">1x</span>
668
+ <span class="cline-any cline-yes">1x</span>
669
+ <span class="cline-any cline-yes">1x</span>
670
+ <span class="cline-any cline-yes">1x</span>
671
+ <span class="cline-any cline-yes">1x</span>
672
+ <span class="cline-any cline-yes">1x</span>
673
+ <span class="cline-any cline-yes">1x</span>
674
+ <span class="cline-any cline-yes">1x</span>
675
+ <span class="cline-any cline-yes">1x</span>
676
+ <span class="cline-any cline-yes">1x</span>
677
+ <span class="cline-any cline-yes">1x</span>
678
+ <span class="cline-any cline-yes">1x</span>
679
+ <span class="cline-any cline-yes">1x</span>
680
+ <span class="cline-any cline-yes">1x</span>
681
+ <span class="cline-any cline-yes">1x</span>
682
+ <span class="cline-any cline-yes">1x</span>
683
+ <span class="cline-any cline-yes">1x</span>
684
+ <span class="cline-any cline-yes">1x</span>
685
+ <span class="cline-any cline-yes">1x</span>
686
+ <span class="cline-any cline-yes">1x</span>
687
+ <span class="cline-any cline-yes">1x</span>
688
+ <span class="cline-any cline-yes">1x</span>
689
+ <span class="cline-any cline-yes">1x</span>
690
+ <span class="cline-any cline-yes">1x</span>
691
+ <span class="cline-any cline-yes">1x</span>
692
+ <span class="cline-any cline-yes">1x</span>
693
+ <span class="cline-any cline-yes">1x</span>
694
+ <span class="cline-any cline-yes">1x</span>
695
+ <span class="cline-any cline-yes">1x</span>
696
+ <span class="cline-any cline-yes">1x</span>
697
+ <span class="cline-any cline-yes">1x</span>
698
+ <span class="cline-any cline-yes">1x</span>
699
+ <span class="cline-any cline-yes">1x</span>
700
+ <span class="cline-any cline-yes">1x</span>
701
+ <span class="cline-any cline-yes">1x</span>
702
+ <span class="cline-any cline-yes">1x</span>
703
+ <span class="cline-any cline-yes">1x</span>
704
+ <span class="cline-any cline-yes">1x</span>
705
+ <span class="cline-any cline-yes">1x</span>
706
+ <span class="cline-any cline-yes">1x</span>
707
+ <span class="cline-any cline-yes">1x</span>
708
+ <span class="cline-any cline-yes">1x</span>
709
+ <span class="cline-any cline-yes">1x</span>
710
+ <span class="cline-any cline-yes">1x</span>
711
+ <span class="cline-any cline-yes">1x</span>
712
+ <span class="cline-any cline-yes">1x</span>
713
+ <span class="cline-any cline-yes">1x</span>
714
+ <span class="cline-any cline-yes">1x</span>
715
+ <span class="cline-any cline-yes">1x</span>
716
+ <span class="cline-any cline-yes">1x</span>
717
+ <span class="cline-any cline-yes">1x</span>
718
+ <span class="cline-any cline-yes">1x</span>
719
+ <span class="cline-any cline-yes">1x</span>
720
+ <span class="cline-any cline-yes">1x</span>
721
+ <span class="cline-any cline-yes">1x</span>
722
+ <span class="cline-any cline-yes">1x</span>
723
+ <span class="cline-any cline-yes">1x</span>
724
+ <span class="cline-any cline-yes">1x</span>
725
+ <span class="cline-any cline-yes">1x</span>
726
+ <span class="cline-any cline-yes">1x</span>
727
+ <span class="cline-any cline-yes">1x</span>
728
+ <span class="cline-any cline-no">&nbsp;</span>
729
+ <span class="cline-any cline-no">&nbsp;</span>
730
+ <span class="cline-any cline-no">&nbsp;</span>
731
+ <span class="cline-any cline-no">&nbsp;</span>
732
+ <span class="cline-any cline-no">&nbsp;</span>
733
+ <span class="cline-any cline-no">&nbsp;</span>
734
+ <span class="cline-any cline-yes">1x</span>
735
+ <span class="cline-any cline-yes">1x</span>
736
+ <span class="cline-any cline-yes">1x</span>
737
+ <span class="cline-any cline-yes">1x</span>
738
+ <span class="cline-any cline-no">&nbsp;</span>
739
+ <span class="cline-any cline-no">&nbsp;</span>
740
+ <span class="cline-any cline-no">&nbsp;</span>
741
+ <span class="cline-any cline-no">&nbsp;</span>
742
+ <span class="cline-any cline-no">&nbsp;</span>
743
+ <span class="cline-any cline-no">&nbsp;</span>
744
+ <span class="cline-any cline-no">&nbsp;</span>
745
+ <span class="cline-any cline-no">&nbsp;</span>
746
+ <span class="cline-any cline-no">&nbsp;</span>
747
+ <span class="cline-any cline-yes">1x</span>
748
+ <span class="cline-any cline-no">&nbsp;</span>
749
+ <span class="cline-any cline-no">&nbsp;</span>
750
+ <span class="cline-any cline-no">&nbsp;</span>
751
+ <span class="cline-any cline-no">&nbsp;</span>
752
+ <span class="cline-any cline-no">&nbsp;</span>
753
+ <span class="cline-any cline-no">&nbsp;</span>
754
+ <span class="cline-any cline-yes">1x</span>
755
+ <span class="cline-any cline-no">&nbsp;</span>
756
+ <span class="cline-any cline-no">&nbsp;</span>
757
+ <span class="cline-any cline-no">&nbsp;</span>
758
+ <span class="cline-any cline-no">&nbsp;</span>
759
+ <span class="cline-any cline-no">&nbsp;</span>
760
+ <span class="cline-any cline-no">&nbsp;</span>
761
+ <span class="cline-any cline-no">&nbsp;</span>
762
+ <span class="cline-any cline-no">&nbsp;</span>
763
+ <span class="cline-any cline-no">&nbsp;</span>
764
+ <span class="cline-any cline-no">&nbsp;</span>
765
+ <span class="cline-any cline-no">&nbsp;</span>
766
+ <span class="cline-any cline-no">&nbsp;</span>
767
+ <span class="cline-any cline-no">&nbsp;</span>
768
+ <span class="cline-any cline-no">&nbsp;</span>
769
+ <span class="cline-any cline-no">&nbsp;</span>
770
+ <span class="cline-any cline-no">&nbsp;</span>
771
+ <span class="cline-any cline-no">&nbsp;</span>
772
+ <span class="cline-any cline-no">&nbsp;</span>
773
+ <span class="cline-any cline-yes">1x</span>
774
+ <span class="cline-any cline-no">&nbsp;</span>
775
+ <span class="cline-any cline-no">&nbsp;</span>
776
+ <span class="cline-any cline-no">&nbsp;</span>
777
+ <span class="cline-any cline-no">&nbsp;</span>
778
+ <span class="cline-any cline-no">&nbsp;</span>
779
+ <span class="cline-any cline-no">&nbsp;</span>
780
+ <span class="cline-any cline-no">&nbsp;</span>
781
+ <span class="cline-any cline-no">&nbsp;</span>
782
+ <span class="cline-any cline-no">&nbsp;</span>
783
+ <span class="cline-any cline-no">&nbsp;</span>
784
+ <span class="cline-any cline-no">&nbsp;</span>
785
+ <span class="cline-any cline-no">&nbsp;</span>
786
+ <span class="cline-any cline-no">&nbsp;</span>
787
+ <span class="cline-any cline-no">&nbsp;</span>
788
+ <span class="cline-any cline-no">&nbsp;</span>
789
+ <span class="cline-any cline-yes">1x</span>
790
+ <span class="cline-any cline-no">&nbsp;</span>
791
+ <span class="cline-any cline-no">&nbsp;</span>
792
+ <span class="cline-any cline-no">&nbsp;</span>
793
+ <span class="cline-any cline-no">&nbsp;</span>
794
+ <span class="cline-any cline-no">&nbsp;</span>
795
+ <span class="cline-any cline-no">&nbsp;</span>
796
+ <span class="cline-any cline-no">&nbsp;</span>
797
+ <span class="cline-any cline-no">&nbsp;</span>
798
+ <span class="cline-any cline-no">&nbsp;</span>
799
+ <span class="cline-any cline-no">&nbsp;</span>
800
+ <span class="cline-any cline-no">&nbsp;</span>
801
+ <span class="cline-any cline-no">&nbsp;</span>
802
+ <span class="cline-any cline-no">&nbsp;</span>
803
+ <span class="cline-any cline-yes">1x</span>
804
+ <span class="cline-any cline-yes">1x</span>
805
+ <span class="cline-any cline-yes">1x</span>
806
+ <span class="cline-any cline-yes">1x</span>
807
+ <span class="cline-any cline-yes">1x</span>
808
+ <span class="cline-any cline-yes">1x</span>
809
+ <span class="cline-any cline-yes">1x</span>
810
+ <span class="cline-any cline-yes">1x</span>
811
+ <span class="cline-any cline-yes">1x</span>
812
+ <span class="cline-any cline-yes">1x</span>
813
+ <span class="cline-any cline-yes">1x</span>
814
+ <span class="cline-any cline-yes">1x</span>
815
+ <span class="cline-any cline-yes">1x</span>
816
+ <span class="cline-any cline-yes">1x</span>
817
+ <span class="cline-any cline-yes">1x</span>
818
+ <span class="cline-any cline-yes">1x</span>
819
+ <span class="cline-any cline-yes">1x</span>
820
+ <span class="cline-any cline-yes">1x</span>
821
+ <span class="cline-any cline-yes">1x</span>
822
+ <span class="cline-any cline-yes">1x</span>
823
+ <span class="cline-any cline-no">&nbsp;</span>
824
+ <span class="cline-any cline-no">&nbsp;</span>
825
+ <span class="cline-any cline-no">&nbsp;</span>
826
+ <span class="cline-any cline-no">&nbsp;</span>
827
+ <span class="cline-any cline-no">&nbsp;</span>
828
+ <span class="cline-any cline-no">&nbsp;</span>
829
+ <span class="cline-any cline-no">&nbsp;</span>
830
+ <span class="cline-any cline-no">&nbsp;</span>
831
+ <span class="cline-any cline-no">&nbsp;</span>
832
+ <span class="cline-any cline-no">&nbsp;</span>
833
+ <span class="cline-any cline-no">&nbsp;</span>
834
+ <span class="cline-any cline-no">&nbsp;</span>
835
+ <span class="cline-any cline-no">&nbsp;</span>
836
+ <span class="cline-any cline-no">&nbsp;</span>
837
+ <span class="cline-any cline-no">&nbsp;</span>
838
+ <span class="cline-any cline-no">&nbsp;</span>
839
+ <span class="cline-any cline-no">&nbsp;</span>
840
+ <span class="cline-any cline-no">&nbsp;</span>
841
+ <span class="cline-any cline-no">&nbsp;</span>
842
+ <span class="cline-any cline-no">&nbsp;</span>
843
+ <span class="cline-any cline-yes">1x</span>
844
+ <span class="cline-any cline-yes">1x</span>
845
+ <span class="cline-any cline-yes">1x</span>
846
+ <span class="cline-any cline-yes">1x</span>
847
+ <span class="cline-any cline-no">&nbsp;</span>
848
+ <span class="cline-any cline-no">&nbsp;</span>
849
+ <span class="cline-any cline-no">&nbsp;</span>
850
+ <span class="cline-any cline-no">&nbsp;</span>
851
+ <span class="cline-any cline-no">&nbsp;</span>
852
+ <span class="cline-any cline-no">&nbsp;</span>
853
+ <span class="cline-any cline-no">&nbsp;</span>
854
+ <span class="cline-any cline-no">&nbsp;</span>
855
+ <span class="cline-any cline-no">&nbsp;</span>
856
+ <span class="cline-any cline-no">&nbsp;</span>
857
+ <span class="cline-any cline-no">&nbsp;</span>
858
+ <span class="cline-any cline-no">&nbsp;</span>
859
+ <span class="cline-any cline-no">&nbsp;</span>
860
+ <span class="cline-any cline-no">&nbsp;</span>
861
+ <span class="cline-any cline-no">&nbsp;</span>
862
+ <span class="cline-any cline-no">&nbsp;</span>
863
+ <span class="cline-any cline-no">&nbsp;</span>
864
+ <span class="cline-any cline-no">&nbsp;</span>
865
+ <span class="cline-any cline-no">&nbsp;</span>
866
+ <span class="cline-any cline-no">&nbsp;</span>
867
+ <span class="cline-any cline-no">&nbsp;</span>
868
+ <span class="cline-any cline-no">&nbsp;</span>
869
+ <span class="cline-any cline-no">&nbsp;</span>
870
+ <span class="cline-any cline-no">&nbsp;</span>
871
+ <span class="cline-any cline-no">&nbsp;</span>
872
+ <span class="cline-any cline-no">&nbsp;</span>
873
+ <span class="cline-any cline-no">&nbsp;</span>
874
+ <span class="cline-any cline-no">&nbsp;</span>
875
+ <span class="cline-any cline-yes">1x</span>
876
+ <span class="cline-any cline-no">&nbsp;</span>
877
+ <span class="cline-any cline-no">&nbsp;</span>
878
+ <span class="cline-any cline-no">&nbsp;</span>
879
+ <span class="cline-any cline-no">&nbsp;</span>
880
+ <span class="cline-any cline-no">&nbsp;</span>
881
+ <span class="cline-any cline-no">&nbsp;</span>
882
+ <span class="cline-any cline-yes">1x</span>
883
+ <span class="cline-any cline-no">&nbsp;</span>
884
+ <span class="cline-any cline-no">&nbsp;</span>
885
+ <span class="cline-any cline-no">&nbsp;</span>
886
+ <span class="cline-any cline-no">&nbsp;</span>
887
+ <span class="cline-any cline-no">&nbsp;</span>
888
+ <span class="cline-any cline-no">&nbsp;</span>
889
+ <span class="cline-any cline-no">&nbsp;</span>
890
+ <span class="cline-any cline-no">&nbsp;</span>
891
+ <span class="cline-any cline-no">&nbsp;</span>
892
+ <span class="cline-any cline-no">&nbsp;</span>
893
+ <span class="cline-any cline-no">&nbsp;</span>
894
+ <span class="cline-any cline-no">&nbsp;</span>
895
+ <span class="cline-any cline-no">&nbsp;</span>
896
+ <span class="cline-any cline-no">&nbsp;</span>
897
+ <span class="cline-any cline-no">&nbsp;</span>
898
+ <span class="cline-any cline-no">&nbsp;</span>
899
+ <span class="cline-any cline-no">&nbsp;</span>
900
+ <span class="cline-any cline-no">&nbsp;</span>
901
+ <span class="cline-any cline-no">&nbsp;</span>
902
+ <span class="cline-any cline-no">&nbsp;</span>
903
+ <span class="cline-any cline-no">&nbsp;</span>
904
+ <span class="cline-any cline-no">&nbsp;</span>
905
+ <span class="cline-any cline-no">&nbsp;</span>
906
+ <span class="cline-any cline-no">&nbsp;</span>
907
+ <span class="cline-any cline-no">&nbsp;</span>
908
+ <span class="cline-any cline-no">&nbsp;</span>
909
+ <span class="cline-any cline-no">&nbsp;</span>
910
+ <span class="cline-any cline-no">&nbsp;</span>
911
+ <span class="cline-any cline-no">&nbsp;</span>
912
+ <span class="cline-any cline-no">&nbsp;</span>
913
+ <span class="cline-any cline-no">&nbsp;</span>
914
+ <span class="cline-any cline-no">&nbsp;</span>
915
+ <span class="cline-any cline-no">&nbsp;</span>
916
+ <span class="cline-any cline-no">&nbsp;</span>
917
+ <span class="cline-any cline-no">&nbsp;</span>
918
+ <span class="cline-any cline-no">&nbsp;</span>
919
+ <span class="cline-any cline-no">&nbsp;</span>
920
+ <span class="cline-any cline-no">&nbsp;</span>
921
+ <span class="cline-any cline-no">&nbsp;</span>
922
+ <span class="cline-any cline-no">&nbsp;</span>
923
+ <span class="cline-any cline-no">&nbsp;</span>
924
+ <span class="cline-any cline-no">&nbsp;</span>
925
+ <span class="cline-any cline-no">&nbsp;</span>
926
+ <span class="cline-any cline-no">&nbsp;</span>
927
+ <span class="cline-any cline-no">&nbsp;</span>
928
+ <span class="cline-any cline-no">&nbsp;</span>
929
+ <span class="cline-any cline-no">&nbsp;</span>
930
+ <span class="cline-any cline-no">&nbsp;</span>
931
+ <span class="cline-any cline-no">&nbsp;</span>
932
+ <span class="cline-any cline-no">&nbsp;</span>
933
+ <span class="cline-any cline-no">&nbsp;</span>
934
+ <span class="cline-any cline-yes">1x</span>
935
+ <span class="cline-any cline-no">&nbsp;</span>
936
+ <span class="cline-any cline-no">&nbsp;</span>
937
+ <span class="cline-any cline-no">&nbsp;</span>
938
+ <span class="cline-any cline-no">&nbsp;</span>
939
+ <span class="cline-any cline-no">&nbsp;</span>
940
+ <span class="cline-any cline-no">&nbsp;</span>
941
+ <span class="cline-any cline-no">&nbsp;</span>
942
+ <span class="cline-any cline-no">&nbsp;</span>
943
+ <span class="cline-any cline-no">&nbsp;</span>
944
+ <span class="cline-any cline-no">&nbsp;</span>
945
+ <span class="cline-any cline-no">&nbsp;</span>
946
+ <span class="cline-any cline-no">&nbsp;</span>
947
+ <span class="cline-any cline-no">&nbsp;</span>
948
+ <span class="cline-any cline-no">&nbsp;</span>
949
+ <span class="cline-any cline-no">&nbsp;</span>
950
+ <span class="cline-any cline-no">&nbsp;</span>
951
+ <span class="cline-any cline-no">&nbsp;</span>
952
+ <span class="cline-any cline-no">&nbsp;</span>
953
+ <span class="cline-any cline-no">&nbsp;</span>
954
+ <span class="cline-any cline-no">&nbsp;</span>
955
+ <span class="cline-any cline-no">&nbsp;</span>
956
+ <span class="cline-any cline-no">&nbsp;</span>
957
+ <span class="cline-any cline-no">&nbsp;</span>
958
+ <span class="cline-any cline-no">&nbsp;</span>
959
+ <span class="cline-any cline-yes">1x</span>
960
+ <span class="cline-any cline-yes">1x</span>
961
+ <span class="cline-any cline-yes">1x</span>
962
+ <span class="cline-any cline-yes">1x</span>
963
+ <span class="cline-any cline-yes">1x</span>
964
+ <span class="cline-any cline-yes">1x</span>
965
+ <span class="cline-any cline-yes">1x</span>
966
+ <span class="cline-any cline-yes">1x</span>
967
+ <span class="cline-any cline-yes">1x</span>
968
+ <span class="cline-any cline-yes">1x</span>
969
+ <span class="cline-any cline-yes">1x</span>
970
+ <span class="cline-any cline-yes">1x</span>
971
+ <span class="cline-any cline-yes">1x</span>
972
+ <span class="cline-any cline-yes">1x</span>
973
+ <span class="cline-any cline-yes">1x</span>
974
+ <span class="cline-any cline-no">&nbsp;</span>
975
+ <span class="cline-any cline-no">&nbsp;</span>
976
+ <span class="cline-any cline-yes">1x</span>
977
+ <span class="cline-any cline-yes">1x</span>
978
+ <span class="cline-any cline-yes">1x</span>
979
+ <span class="cline-any cline-yes">1x</span>
980
+ <span class="cline-any cline-no">&nbsp;</span>
981
+ <span class="cline-any cline-no">&nbsp;</span>
982
+ <span class="cline-any cline-no">&nbsp;</span>
983
+ <span class="cline-any cline-no">&nbsp;</span>
984
+ <span class="cline-any cline-no">&nbsp;</span>
985
+ <span class="cline-any cline-no">&nbsp;</span>
986
+ <span class="cline-any cline-no">&nbsp;</span>
987
+ <span class="cline-any cline-no">&nbsp;</span>
988
+ <span class="cline-any cline-yes">1x</span>
989
+ <span class="cline-any cline-no">&nbsp;</span>
990
+ <span class="cline-any cline-no">&nbsp;</span>
991
+ <span class="cline-any cline-no">&nbsp;</span>
992
+ <span class="cline-any cline-no">&nbsp;</span>
993
+ <span class="cline-any cline-no">&nbsp;</span>
994
+ <span class="cline-any cline-no">&nbsp;</span>
995
+ <span class="cline-any cline-yes">1x</span>
996
+ <span class="cline-any cline-no">&nbsp;</span>
997
+ <span class="cline-any cline-no">&nbsp;</span>
998
+ <span class="cline-any cline-no">&nbsp;</span>
999
+ <span class="cline-any cline-no">&nbsp;</span>
1000
+ <span class="cline-any cline-no">&nbsp;</span>
1001
+ <span class="cline-any cline-no">&nbsp;</span>
1002
+ <span class="cline-any cline-no">&nbsp;</span>
1003
+ <span class="cline-any cline-no">&nbsp;</span>
1004
+ <span class="cline-any cline-no">&nbsp;</span>
1005
+ <span class="cline-any cline-no">&nbsp;</span>
1006
+ <span class="cline-any cline-no">&nbsp;</span>
1007
+ <span class="cline-any cline-no">&nbsp;</span>
1008
+ <span class="cline-any cline-no">&nbsp;</span>
1009
+ <span class="cline-any cline-no">&nbsp;</span>
1010
+ <span class="cline-any cline-no">&nbsp;</span>
1011
+ <span class="cline-any cline-no">&nbsp;</span>
1012
+ <span class="cline-any cline-no">&nbsp;</span>
1013
+ <span class="cline-any cline-no">&nbsp;</span>
1014
+ <span class="cline-any cline-yes">1x</span>
1015
+ <span class="cline-any cline-no">&nbsp;</span>
1016
+ <span class="cline-any cline-no">&nbsp;</span>
1017
+ <span class="cline-any cline-no">&nbsp;</span>
1018
+ <span class="cline-any cline-no">&nbsp;</span>
1019
+ <span class="cline-any cline-no">&nbsp;</span>
1020
+ <span class="cline-any cline-no">&nbsp;</span>
1021
+ <span class="cline-any cline-no">&nbsp;</span>
1022
+ <span class="cline-any cline-no">&nbsp;</span>
1023
+ <span class="cline-any cline-no">&nbsp;</span>
1024
+ <span class="cline-any cline-yes">1x</span>
1025
+ <span class="cline-any cline-yes">1x</span>
1026
+ <span class="cline-any cline-yes">1x</span>
1027
+ <span class="cline-any cline-yes">1x</span>
1028
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">/* eslint-disable */
1029
+ // @generated by protobuf-ts 2.8.1 with parameter long_type_string,client_generic,server_none,eslint_disable
1030
+ // @generated from protobuf file "google/protobuf/struct.proto" (package "google.protobuf", syntax proto3)
1031
+ // tslint:disable
1032
+ //
1033
+ // Protocol Buffers - Google's data interchange format
1034
+ // Copyright 2008 Google Inc. All rights reserved.
1035
+ // https://developers.google.com/protocol-buffers/
1036
+ //
1037
+ // Redistribution and use in source and binary forms, with or without
1038
+ // modification, are permitted provided that the following conditions are
1039
+ // met:
1040
+ //
1041
+ // * Redistributions of source code must retain the above copyright
1042
+ // notice, this list of conditions and the following disclaimer.
1043
+ // * Redistributions in binary form must reproduce the above
1044
+ // copyright notice, this list of conditions and the following disclaimer
1045
+ // in the documentation and/or other materials provided with the
1046
+ // distribution.
1047
+ // * Neither the name of Google Inc. nor the names of its
1048
+ // contributors may be used to endorse or promote products derived from
1049
+ // this software without specific prior written permission.
1050
+ //
1051
+ // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
1052
+ // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
1053
+ // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
1054
+ // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
1055
+ // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
1056
+ // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
1057
+ // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
1058
+ // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
1059
+ // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
1060
+ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
1061
+ // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1062
+ //
1063
+ import type { BinaryWriteOptions } from "@protobuf-ts/runtime";
1064
+ import type { IBinaryWriter } from "@protobuf-ts/runtime";
1065
+ import { WireType } from "@protobuf-ts/runtime";
1066
+ import type { BinaryReadOptions } from "@protobuf-ts/runtime";
1067
+ import type { IBinaryReader } from "@protobuf-ts/runtime";
1068
+ import { UnknownFieldHandler } from "@protobuf-ts/runtime";
1069
+ import type { PartialMessage } from "@protobuf-ts/runtime";
1070
+ import { reflectionMergePartial } from "@protobuf-ts/runtime";
1071
+ import { MESSAGE_TYPE } from "@protobuf-ts/runtime";
1072
+ import { isJsonObject } from "@protobuf-ts/runtime";
1073
+ import { typeofJsonValue } from "@protobuf-ts/runtime";
1074
+ import type { JsonValue } from "@protobuf-ts/runtime";
1075
+ import type { JsonReadOptions } from "@protobuf-ts/runtime";
1076
+ import type { JsonWriteOptions } from "@protobuf-ts/runtime";
1077
+ import type { JsonObject } from "@protobuf-ts/runtime";
1078
+ import { MessageType } from "@protobuf-ts/runtime";
1079
+ /**
1080
+ * `Struct` represents a structured data value, consisting of fields
1081
+ * which map to dynamically typed values. In some languages, `Struct`
1082
+ * might be supported by a native representation. For example, in
1083
+ * scripting languages like JS a struct is represented as an
1084
+ * object. The details of that representation are described together
1085
+ * with the proto support for the language.
1086
+ *
1087
+ * The JSON representation for `Struct` is JSON object.
1088
+ *
1089
+ * @generated from protobuf message google.protobuf.Struct
1090
+ */
1091
+ export interface Struct {
1092
+ /**
1093
+ * Unordered map of dynamically typed values.
1094
+ *
1095
+ * @generated from protobuf field: map&lt;string, google.protobuf.Value&gt; fields = 1;
1096
+ */
1097
+ fields: {
1098
+ [key: string]: Value;
1099
+ };
1100
+ }
1101
+ /**
1102
+ * `Value` represents a dynamically typed value which can be either
1103
+ * null, a number, a string, a boolean, a recursive struct value, or a
1104
+ * list of values. A producer of value is expected to set one of these
1105
+ * variants. Absence of any variant indicates an error.
1106
+ *
1107
+ * The JSON representation for `Value` is JSON value.
1108
+ *
1109
+ * @generated from protobuf message google.protobuf.Value
1110
+ */
1111
+ export interface Value {
1112
+ /**
1113
+ * @generated from protobuf oneof: kind
1114
+ */
1115
+ kind: {
1116
+ oneofKind: "nullValue";
1117
+ /**
1118
+ * Represents a null value.
1119
+ *
1120
+ * @generated from protobuf field: google.protobuf.NullValue null_value = 1;
1121
+ */
1122
+ nullValue: NullValue;
1123
+ } | {
1124
+ oneofKind: "numberValue";
1125
+ /**
1126
+ * Represents a double value.
1127
+ *
1128
+ * @generated from protobuf field: double number_value = 2;
1129
+ */
1130
+ numberValue: number;
1131
+ } | {
1132
+ oneofKind: "stringValue";
1133
+ /**
1134
+ * Represents a string value.
1135
+ *
1136
+ * @generated from protobuf field: string string_value = 3;
1137
+ */
1138
+ stringValue: string;
1139
+ } | {
1140
+ oneofKind: "boolValue";
1141
+ /**
1142
+ * Represents a boolean value.
1143
+ *
1144
+ * @generated from protobuf field: bool bool_value = 4;
1145
+ */
1146
+ boolValue: boolean;
1147
+ } | {
1148
+ oneofKind: "structValue";
1149
+ /**
1150
+ * Represents a structured value.
1151
+ *
1152
+ * @generated from protobuf field: google.protobuf.Struct struct_value = 5;
1153
+ */
1154
+ structValue: Struct;
1155
+ } | {
1156
+ oneofKind: "listValue";
1157
+ /**
1158
+ * Represents a repeated `Value`.
1159
+ *
1160
+ * @generated from protobuf field: google.protobuf.ListValue list_value = 6;
1161
+ */
1162
+ listValue: ListValue;
1163
+ } | {
1164
+ oneofKind: undefined;
1165
+ };
1166
+ }
1167
+ /**
1168
+ * `ListValue` is a wrapper around a repeated field of values.
1169
+ *
1170
+ * The JSON representation for `ListValue` is JSON array.
1171
+ *
1172
+ * @generated from protobuf message google.protobuf.ListValue
1173
+ */
1174
+ export interface ListValue {
1175
+ /**
1176
+ * Repeated field of dynamically typed values.
1177
+ *
1178
+ * @generated from protobuf field: repeated google.protobuf.Value values = 1;
1179
+ */
1180
+ values: Value[];
1181
+ }
1182
+ /**
1183
+ * `NullValue` is a singleton enumeration to represent the null value for the
1184
+ * `Value` type union.
1185
+ *
1186
+ * The JSON representation for `NullValue` is JSON `null`.
1187
+ *
1188
+ * @generated from protobuf enum google.protobuf.NullValue
1189
+ */
1190
+ export enum <span class="fstat-no" title="function not covered" >NullValue {</span>
1191
+ /**
1192
+ * Null value.
1193
+ *
1194
+ * @generated from protobuf enum value: NULL_VALUE = 0;
1195
+ */
1196
+ NULL_VALUE = 0
1197
+ }
1198
+ // @generated message type with reflection information, may provide speed optimized methods
1199
+ class Struct$Type extends MessageType&lt;Struct&gt; {
1200
+ constructor() {
1201
+ super("google.protobuf.Struct", [
1202
+ { no: 1, name: "fields", kind: "map", K: 9 /*ScalarType.STRING*/, V: { kind: "message", T: <span class="fstat-no" title="function not covered" >() =&gt; Value }</span> }
1203
+ ]);
1204
+ }
1205
+ /**
1206
+ * Encode `Struct` to JSON object.
1207
+ */
1208
+ <span class="fstat-no" title="function not covered" > internalJsonWrite(message: Struct, options: JsonWriteOptions): JsonValue {</span>
1209
+ <span class="cstat-no" title="statement not covered" > let json: JsonObject = {};</span>
1210
+ <span class="cstat-no" title="statement not covered" > for (let [k, v] of Object.entries(message.fields)) {</span>
1211
+ <span class="cstat-no" title="statement not covered" > json[k] = Value.toJson(v);</span>
1212
+ <span class="cstat-no" title="statement not covered" > }</span>
1213
+ <span class="cstat-no" title="statement not covered" > return json;</span>
1214
+ <span class="cstat-no" title="statement not covered" > }</span>
1215
+ /**
1216
+ * Decode `Struct` from JSON object.
1217
+ */
1218
+ <span class="fstat-no" title="function not covered" > internalJsonRead(json: JsonValue, options: JsonReadOptions, target?: Struct): Struct {</span>
1219
+ <span class="cstat-no" title="statement not covered" > if (!isJsonObject(json))</span>
1220
+ <span class="cstat-no" title="statement not covered" > throw new globalThis.Error("Unable to parse message " + this.typeName + " from JSON " + typeofJsonValue(json) + ".");</span>
1221
+ <span class="cstat-no" title="statement not covered" > if (!target)</span>
1222
+ <span class="cstat-no" title="statement not covered" > target = this.create();</span>
1223
+ <span class="cstat-no" title="statement not covered" > for (let [k, v] of globalThis.Object.entries(json)) {</span>
1224
+ <span class="cstat-no" title="statement not covered" > target.fields[k] = Value.fromJson(v);</span>
1225
+ <span class="cstat-no" title="statement not covered" > }</span>
1226
+ <span class="cstat-no" title="statement not covered" > return target;</span>
1227
+ <span class="cstat-no" title="statement not covered" > }</span>
1228
+ <span class="fstat-no" title="function not covered" > create(value?: PartialMessage&lt;Struct&gt;): Struct {</span>
1229
+ <span class="cstat-no" title="statement not covered" > const message = { fields: {} };</span>
1230
+ <span class="cstat-no" title="statement not covered" > globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });</span>
1231
+ <span class="cstat-no" title="statement not covered" > if (value !== undefined)</span>
1232
+ <span class="cstat-no" title="statement not covered" > reflectionMergePartial&lt;Struct&gt;(this, message, value);</span>
1233
+ <span class="cstat-no" title="statement not covered" > return message;</span>
1234
+ <span class="cstat-no" title="statement not covered" > }</span>
1235
+ <span class="fstat-no" title="function not covered" > internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Struct): Struct {</span>
1236
+ <span class="cstat-no" title="statement not covered" > let message = target ?? this.create(), end = reader.pos + length;</span>
1237
+ <span class="cstat-no" title="statement not covered" > while (reader.pos &lt; end) {</span>
1238
+ <span class="cstat-no" title="statement not covered" > let [fieldNo, wireType] = reader.tag();</span>
1239
+ <span class="cstat-no" title="statement not covered" > switch (fieldNo) {</span>
1240
+ <span class="cstat-no" title="statement not covered" > case /* map&lt;string, google.protobuf.Value&gt; fields */ 1:</span>
1241
+ <span class="cstat-no" title="statement not covered" > this.binaryReadMap1(message.fields, reader, options);</span>
1242
+ <span class="cstat-no" title="statement not covered" > break;</span>
1243
+ <span class="cstat-no" title="statement not covered" > default:</span>
1244
+ <span class="cstat-no" title="statement not covered" > let u = options.readUnknownField;</span>
1245
+ <span class="cstat-no" title="statement not covered" > if (u === "throw")</span>
1246
+ <span class="cstat-no" title="statement not covered" > throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);</span>
1247
+ <span class="cstat-no" title="statement not covered" > let d = reader.skip(wireType);</span>
1248
+ <span class="cstat-no" title="statement not covered" > if (u !== false)</span>
1249
+ <span class="cstat-no" title="statement not covered" > (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);</span>
1250
+ <span class="cstat-no" title="statement not covered" > }</span>
1251
+ <span class="cstat-no" title="statement not covered" > }</span>
1252
+ <span class="cstat-no" title="statement not covered" > return message;</span>
1253
+ <span class="cstat-no" title="statement not covered" > }</span>
1254
+ private <span class="fstat-no" title="function not covered" >binaryReadMap1(map: Struct["fields"], reader: IBinaryReader, options: BinaryReadOptions): void {</span>
1255
+ <span class="cstat-no" title="statement not covered" > let len = reader.uint32(), end = reader.pos + len, key: keyof Struct["fields"] | undefined, val: Struct["fields"][any] | undefined;</span>
1256
+ <span class="cstat-no" title="statement not covered" > while (reader.pos &lt; end) {</span>
1257
+ <span class="cstat-no" title="statement not covered" > let [fieldNo, wireType] = reader.tag();</span>
1258
+ <span class="cstat-no" title="statement not covered" > switch (fieldNo) {</span>
1259
+ <span class="cstat-no" title="statement not covered" > case 1:</span>
1260
+ <span class="cstat-no" title="statement not covered" > key = reader.string();</span>
1261
+ <span class="cstat-no" title="statement not covered" > break;</span>
1262
+ <span class="cstat-no" title="statement not covered" > case 2:</span>
1263
+ <span class="cstat-no" title="statement not covered" > val = Value.internalBinaryRead(reader, reader.uint32(), options);</span>
1264
+ <span class="cstat-no" title="statement not covered" > break;</span>
1265
+ <span class="cstat-no" title="statement not covered" > default: throw new globalThis.Error("unknown map entry field for field google.protobuf.Struct.fields");</span>
1266
+ <span class="cstat-no" title="statement not covered" > }</span>
1267
+ <span class="cstat-no" title="statement not covered" > }</span>
1268
+ <span class="cstat-no" title="statement not covered" > map[key ?? ""] = val ?? Value.create();</span>
1269
+ <span class="cstat-no" title="statement not covered" > }</span>
1270
+ <span class="fstat-no" title="function not covered" > internalBinaryWrite(message: Struct, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {</span>
1271
+ <span class="cstat-no" title="statement not covered" > /* map&lt;string, google.protobuf.Value&gt; fields = 1; */</span>
1272
+ <span class="cstat-no" title="statement not covered" > for (let k of Object.keys(message.fields)) {</span>
1273
+ <span class="cstat-no" title="statement not covered" > writer.tag(1, WireType.LengthDelimited).fork().tag(1, WireType.LengthDelimited).string(k);</span>
1274
+ <span class="cstat-no" title="statement not covered" > writer.tag(2, WireType.LengthDelimited).fork();</span>
1275
+ <span class="cstat-no" title="statement not covered" > Value.internalBinaryWrite(message.fields[k], writer, options);</span>
1276
+ <span class="cstat-no" title="statement not covered" > writer.join().join();</span>
1277
+ <span class="cstat-no" title="statement not covered" > }</span>
1278
+ <span class="cstat-no" title="statement not covered" > let u = options.writeUnknownFields;</span>
1279
+ <span class="cstat-no" title="statement not covered" > if (u !== false)</span>
1280
+ <span class="cstat-no" title="statement not covered" > (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);</span>
1281
+ <span class="cstat-no" title="statement not covered" > return writer;</span>
1282
+ <span class="cstat-no" title="statement not covered" > }</span>
1283
+ <span class="cstat-no" title="statement not covered" >}</span>
1284
+ /**
1285
+ * @generated MessageType for protobuf message google.protobuf.Struct
1286
+ */
1287
+ export const Struct = new Struct$Type(<span class="fstat-no" title="function not covered" >);</span>
1288
+ // @generated message type with reflection information, may provide speed optimized methods
1289
+ class Value$Type extends MessageType&lt;Value&gt; {
1290
+ constructor() {
1291
+ super("google.protobuf.Value", [
1292
+ { no: 1, name: "null_value", kind: "enum", oneof: "kind", T: <span class="fstat-no" title="function not covered" >() =&gt; ["google.protobuf.NullValue", NullValue] }</span>,
1293
+ { no: 2, name: "number_value", kind: "scalar", oneof: "kind", T: 1 /*ScalarType.DOUBLE*/ },
1294
+ { no: 3, name: "string_value", kind: "scalar", oneof: "kind", T: 9 /*ScalarType.STRING*/ },
1295
+ { no: 4, name: "bool_value", kind: "scalar", oneof: "kind", T: 8 /*ScalarType.BOOL*/ },
1296
+ { no: 5, name: "struct_value", kind: "message", oneof: "kind", T: <span class="fstat-no" title="function not covered" >() =&gt; Struct }</span>,
1297
+ { no: 6, name: "list_value", kind: "message", oneof: "kind", T: <span class="fstat-no" title="function not covered" >() =&gt; ListValue }</span>
1298
+ ]);
1299
+ }
1300
+ /**
1301
+ * Encode `Value` to JSON value.
1302
+ */
1303
+ <span class="fstat-no" title="function not covered" > internalJsonWrite(message: Value, options: JsonWriteOptions): JsonValue {</span>
1304
+ <span class="cstat-no" title="statement not covered" > if (message.kind.oneofKind === undefined)</span>
1305
+ <span class="cstat-no" title="statement not covered" > throw new globalThis.Error();</span>
1306
+ <span class="cstat-no" title="statement not covered" > switch (message.kind.oneofKind) {</span>
1307
+ <span class="cstat-no" title="statement not covered" > case undefined: throw new globalThis.Error();</span>
1308
+ <span class="cstat-no" title="statement not covered" > case "boolValue": return message.kind.boolValue;</span>
1309
+ <span class="cstat-no" title="statement not covered" > case "nullValue": return null;</span>
1310
+ <span class="cstat-no" title="statement not covered" > case "numberValue": return message.kind.numberValue;</span>
1311
+ <span class="cstat-no" title="statement not covered" > case "stringValue": return message.kind.stringValue;</span>
1312
+ <span class="cstat-no" title="statement not covered" > case "listValue":</span>
1313
+ <span class="cstat-no" title="statement not covered" > let listValueField = this.fields.find(f =&gt; f.no === 6);</span>
1314
+ <span class="cstat-no" title="statement not covered" > if (listValueField?.kind !== "message")</span>
1315
+ <span class="cstat-no" title="statement not covered" > throw new globalThis.Error();</span>
1316
+ <span class="cstat-no" title="statement not covered" > return listValueField.T().toJson(message.kind.listValue);</span>
1317
+ <span class="cstat-no" title="statement not covered" > case "structValue":</span>
1318
+ <span class="cstat-no" title="statement not covered" > let structValueField = this.fields.find(f =&gt; f.no === 5);</span>
1319
+ <span class="cstat-no" title="statement not covered" > if (structValueField?.kind !== "message")</span>
1320
+ <span class="cstat-no" title="statement not covered" > throw new globalThis.Error();</span>
1321
+ <span class="cstat-no" title="statement not covered" > return structValueField.T().toJson(message.kind.structValue);</span>
1322
+ <span class="cstat-no" title="statement not covered" > }</span>
1323
+ <span class="cstat-no" title="statement not covered" > }</span>
1324
+ /**
1325
+ * Decode `Value` from JSON value.
1326
+ */
1327
+ <span class="fstat-no" title="function not covered" > internalJsonRead(json: JsonValue, options: JsonReadOptions, target?: Value): Value {</span>
1328
+ <span class="cstat-no" title="statement not covered" > if (!target)</span>
1329
+ <span class="cstat-no" title="statement not covered" > target = this.create();</span>
1330
+ <span class="cstat-no" title="statement not covered" > switch (typeof json) {</span>
1331
+ <span class="cstat-no" title="statement not covered" > case "number":</span>
1332
+ <span class="cstat-no" title="statement not covered" > target.kind = { oneofKind: "numberValue", numberValue: json };</span>
1333
+ <span class="cstat-no" title="statement not covered" > break;</span>
1334
+ <span class="cstat-no" title="statement not covered" > case "string":</span>
1335
+ <span class="cstat-no" title="statement not covered" > target.kind = { oneofKind: "stringValue", stringValue: json };</span>
1336
+ <span class="cstat-no" title="statement not covered" > break;</span>
1337
+ <span class="cstat-no" title="statement not covered" > case "boolean":</span>
1338
+ <span class="cstat-no" title="statement not covered" > target.kind = { oneofKind: "boolValue", boolValue: json };</span>
1339
+ <span class="cstat-no" title="statement not covered" > break;</span>
1340
+ <span class="cstat-no" title="statement not covered" > case "object":</span>
1341
+ <span class="cstat-no" title="statement not covered" > if (json === null) {</span>
1342
+ <span class="cstat-no" title="statement not covered" > target.kind = { oneofKind: "nullValue", nullValue: NullValue.NULL_VALUE };</span>
1343
+ <span class="cstat-no" title="statement not covered" > }</span>
1344
+ <span class="cstat-no" title="statement not covered" > else if (globalThis.Array.isArray(json)) {</span>
1345
+ <span class="cstat-no" title="statement not covered" > target.kind = { oneofKind: "listValue", listValue: ListValue.fromJson(json) };</span>
1346
+ <span class="cstat-no" title="statement not covered" > }</span>
1347
+ <span class="cstat-no" title="statement not covered" > else {</span>
1348
+ <span class="cstat-no" title="statement not covered" > let val = Struct.fromJson(json);</span>
1349
+ <span class="cstat-no" title="statement not covered" > target.kind = { oneofKind: "structValue", structValue: Struct.fromJson(json) };</span>
1350
+ <span class="cstat-no" title="statement not covered" > }</span>
1351
+ <span class="cstat-no" title="statement not covered" > break;</span>
1352
+ <span class="cstat-no" title="statement not covered" > default: throw new globalThis.Error("Unable to parse " + this.typeName + " from JSON " + typeofJsonValue(json));</span>
1353
+ <span class="cstat-no" title="statement not covered" > }</span>
1354
+ <span class="cstat-no" title="statement not covered" > return target;</span>
1355
+ <span class="cstat-no" title="statement not covered" > }</span>
1356
+ <span class="fstat-no" title="function not covered" > create(value?: PartialMessage&lt;Value&gt;): Value {</span>
1357
+ <span class="cstat-no" title="statement not covered" > const message = { kind: { oneofKind: undefined } };</span>
1358
+ <span class="cstat-no" title="statement not covered" > globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });</span>
1359
+ <span class="cstat-no" title="statement not covered" > if (value !== undefined)</span>
1360
+ <span class="cstat-no" title="statement not covered" > reflectionMergePartial&lt;Value&gt;(this, message, value);</span>
1361
+ <span class="cstat-no" title="statement not covered" > return message;</span>
1362
+ <span class="cstat-no" title="statement not covered" > }</span>
1363
+ <span class="fstat-no" title="function not covered" > internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Value): Value {</span>
1364
+ <span class="cstat-no" title="statement not covered" > let message = target ?? this.create(), end = reader.pos + length;</span>
1365
+ <span class="cstat-no" title="statement not covered" > while (reader.pos &lt; end) {</span>
1366
+ <span class="cstat-no" title="statement not covered" > let [fieldNo, wireType] = reader.tag();</span>
1367
+ <span class="cstat-no" title="statement not covered" > switch (fieldNo) {</span>
1368
+ <span class="cstat-no" title="statement not covered" > case /* google.protobuf.NullValue null_value */ 1:</span>
1369
+ <span class="cstat-no" title="statement not covered" > message.kind = {</span>
1370
+ <span class="cstat-no" title="statement not covered" > oneofKind: "nullValue",</span>
1371
+ <span class="cstat-no" title="statement not covered" > nullValue: reader.int32()</span>
1372
+ <span class="cstat-no" title="statement not covered" > };</span>
1373
+ <span class="cstat-no" title="statement not covered" > break;</span>
1374
+ <span class="cstat-no" title="statement not covered" > case /* double number_value */ 2:</span>
1375
+ <span class="cstat-no" title="statement not covered" > message.kind = {</span>
1376
+ <span class="cstat-no" title="statement not covered" > oneofKind: "numberValue",</span>
1377
+ <span class="cstat-no" title="statement not covered" > numberValue: reader.double()</span>
1378
+ <span class="cstat-no" title="statement not covered" > };</span>
1379
+ <span class="cstat-no" title="statement not covered" > break;</span>
1380
+ <span class="cstat-no" title="statement not covered" > case /* string string_value */ 3:</span>
1381
+ <span class="cstat-no" title="statement not covered" > message.kind = {</span>
1382
+ <span class="cstat-no" title="statement not covered" > oneofKind: "stringValue",</span>
1383
+ <span class="cstat-no" title="statement not covered" > stringValue: reader.string()</span>
1384
+ <span class="cstat-no" title="statement not covered" > };</span>
1385
+ <span class="cstat-no" title="statement not covered" > break;</span>
1386
+ <span class="cstat-no" title="statement not covered" > case /* bool bool_value */ 4:</span>
1387
+ <span class="cstat-no" title="statement not covered" > message.kind = {</span>
1388
+ <span class="cstat-no" title="statement not covered" > oneofKind: "boolValue",</span>
1389
+ <span class="cstat-no" title="statement not covered" > boolValue: reader.bool()</span>
1390
+ <span class="cstat-no" title="statement not covered" > };</span>
1391
+ <span class="cstat-no" title="statement not covered" > break;</span>
1392
+ <span class="cstat-no" title="statement not covered" > case /* google.protobuf.Struct struct_value */ 5:</span>
1393
+ <span class="cstat-no" title="statement not covered" > message.kind = {</span>
1394
+ <span class="cstat-no" title="statement not covered" > oneofKind: "structValue",</span>
1395
+ <span class="cstat-no" title="statement not covered" > structValue: Struct.internalBinaryRead(reader, reader.uint32(), options, (message.kind as any).structValue)</span>
1396
+ <span class="cstat-no" title="statement not covered" > };</span>
1397
+ <span class="cstat-no" title="statement not covered" > break;</span>
1398
+ <span class="cstat-no" title="statement not covered" > case /* google.protobuf.ListValue list_value */ 6:</span>
1399
+ <span class="cstat-no" title="statement not covered" > message.kind = {</span>
1400
+ <span class="cstat-no" title="statement not covered" > oneofKind: "listValue",</span>
1401
+ <span class="cstat-no" title="statement not covered" > listValue: ListValue.internalBinaryRead(reader, reader.uint32(), options, (message.kind as any).listValue)</span>
1402
+ <span class="cstat-no" title="statement not covered" > };</span>
1403
+ <span class="cstat-no" title="statement not covered" > break;</span>
1404
+ <span class="cstat-no" title="statement not covered" > default:</span>
1405
+ <span class="cstat-no" title="statement not covered" > let u = options.readUnknownField;</span>
1406
+ <span class="cstat-no" title="statement not covered" > if (u === "throw")</span>
1407
+ <span class="cstat-no" title="statement not covered" > throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);</span>
1408
+ <span class="cstat-no" title="statement not covered" > let d = reader.skip(wireType);</span>
1409
+ <span class="cstat-no" title="statement not covered" > if (u !== false)</span>
1410
+ <span class="cstat-no" title="statement not covered" > (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);</span>
1411
+ <span class="cstat-no" title="statement not covered" > }</span>
1412
+ <span class="cstat-no" title="statement not covered" > }</span>
1413
+ <span class="cstat-no" title="statement not covered" > return message;</span>
1414
+ <span class="cstat-no" title="statement not covered" > }</span>
1415
+ <span class="fstat-no" title="function not covered" > internalBinaryWrite(message: Value, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {</span>
1416
+ <span class="cstat-no" title="statement not covered" > /* google.protobuf.NullValue null_value = 1; */</span>
1417
+ <span class="cstat-no" title="statement not covered" > if (message.kind.oneofKind === "nullValue")</span>
1418
+ <span class="cstat-no" title="statement not covered" > writer.tag(1, WireType.Varint).int32(message.kind.nullValue);</span>
1419
+ <span class="cstat-no" title="statement not covered" > /* double number_value = 2; */</span>
1420
+ <span class="cstat-no" title="statement not covered" > if (message.kind.oneofKind === "numberValue")</span>
1421
+ <span class="cstat-no" title="statement not covered" > writer.tag(2, WireType.Bit64).double(message.kind.numberValue);</span>
1422
+ <span class="cstat-no" title="statement not covered" > /* string string_value = 3; */</span>
1423
+ <span class="cstat-no" title="statement not covered" > if (message.kind.oneofKind === "stringValue")</span>
1424
+ <span class="cstat-no" title="statement not covered" > writer.tag(3, WireType.LengthDelimited).string(message.kind.stringValue);</span>
1425
+ <span class="cstat-no" title="statement not covered" > /* bool bool_value = 4; */</span>
1426
+ <span class="cstat-no" title="statement not covered" > if (message.kind.oneofKind === "boolValue")</span>
1427
+ <span class="cstat-no" title="statement not covered" > writer.tag(4, WireType.Varint).bool(message.kind.boolValue);</span>
1428
+ <span class="cstat-no" title="statement not covered" > /* google.protobuf.Struct struct_value = 5; */</span>
1429
+ <span class="cstat-no" title="statement not covered" > if (message.kind.oneofKind === "structValue")</span>
1430
+ <span class="cstat-no" title="statement not covered" > Struct.internalBinaryWrite(message.kind.structValue, writer.tag(5, WireType.LengthDelimited).fork(), options).join();</span>
1431
+ <span class="cstat-no" title="statement not covered" > /* google.protobuf.ListValue list_value = 6; */</span>
1432
+ <span class="cstat-no" title="statement not covered" > if (message.kind.oneofKind === "listValue")</span>
1433
+ <span class="cstat-no" title="statement not covered" > ListValue.internalBinaryWrite(message.kind.listValue, writer.tag(6, WireType.LengthDelimited).fork(), options).join();</span>
1434
+ <span class="cstat-no" title="statement not covered" > let u = options.writeUnknownFields;</span>
1435
+ <span class="cstat-no" title="statement not covered" > if (u !== false)</span>
1436
+ <span class="cstat-no" title="statement not covered" > (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);</span>
1437
+ <span class="cstat-no" title="statement not covered" > return writer;</span>
1438
+ <span class="cstat-no" title="statement not covered" > }</span>
1439
+ <span class="cstat-no" title="statement not covered" >}</span>
1440
+ /**
1441
+ * @generated MessageType for protobuf message google.protobuf.Value
1442
+ */
1443
+ export const Value = new Value$Type(<span class="fstat-no" title="function not covered" >);</span>
1444
+ // @generated message type with reflection information, may provide speed optimized methods
1445
+ class ListValue$Type extends MessageType&lt;ListValue&gt; {
1446
+ constructor() {
1447
+ super("google.protobuf.ListValue", [
1448
+ { no: 1, name: "values", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: <span class="fstat-no" title="function not covered" >() =&gt; Value }</span>
1449
+ ]);
1450
+ }
1451
+ /**
1452
+ * Encode `ListValue` to JSON array.
1453
+ */
1454
+ <span class="fstat-no" title="function not covered" > internalJsonWrite(message: ListValue, options: JsonWriteOptions): JsonValue {</span>
1455
+ <span class="cstat-no" title="statement not covered" > return message.values.map(v =&gt; Value.toJson(v));</span>
1456
+ <span class="cstat-no" title="statement not covered" > }</span>
1457
+ /**
1458
+ * Decode `ListValue` from JSON array.
1459
+ */
1460
+ <span class="fstat-no" title="function not covered" > internalJsonRead(json: JsonValue, options: JsonReadOptions, target?: ListValue): ListValue {</span>
1461
+ <span class="cstat-no" title="statement not covered" > if (!globalThis.Array.isArray(json))</span>
1462
+ <span class="cstat-no" title="statement not covered" > throw new globalThis.Error("Unable to parse " + this.typeName + " from JSON " + typeofJsonValue(json));</span>
1463
+ <span class="cstat-no" title="statement not covered" > if (!target)</span>
1464
+ <span class="cstat-no" title="statement not covered" > target = this.create();</span>
1465
+ <span class="cstat-no" title="statement not covered" > let values = json.map(v =&gt; Value.fromJson(v));</span>
1466
+ <span class="cstat-no" title="statement not covered" > target.values.push(...values);</span>
1467
+ <span class="cstat-no" title="statement not covered" > return target;</span>
1468
+ <span class="cstat-no" title="statement not covered" > }</span>
1469
+ <span class="fstat-no" title="function not covered" > create(value?: PartialMessage&lt;ListValue&gt;): ListValue {</span>
1470
+ <span class="cstat-no" title="statement not covered" > const message = { values: [] };</span>
1471
+ <span class="cstat-no" title="statement not covered" > globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this });</span>
1472
+ <span class="cstat-no" title="statement not covered" > if (value !== undefined)</span>
1473
+ <span class="cstat-no" title="statement not covered" > reflectionMergePartial&lt;ListValue&gt;(this, message, value);</span>
1474
+ <span class="cstat-no" title="statement not covered" > return message;</span>
1475
+ <span class="cstat-no" title="statement not covered" > }</span>
1476
+ <span class="fstat-no" title="function not covered" > internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListValue): ListValue {</span>
1477
+ <span class="cstat-no" title="statement not covered" > let message = target ?? this.create(), end = reader.pos + length;</span>
1478
+ <span class="cstat-no" title="statement not covered" > while (reader.pos &lt; end) {</span>
1479
+ <span class="cstat-no" title="statement not covered" > let [fieldNo, wireType] = reader.tag();</span>
1480
+ <span class="cstat-no" title="statement not covered" > switch (fieldNo) {</span>
1481
+ <span class="cstat-no" title="statement not covered" > case /* repeated google.protobuf.Value values */ 1:</span>
1482
+ <span class="cstat-no" title="statement not covered" > message.values.push(Value.internalBinaryRead(reader, reader.uint32(), options));</span>
1483
+ <span class="cstat-no" title="statement not covered" > break;</span>
1484
+ <span class="cstat-no" title="statement not covered" > default:</span>
1485
+ <span class="cstat-no" title="statement not covered" > let u = options.readUnknownField;</span>
1486
+ <span class="cstat-no" title="statement not covered" > if (u === "throw")</span>
1487
+ <span class="cstat-no" title="statement not covered" > throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);</span>
1488
+ <span class="cstat-no" title="statement not covered" > let d = reader.skip(wireType);</span>
1489
+ <span class="cstat-no" title="statement not covered" > if (u !== false)</span>
1490
+ <span class="cstat-no" title="statement not covered" > (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);</span>
1491
+ <span class="cstat-no" title="statement not covered" > }</span>
1492
+ <span class="cstat-no" title="statement not covered" > }</span>
1493
+ <span class="cstat-no" title="statement not covered" > return message;</span>
1494
+ <span class="cstat-no" title="statement not covered" > }</span>
1495
+ <span class="fstat-no" title="function not covered" > internalBinaryWrite(message: ListValue, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {</span>
1496
+ <span class="cstat-no" title="statement not covered" > /* repeated google.protobuf.Value values = 1; */</span>
1497
+ <span class="cstat-no" title="statement not covered" > for (let i = 0; i &lt; message.values.length; i++)</span>
1498
+ <span class="cstat-no" title="statement not covered" > Value.internalBinaryWrite(message.values[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join();</span>
1499
+ <span class="cstat-no" title="statement not covered" > let u = options.writeUnknownFields;</span>
1500
+ <span class="cstat-no" title="statement not covered" > if (u !== false)</span>
1501
+ <span class="cstat-no" title="statement not covered" > (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);</span>
1502
+ <span class="cstat-no" title="statement not covered" > return writer;</span>
1503
+ <span class="cstat-no" title="statement not covered" > }</span>
1504
+ <span class="cstat-no" title="statement not covered" >}</span>
1505
+ /**
1506
+ * @generated MessageType for protobuf message google.protobuf.ListValue
1507
+ */
1508
+ export const ListValue = new ListValue$Type(<span class="fstat-no" title="function not covered" >);</span>
1509
+ &nbsp;</pre></td></tr></table></pre>
1510
+
1511
+ <div class='push'></div><!-- for sticky footer -->
1512
+ </div><!-- /wrapper -->
1513
+ <div class='footer quiet pad2 space-top1 center small'>
1514
+ Code coverage generated by
1515
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1516
+ at 2023-02-09T16:25:50.250Z
1517
+ </div>
1518
+ <script src="../../../../prettify.js"></script>
1519
+ <script>
1520
+ window.onload = function () {
1521
+ prettyPrint();
1522
+ };
1523
+ </script>
1524
+ <script src="../../../../sorter.js"></script>
1525
+ <script src="../../../../block-navigation.js"></script>
1526
+ </body>
1527
+ </html>
1528
+