@chat21/chat21-web-widget 5.0.46-rc.2 → 5.0.46-rc.3

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 (161) hide show
  1. package/CHANGELOG.md +3 -0
  2. package/coverage/widget/base.css +224 -0
  3. package/coverage/widget/block-navigation.js +87 -0
  4. package/coverage/widget/favicon.png +0 -0
  5. package/coverage/widget/index.html +881 -0
  6. package/coverage/widget/lcov.info +10516 -0
  7. package/coverage/widget/polyfills.ts.html +277 -0
  8. package/coverage/widget/prettify.css +1 -0
  9. package/coverage/widget/prettify.js +2 -0
  10. package/coverage/widget/sort-arrow-sprite.png +0 -0
  11. package/coverage/widget/sorter.js +196 -0
  12. package/coverage/widget/src/app/app.component.ts.html +6328 -0
  13. package/coverage/widget/src/app/component/conversation-detail/conversation/conversation.component.ts.html +3871 -0
  14. package/coverage/widget/src/app/component/conversation-detail/conversation/index.html +116 -0
  15. package/coverage/widget/src/app/component/conversation-detail/conversation-content/conversation-content.component.ts.html +925 -0
  16. package/coverage/widget/src/app/component/conversation-detail/conversation-content/index.html +116 -0
  17. package/coverage/widget/src/app/component/conversation-detail/conversation-footer/conversation-footer.component.ts.html +1816 -0
  18. package/coverage/widget/src/app/component/conversation-detail/conversation-footer/index.html +116 -0
  19. package/coverage/widget/src/app/component/conversation-detail/conversation-header/conversation-header.component.ts.html +811 -0
  20. package/coverage/widget/src/app/component/conversation-detail/conversation-header/index.html +116 -0
  21. package/coverage/widget/src/app/component/conversation-detail/conversation-internal-frame/conversation-internal-frame.component.ts.html +397 -0
  22. package/coverage/widget/src/app/component/conversation-detail/conversation-internal-frame/index.html +116 -0
  23. package/coverage/widget/src/app/component/conversation-detail/conversation-preview/conversation-preview.component.ts.html +991 -0
  24. package/coverage/widget/src/app/component/conversation-detail/conversation-preview/index.html +116 -0
  25. package/coverage/widget/src/app/component/eyeeye-catcher-card/eyeeye-catcher-card.component.ts.html +586 -0
  26. package/coverage/widget/src/app/component/eyeeye-catcher-card/index.html +116 -0
  27. package/coverage/widget/src/app/component/form/form-builder/form-builder.component.ts.html +664 -0
  28. package/coverage/widget/src/app/component/form/form-builder/index.html +116 -0
  29. package/coverage/widget/src/app/component/form/inputs/form-checkbox/form-checkbox.component.ts.html +208 -0
  30. package/coverage/widget/src/app/component/form/inputs/form-checkbox/index.html +116 -0
  31. package/coverage/widget/src/app/component/form/inputs/form-label/form-label.component.ts.html +157 -0
  32. package/coverage/widget/src/app/component/form/inputs/form-label/index.html +116 -0
  33. package/coverage/widget/src/app/component/form/inputs/form-radio-button/form-radio-button.component.ts.html +130 -0
  34. package/coverage/widget/src/app/component/form/inputs/form-radio-button/index.html +116 -0
  35. package/coverage/widget/src/app/component/form/inputs/form-select/form-select.component.ts.html +130 -0
  36. package/coverage/widget/src/app/component/form/inputs/form-select/index.html +116 -0
  37. package/coverage/widget/src/app/component/form/inputs/form-text/form-text.component.ts.html +301 -0
  38. package/coverage/widget/src/app/component/form/inputs/form-text/index.html +116 -0
  39. package/coverage/widget/src/app/component/form/inputs/form-textarea/form-textarea.component.ts.html +358 -0
  40. package/coverage/widget/src/app/component/form/inputs/form-textarea/index.html +116 -0
  41. package/coverage/widget/src/app/component/form/prechat-form/index.html +116 -0
  42. package/coverage/widget/src/app/component/form/prechat-form/prechat-form.component.ts.html +565 -0
  43. package/coverage/widget/src/app/component/home/home.component.ts.html +559 -0
  44. package/coverage/widget/src/app/component/home/index.html +116 -0
  45. package/coverage/widget/src/app/component/home-conversations/home-conversations.component.ts.html +985 -0
  46. package/coverage/widget/src/app/component/home-conversations/index.html +116 -0
  47. package/coverage/widget/src/app/component/last-message/index.html +116 -0
  48. package/coverage/widget/src/app/component/last-message/last-message.component.ts.html +484 -0
  49. package/coverage/widget/src/app/component/launcher-button/index.html +116 -0
  50. package/coverage/widget/src/app/component/launcher-button/launcher-button.component.ts.html +307 -0
  51. package/coverage/widget/src/app/component/list-all-conversations/index.html +116 -0
  52. package/coverage/widget/src/app/component/list-all-conversations/list-all-conversations.component.ts.html +676 -0
  53. package/coverage/widget/src/app/component/list-conversations/index.html +116 -0
  54. package/coverage/widget/src/app/component/list-conversations/list-conversations.component.ts.html +475 -0
  55. package/coverage/widget/src/app/component/menu-options/index.html +116 -0
  56. package/coverage/widget/src/app/component/menu-options/menu-options.component.ts.html +226 -0
  57. package/coverage/widget/src/app/component/message/avatar/avatar.component.ts.html +271 -0
  58. package/coverage/widget/src/app/component/message/avatar/index.html +116 -0
  59. package/coverage/widget/src/app/component/message/bubble-message/bubble-message.component.ts.html +655 -0
  60. package/coverage/widget/src/app/component/message/bubble-message/index.html +116 -0
  61. package/coverage/widget/src/app/component/message/buttons/action-button/action-button.component.ts.html +274 -0
  62. package/coverage/widget/src/app/component/message/buttons/action-button/index.html +116 -0
  63. package/coverage/widget/src/app/component/message/buttons/link-button/index.html +116 -0
  64. package/coverage/widget/src/app/component/message/buttons/link-button/link-button.component.ts.html +232 -0
  65. package/coverage/widget/src/app/component/message/buttons/text-button/index.html +116 -0
  66. package/coverage/widget/src/app/component/message/buttons/text-button/text-button.component.ts.html +235 -0
  67. package/coverage/widget/src/app/component/message/frame/frame.component.ts.html +199 -0
  68. package/coverage/widget/src/app/component/message/frame/index.html +116 -0
  69. package/coverage/widget/src/app/component/message/html/html.component.ts.html +184 -0
  70. package/coverage/widget/src/app/component/message/html/index.html +116 -0
  71. package/coverage/widget/src/app/component/message/image/image.component.ts.html +394 -0
  72. package/coverage/widget/src/app/component/message/image/index.html +116 -0
  73. package/coverage/widget/src/app/component/message/info-message/index.html +116 -0
  74. package/coverage/widget/src/app/component/message/info-message/info-message.component.ts.html +211 -0
  75. package/coverage/widget/src/app/component/message/like-unlike/index.html +116 -0
  76. package/coverage/widget/src/app/component/message/like-unlike/like-unlike.component.ts.html +151 -0
  77. package/coverage/widget/src/app/component/message/return-receipt/index.html +116 -0
  78. package/coverage/widget/src/app/component/message/return-receipt/return-receipt.component.ts.html +157 -0
  79. package/coverage/widget/src/app/component/message/text/index.html +116 -0
  80. package/coverage/widget/src/app/component/message/text/text.component.ts.html +190 -0
  81. package/coverage/widget/src/app/component/message-attachment/index.html +116 -0
  82. package/coverage/widget/src/app/component/message-attachment/message-attachment.component.ts.html +343 -0
  83. package/coverage/widget/src/app/component/selection-department/index.html +116 -0
  84. package/coverage/widget/src/app/component/selection-department/selection-department.component.ts.html +676 -0
  85. package/coverage/widget/src/app/component/send-button/index.html +116 -0
  86. package/coverage/widget/src/app/component/send-button/send-button.component.ts.html +154 -0
  87. package/coverage/widget/src/app/component/star-rating-widget/index.html +116 -0
  88. package/coverage/widget/src/app/component/star-rating-widget/star-rating-widget.component.ts.html +451 -0
  89. package/coverage/widget/src/app/directives/html-entities-encode.pipe.ts.html +136 -0
  90. package/coverage/widget/src/app/directives/index.html +146 -0
  91. package/coverage/widget/src/app/directives/marked.pipe.ts.html +166 -0
  92. package/coverage/widget/src/app/directives/safe-html.pipe.ts.html +136 -0
  93. package/coverage/widget/src/app/index.html +116 -0
  94. package/coverage/widget/src/app/providers/app-config.service.ts.html +247 -0
  95. package/coverage/widget/src/app/providers/global-settings.service.ts.html +5698 -0
  96. package/coverage/widget/src/app/providers/index.html +206 -0
  97. package/coverage/widget/src/app/providers/settings-saver.service.ts.html +253 -0
  98. package/coverage/widget/src/app/providers/star-rating-widget.service.ts.html +385 -0
  99. package/coverage/widget/src/app/providers/storage.service.ts.html +745 -0
  100. package/coverage/widget/src/app/providers/translator.service.ts.html +1498 -0
  101. package/coverage/widget/src/app/providers/waiting.service.ts.html +178 -0
  102. package/coverage/widget/src/app/utils/constants.ts.html +304 -0
  103. package/coverage/widget/src/app/utils/globals.ts.html +1939 -0
  104. package/coverage/widget/src/app/utils/index.html +146 -0
  105. package/coverage/widget/src/app/utils/utils.ts.html +1240 -0
  106. package/coverage/widget/src/chat21-core/models/conversation.ts.html +160 -0
  107. package/coverage/widget/src/chat21-core/models/index.html +146 -0
  108. package/coverage/widget/src/chat21-core/models/upload.ts.html +118 -0
  109. package/coverage/widget/src/chat21-core/models/user.ts.html +133 -0
  110. package/coverage/widget/src/chat21-core/providers/abstract/app-storage.service.ts.html +142 -0
  111. package/coverage/widget/src/chat21-core/providers/abstract/archivedconversations-handler.service.ts.html +184 -0
  112. package/coverage/widget/src/chat21-core/providers/abstract/conversation-handler-builder.service.ts.html +121 -0
  113. package/coverage/widget/src/chat21-core/providers/abstract/conversation-handler.service.ts.html +235 -0
  114. package/coverage/widget/src/chat21-core/providers/abstract/conversations-handler.service.ts.html +208 -0
  115. package/coverage/widget/src/chat21-core/providers/abstract/groups-handler.service.ts.html +160 -0
  116. package/coverage/widget/src/chat21-core/providers/abstract/image-repo.service.ts.html +169 -0
  117. package/coverage/widget/src/chat21-core/providers/abstract/index.html +296 -0
  118. package/coverage/widget/src/chat21-core/providers/abstract/logger.service.ts.html +136 -0
  119. package/coverage/widget/src/chat21-core/providers/abstract/messagingAuth.service.ts.html +238 -0
  120. package/coverage/widget/src/chat21-core/providers/abstract/notifications.service.ts.html +172 -0
  121. package/coverage/widget/src/chat21-core/providers/abstract/presence.service.ts.html +190 -0
  122. package/coverage/widget/src/chat21-core/providers/abstract/typing.service.ts.html +187 -0
  123. package/coverage/widget/src/chat21-core/providers/abstract/upload.service.ts.html +178 -0
  124. package/coverage/widget/src/chat21-core/providers/chat-manager.ts.html +895 -0
  125. package/coverage/widget/src/chat21-core/providers/custom-translate.service.ts.html +223 -0
  126. package/coverage/widget/src/chat21-core/providers/index.html +131 -0
  127. package/coverage/widget/src/chat21-core/providers/logger/customLogger.ts.html +265 -0
  128. package/coverage/widget/src/chat21-core/providers/logger/index.html +131 -0
  129. package/coverage/widget/src/chat21-core/providers/logger/loggerInstance.ts.html +142 -0
  130. package/coverage/widget/src/chat21-core/providers/tiledesk/index.html +131 -0
  131. package/coverage/widget/src/chat21-core/providers/tiledesk/tiledesk-auth.service.ts.html +655 -0
  132. package/coverage/widget/src/chat21-core/providers/tiledesk/tiledesk-requests.service.ts.html +241 -0
  133. package/coverage/widget/src/chat21-core/utils/constants.ts.html +409 -0
  134. package/coverage/widget/src/chat21-core/utils/index.html +176 -0
  135. package/coverage/widget/src/chat21-core/utils/triggerHandler.ts.html +1069 -0
  136. package/coverage/widget/src/chat21-core/utils/user-typing/index.html +116 -0
  137. package/coverage/widget/src/chat21-core/utils/user-typing/user-typing.component.ts.html +184 -0
  138. package/coverage/widget/src/chat21-core/utils/utils-message.ts.html +637 -0
  139. package/coverage/widget/src/chat21-core/utils/utils-user.ts.html +229 -0
  140. package/coverage/widget/src/chat21-core/utils/utils.ts.html +2221 -0
  141. package/coverage/widget/src/environments/environment.ts.html +205 -0
  142. package/coverage/widget/src/environments/index.html +116 -0
  143. package/coverage/widget/src/index.html +131 -0
  144. package/coverage/widget/src/models/index.html +116 -0
  145. package/coverage/widget/src/models/project.ts.html +319 -0
  146. package/coverage/widget/src/polyfills.ts.html +277 -0
  147. package/coverage/widget/src/test.ts.html +142 -0
  148. package/dist/environments/real_data/widget-config-docker.json +0 -1
  149. package/dist/environments/real_data/widget-config-firebase.json +2 -2
  150. package/dist/environments/real_data/widget-config-native-mqtt.json +0 -1
  151. package/dist/launch.js +1 -1
  152. package/dist/main.js +1 -1
  153. package/dist/vendor.js +1 -1
  154. package/package.json +1 -1
  155. package/src/app/providers/global-settings.service.ts +14 -0
  156. package/src/app/utils/globals.ts +3 -0
  157. package/src/environments/real_data/widget-config-docker.json +0 -1
  158. package/src/environments/real_data/widget-config-firebase.json +2 -2
  159. package/src/environments/real_data/widget-config-native-mqtt.json +0 -1
  160. package/src/launch.js +1 -1
  161. package/e2e/protractor.conf.js +0 -32
@@ -0,0 +1,3871 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for src/app/component/conversation-detail/conversation/conversation.component.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/app/component/conversation-detail/conversation</a> conversation.component.ts</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">22.94% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>125/545</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">0% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>0/209</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">4.76% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>4/84</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">23.58% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>125/530</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 low'></div>
65
+ <pre><table class="coverage">
66
+ <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
+ <a name='L2'></a><a href='#L2'>2</a>
68
+ <a name='L3'></a><a href='#L3'>3</a>
69
+ <a name='L4'></a><a href='#L4'>4</a>
70
+ <a name='L5'></a><a href='#L5'>5</a>
71
+ <a name='L6'></a><a href='#L6'>6</a>
72
+ <a name='L7'></a><a href='#L7'>7</a>
73
+ <a name='L8'></a><a href='#L8'>8</a>
74
+ <a name='L9'></a><a href='#L9'>9</a>
75
+ <a name='L10'></a><a href='#L10'>10</a>
76
+ <a name='L11'></a><a href='#L11'>11</a>
77
+ <a name='L12'></a><a href='#L12'>12</a>
78
+ <a name='L13'></a><a href='#L13'>13</a>
79
+ <a name='L14'></a><a href='#L14'>14</a>
80
+ <a name='L15'></a><a href='#L15'>15</a>
81
+ <a name='L16'></a><a href='#L16'>16</a>
82
+ <a name='L17'></a><a href='#L17'>17</a>
83
+ <a name='L18'></a><a href='#L18'>18</a>
84
+ <a name='L19'></a><a href='#L19'>19</a>
85
+ <a name='L20'></a><a href='#L20'>20</a>
86
+ <a name='L21'></a><a href='#L21'>21</a>
87
+ <a name='L22'></a><a href='#L22'>22</a>
88
+ <a name='L23'></a><a href='#L23'>23</a>
89
+ <a name='L24'></a><a href='#L24'>24</a>
90
+ <a name='L25'></a><a href='#L25'>25</a>
91
+ <a name='L26'></a><a href='#L26'>26</a>
92
+ <a name='L27'></a><a href='#L27'>27</a>
93
+ <a name='L28'></a><a href='#L28'>28</a>
94
+ <a name='L29'></a><a href='#L29'>29</a>
95
+ <a name='L30'></a><a href='#L30'>30</a>
96
+ <a name='L31'></a><a href='#L31'>31</a>
97
+ <a name='L32'></a><a href='#L32'>32</a>
98
+ <a name='L33'></a><a href='#L33'>33</a>
99
+ <a name='L34'></a><a href='#L34'>34</a>
100
+ <a name='L35'></a><a href='#L35'>35</a>
101
+ <a name='L36'></a><a href='#L36'>36</a>
102
+ <a name='L37'></a><a href='#L37'>37</a>
103
+ <a name='L38'></a><a href='#L38'>38</a>
104
+ <a name='L39'></a><a href='#L39'>39</a>
105
+ <a name='L40'></a><a href='#L40'>40</a>
106
+ <a name='L41'></a><a href='#L41'>41</a>
107
+ <a name='L42'></a><a href='#L42'>42</a>
108
+ <a name='L43'></a><a href='#L43'>43</a>
109
+ <a name='L44'></a><a href='#L44'>44</a>
110
+ <a name='L45'></a><a href='#L45'>45</a>
111
+ <a name='L46'></a><a href='#L46'>46</a>
112
+ <a name='L47'></a><a href='#L47'>47</a>
113
+ <a name='L48'></a><a href='#L48'>48</a>
114
+ <a name='L49'></a><a href='#L49'>49</a>
115
+ <a name='L50'></a><a href='#L50'>50</a>
116
+ <a name='L51'></a><a href='#L51'>51</a>
117
+ <a name='L52'></a><a href='#L52'>52</a>
118
+ <a name='L53'></a><a href='#L53'>53</a>
119
+ <a name='L54'></a><a href='#L54'>54</a>
120
+ <a name='L55'></a><a href='#L55'>55</a>
121
+ <a name='L56'></a><a href='#L56'>56</a>
122
+ <a name='L57'></a><a href='#L57'>57</a>
123
+ <a name='L58'></a><a href='#L58'>58</a>
124
+ <a name='L59'></a><a href='#L59'>59</a>
125
+ <a name='L60'></a><a href='#L60'>60</a>
126
+ <a name='L61'></a><a href='#L61'>61</a>
127
+ <a name='L62'></a><a href='#L62'>62</a>
128
+ <a name='L63'></a><a href='#L63'>63</a>
129
+ <a name='L64'></a><a href='#L64'>64</a>
130
+ <a name='L65'></a><a href='#L65'>65</a>
131
+ <a name='L66'></a><a href='#L66'>66</a>
132
+ <a name='L67'></a><a href='#L67'>67</a>
133
+ <a name='L68'></a><a href='#L68'>68</a>
134
+ <a name='L69'></a><a href='#L69'>69</a>
135
+ <a name='L70'></a><a href='#L70'>70</a>
136
+ <a name='L71'></a><a href='#L71'>71</a>
137
+ <a name='L72'></a><a href='#L72'>72</a>
138
+ <a name='L73'></a><a href='#L73'>73</a>
139
+ <a name='L74'></a><a href='#L74'>74</a>
140
+ <a name='L75'></a><a href='#L75'>75</a>
141
+ <a name='L76'></a><a href='#L76'>76</a>
142
+ <a name='L77'></a><a href='#L77'>77</a>
143
+ <a name='L78'></a><a href='#L78'>78</a>
144
+ <a name='L79'></a><a href='#L79'>79</a>
145
+ <a name='L80'></a><a href='#L80'>80</a>
146
+ <a name='L81'></a><a href='#L81'>81</a>
147
+ <a name='L82'></a><a href='#L82'>82</a>
148
+ <a name='L83'></a><a href='#L83'>83</a>
149
+ <a name='L84'></a><a href='#L84'>84</a>
150
+ <a name='L85'></a><a href='#L85'>85</a>
151
+ <a name='L86'></a><a href='#L86'>86</a>
152
+ <a name='L87'></a><a href='#L87'>87</a>
153
+ <a name='L88'></a><a href='#L88'>88</a>
154
+ <a name='L89'></a><a href='#L89'>89</a>
155
+ <a name='L90'></a><a href='#L90'>90</a>
156
+ <a name='L91'></a><a href='#L91'>91</a>
157
+ <a name='L92'></a><a href='#L92'>92</a>
158
+ <a name='L93'></a><a href='#L93'>93</a>
159
+ <a name='L94'></a><a href='#L94'>94</a>
160
+ <a name='L95'></a><a href='#L95'>95</a>
161
+ <a name='L96'></a><a href='#L96'>96</a>
162
+ <a name='L97'></a><a href='#L97'>97</a>
163
+ <a name='L98'></a><a href='#L98'>98</a>
164
+ <a name='L99'></a><a href='#L99'>99</a>
165
+ <a name='L100'></a><a href='#L100'>100</a>
166
+ <a name='L101'></a><a href='#L101'>101</a>
167
+ <a name='L102'></a><a href='#L102'>102</a>
168
+ <a name='L103'></a><a href='#L103'>103</a>
169
+ <a name='L104'></a><a href='#L104'>104</a>
170
+ <a name='L105'></a><a href='#L105'>105</a>
171
+ <a name='L106'></a><a href='#L106'>106</a>
172
+ <a name='L107'></a><a href='#L107'>107</a>
173
+ <a name='L108'></a><a href='#L108'>108</a>
174
+ <a name='L109'></a><a href='#L109'>109</a>
175
+ <a name='L110'></a><a href='#L110'>110</a>
176
+ <a name='L111'></a><a href='#L111'>111</a>
177
+ <a name='L112'></a><a href='#L112'>112</a>
178
+ <a name='L113'></a><a href='#L113'>113</a>
179
+ <a name='L114'></a><a href='#L114'>114</a>
180
+ <a name='L115'></a><a href='#L115'>115</a>
181
+ <a name='L116'></a><a href='#L116'>116</a>
182
+ <a name='L117'></a><a href='#L117'>117</a>
183
+ <a name='L118'></a><a href='#L118'>118</a>
184
+ <a name='L119'></a><a href='#L119'>119</a>
185
+ <a name='L120'></a><a href='#L120'>120</a>
186
+ <a name='L121'></a><a href='#L121'>121</a>
187
+ <a name='L122'></a><a href='#L122'>122</a>
188
+ <a name='L123'></a><a href='#L123'>123</a>
189
+ <a name='L124'></a><a href='#L124'>124</a>
190
+ <a name='L125'></a><a href='#L125'>125</a>
191
+ <a name='L126'></a><a href='#L126'>126</a>
192
+ <a name='L127'></a><a href='#L127'>127</a>
193
+ <a name='L128'></a><a href='#L128'>128</a>
194
+ <a name='L129'></a><a href='#L129'>129</a>
195
+ <a name='L130'></a><a href='#L130'>130</a>
196
+ <a name='L131'></a><a href='#L131'>131</a>
197
+ <a name='L132'></a><a href='#L132'>132</a>
198
+ <a name='L133'></a><a href='#L133'>133</a>
199
+ <a name='L134'></a><a href='#L134'>134</a>
200
+ <a name='L135'></a><a href='#L135'>135</a>
201
+ <a name='L136'></a><a href='#L136'>136</a>
202
+ <a name='L137'></a><a href='#L137'>137</a>
203
+ <a name='L138'></a><a href='#L138'>138</a>
204
+ <a name='L139'></a><a href='#L139'>139</a>
205
+ <a name='L140'></a><a href='#L140'>140</a>
206
+ <a name='L141'></a><a href='#L141'>141</a>
207
+ <a name='L142'></a><a href='#L142'>142</a>
208
+ <a name='L143'></a><a href='#L143'>143</a>
209
+ <a name='L144'></a><a href='#L144'>144</a>
210
+ <a name='L145'></a><a href='#L145'>145</a>
211
+ <a name='L146'></a><a href='#L146'>146</a>
212
+ <a name='L147'></a><a href='#L147'>147</a>
213
+ <a name='L148'></a><a href='#L148'>148</a>
214
+ <a name='L149'></a><a href='#L149'>149</a>
215
+ <a name='L150'></a><a href='#L150'>150</a>
216
+ <a name='L151'></a><a href='#L151'>151</a>
217
+ <a name='L152'></a><a href='#L152'>152</a>
218
+ <a name='L153'></a><a href='#L153'>153</a>
219
+ <a name='L154'></a><a href='#L154'>154</a>
220
+ <a name='L155'></a><a href='#L155'>155</a>
221
+ <a name='L156'></a><a href='#L156'>156</a>
222
+ <a name='L157'></a><a href='#L157'>157</a>
223
+ <a name='L158'></a><a href='#L158'>158</a>
224
+ <a name='L159'></a><a href='#L159'>159</a>
225
+ <a name='L160'></a><a href='#L160'>160</a>
226
+ <a name='L161'></a><a href='#L161'>161</a>
227
+ <a name='L162'></a><a href='#L162'>162</a>
228
+ <a name='L163'></a><a href='#L163'>163</a>
229
+ <a name='L164'></a><a href='#L164'>164</a>
230
+ <a name='L165'></a><a href='#L165'>165</a>
231
+ <a name='L166'></a><a href='#L166'>166</a>
232
+ <a name='L167'></a><a href='#L167'>167</a>
233
+ <a name='L168'></a><a href='#L168'>168</a>
234
+ <a name='L169'></a><a href='#L169'>169</a>
235
+ <a name='L170'></a><a href='#L170'>170</a>
236
+ <a name='L171'></a><a href='#L171'>171</a>
237
+ <a name='L172'></a><a href='#L172'>172</a>
238
+ <a name='L173'></a><a href='#L173'>173</a>
239
+ <a name='L174'></a><a href='#L174'>174</a>
240
+ <a name='L175'></a><a href='#L175'>175</a>
241
+ <a name='L176'></a><a href='#L176'>176</a>
242
+ <a name='L177'></a><a href='#L177'>177</a>
243
+ <a name='L178'></a><a href='#L178'>178</a>
244
+ <a name='L179'></a><a href='#L179'>179</a>
245
+ <a name='L180'></a><a href='#L180'>180</a>
246
+ <a name='L181'></a><a href='#L181'>181</a>
247
+ <a name='L182'></a><a href='#L182'>182</a>
248
+ <a name='L183'></a><a href='#L183'>183</a>
249
+ <a name='L184'></a><a href='#L184'>184</a>
250
+ <a name='L185'></a><a href='#L185'>185</a>
251
+ <a name='L186'></a><a href='#L186'>186</a>
252
+ <a name='L187'></a><a href='#L187'>187</a>
253
+ <a name='L188'></a><a href='#L188'>188</a>
254
+ <a name='L189'></a><a href='#L189'>189</a>
255
+ <a name='L190'></a><a href='#L190'>190</a>
256
+ <a name='L191'></a><a href='#L191'>191</a>
257
+ <a name='L192'></a><a href='#L192'>192</a>
258
+ <a name='L193'></a><a href='#L193'>193</a>
259
+ <a name='L194'></a><a href='#L194'>194</a>
260
+ <a name='L195'></a><a href='#L195'>195</a>
261
+ <a name='L196'></a><a href='#L196'>196</a>
262
+ <a name='L197'></a><a href='#L197'>197</a>
263
+ <a name='L198'></a><a href='#L198'>198</a>
264
+ <a name='L199'></a><a href='#L199'>199</a>
265
+ <a name='L200'></a><a href='#L200'>200</a>
266
+ <a name='L201'></a><a href='#L201'>201</a>
267
+ <a name='L202'></a><a href='#L202'>202</a>
268
+ <a name='L203'></a><a href='#L203'>203</a>
269
+ <a name='L204'></a><a href='#L204'>204</a>
270
+ <a name='L205'></a><a href='#L205'>205</a>
271
+ <a name='L206'></a><a href='#L206'>206</a>
272
+ <a name='L207'></a><a href='#L207'>207</a>
273
+ <a name='L208'></a><a href='#L208'>208</a>
274
+ <a name='L209'></a><a href='#L209'>209</a>
275
+ <a name='L210'></a><a href='#L210'>210</a>
276
+ <a name='L211'></a><a href='#L211'>211</a>
277
+ <a name='L212'></a><a href='#L212'>212</a>
278
+ <a name='L213'></a><a href='#L213'>213</a>
279
+ <a name='L214'></a><a href='#L214'>214</a>
280
+ <a name='L215'></a><a href='#L215'>215</a>
281
+ <a name='L216'></a><a href='#L216'>216</a>
282
+ <a name='L217'></a><a href='#L217'>217</a>
283
+ <a name='L218'></a><a href='#L218'>218</a>
284
+ <a name='L219'></a><a href='#L219'>219</a>
285
+ <a name='L220'></a><a href='#L220'>220</a>
286
+ <a name='L221'></a><a href='#L221'>221</a>
287
+ <a name='L222'></a><a href='#L222'>222</a>
288
+ <a name='L223'></a><a href='#L223'>223</a>
289
+ <a name='L224'></a><a href='#L224'>224</a>
290
+ <a name='L225'></a><a href='#L225'>225</a>
291
+ <a name='L226'></a><a href='#L226'>226</a>
292
+ <a name='L227'></a><a href='#L227'>227</a>
293
+ <a name='L228'></a><a href='#L228'>228</a>
294
+ <a name='L229'></a><a href='#L229'>229</a>
295
+ <a name='L230'></a><a href='#L230'>230</a>
296
+ <a name='L231'></a><a href='#L231'>231</a>
297
+ <a name='L232'></a><a href='#L232'>232</a>
298
+ <a name='L233'></a><a href='#L233'>233</a>
299
+ <a name='L234'></a><a href='#L234'>234</a>
300
+ <a name='L235'></a><a href='#L235'>235</a>
301
+ <a name='L236'></a><a href='#L236'>236</a>
302
+ <a name='L237'></a><a href='#L237'>237</a>
303
+ <a name='L238'></a><a href='#L238'>238</a>
304
+ <a name='L239'></a><a href='#L239'>239</a>
305
+ <a name='L240'></a><a href='#L240'>240</a>
306
+ <a name='L241'></a><a href='#L241'>241</a>
307
+ <a name='L242'></a><a href='#L242'>242</a>
308
+ <a name='L243'></a><a href='#L243'>243</a>
309
+ <a name='L244'></a><a href='#L244'>244</a>
310
+ <a name='L245'></a><a href='#L245'>245</a>
311
+ <a name='L246'></a><a href='#L246'>246</a>
312
+ <a name='L247'></a><a href='#L247'>247</a>
313
+ <a name='L248'></a><a href='#L248'>248</a>
314
+ <a name='L249'></a><a href='#L249'>249</a>
315
+ <a name='L250'></a><a href='#L250'>250</a>
316
+ <a name='L251'></a><a href='#L251'>251</a>
317
+ <a name='L252'></a><a href='#L252'>252</a>
318
+ <a name='L253'></a><a href='#L253'>253</a>
319
+ <a name='L254'></a><a href='#L254'>254</a>
320
+ <a name='L255'></a><a href='#L255'>255</a>
321
+ <a name='L256'></a><a href='#L256'>256</a>
322
+ <a name='L257'></a><a href='#L257'>257</a>
323
+ <a name='L258'></a><a href='#L258'>258</a>
324
+ <a name='L259'></a><a href='#L259'>259</a>
325
+ <a name='L260'></a><a href='#L260'>260</a>
326
+ <a name='L261'></a><a href='#L261'>261</a>
327
+ <a name='L262'></a><a href='#L262'>262</a>
328
+ <a name='L263'></a><a href='#L263'>263</a>
329
+ <a name='L264'></a><a href='#L264'>264</a>
330
+ <a name='L265'></a><a href='#L265'>265</a>
331
+ <a name='L266'></a><a href='#L266'>266</a>
332
+ <a name='L267'></a><a href='#L267'>267</a>
333
+ <a name='L268'></a><a href='#L268'>268</a>
334
+ <a name='L269'></a><a href='#L269'>269</a>
335
+ <a name='L270'></a><a href='#L270'>270</a>
336
+ <a name='L271'></a><a href='#L271'>271</a>
337
+ <a name='L272'></a><a href='#L272'>272</a>
338
+ <a name='L273'></a><a href='#L273'>273</a>
339
+ <a name='L274'></a><a href='#L274'>274</a>
340
+ <a name='L275'></a><a href='#L275'>275</a>
341
+ <a name='L276'></a><a href='#L276'>276</a>
342
+ <a name='L277'></a><a href='#L277'>277</a>
343
+ <a name='L278'></a><a href='#L278'>278</a>
344
+ <a name='L279'></a><a href='#L279'>279</a>
345
+ <a name='L280'></a><a href='#L280'>280</a>
346
+ <a name='L281'></a><a href='#L281'>281</a>
347
+ <a name='L282'></a><a href='#L282'>282</a>
348
+ <a name='L283'></a><a href='#L283'>283</a>
349
+ <a name='L284'></a><a href='#L284'>284</a>
350
+ <a name='L285'></a><a href='#L285'>285</a>
351
+ <a name='L286'></a><a href='#L286'>286</a>
352
+ <a name='L287'></a><a href='#L287'>287</a>
353
+ <a name='L288'></a><a href='#L288'>288</a>
354
+ <a name='L289'></a><a href='#L289'>289</a>
355
+ <a name='L290'></a><a href='#L290'>290</a>
356
+ <a name='L291'></a><a href='#L291'>291</a>
357
+ <a name='L292'></a><a href='#L292'>292</a>
358
+ <a name='L293'></a><a href='#L293'>293</a>
359
+ <a name='L294'></a><a href='#L294'>294</a>
360
+ <a name='L295'></a><a href='#L295'>295</a>
361
+ <a name='L296'></a><a href='#L296'>296</a>
362
+ <a name='L297'></a><a href='#L297'>297</a>
363
+ <a name='L298'></a><a href='#L298'>298</a>
364
+ <a name='L299'></a><a href='#L299'>299</a>
365
+ <a name='L300'></a><a href='#L300'>300</a>
366
+ <a name='L301'></a><a href='#L301'>301</a>
367
+ <a name='L302'></a><a href='#L302'>302</a>
368
+ <a name='L303'></a><a href='#L303'>303</a>
369
+ <a name='L304'></a><a href='#L304'>304</a>
370
+ <a name='L305'></a><a href='#L305'>305</a>
371
+ <a name='L306'></a><a href='#L306'>306</a>
372
+ <a name='L307'></a><a href='#L307'>307</a>
373
+ <a name='L308'></a><a href='#L308'>308</a>
374
+ <a name='L309'></a><a href='#L309'>309</a>
375
+ <a name='L310'></a><a href='#L310'>310</a>
376
+ <a name='L311'></a><a href='#L311'>311</a>
377
+ <a name='L312'></a><a href='#L312'>312</a>
378
+ <a name='L313'></a><a href='#L313'>313</a>
379
+ <a name='L314'></a><a href='#L314'>314</a>
380
+ <a name='L315'></a><a href='#L315'>315</a>
381
+ <a name='L316'></a><a href='#L316'>316</a>
382
+ <a name='L317'></a><a href='#L317'>317</a>
383
+ <a name='L318'></a><a href='#L318'>318</a>
384
+ <a name='L319'></a><a href='#L319'>319</a>
385
+ <a name='L320'></a><a href='#L320'>320</a>
386
+ <a name='L321'></a><a href='#L321'>321</a>
387
+ <a name='L322'></a><a href='#L322'>322</a>
388
+ <a name='L323'></a><a href='#L323'>323</a>
389
+ <a name='L324'></a><a href='#L324'>324</a>
390
+ <a name='L325'></a><a href='#L325'>325</a>
391
+ <a name='L326'></a><a href='#L326'>326</a>
392
+ <a name='L327'></a><a href='#L327'>327</a>
393
+ <a name='L328'></a><a href='#L328'>328</a>
394
+ <a name='L329'></a><a href='#L329'>329</a>
395
+ <a name='L330'></a><a href='#L330'>330</a>
396
+ <a name='L331'></a><a href='#L331'>331</a>
397
+ <a name='L332'></a><a href='#L332'>332</a>
398
+ <a name='L333'></a><a href='#L333'>333</a>
399
+ <a name='L334'></a><a href='#L334'>334</a>
400
+ <a name='L335'></a><a href='#L335'>335</a>
401
+ <a name='L336'></a><a href='#L336'>336</a>
402
+ <a name='L337'></a><a href='#L337'>337</a>
403
+ <a name='L338'></a><a href='#L338'>338</a>
404
+ <a name='L339'></a><a href='#L339'>339</a>
405
+ <a name='L340'></a><a href='#L340'>340</a>
406
+ <a name='L341'></a><a href='#L341'>341</a>
407
+ <a name='L342'></a><a href='#L342'>342</a>
408
+ <a name='L343'></a><a href='#L343'>343</a>
409
+ <a name='L344'></a><a href='#L344'>344</a>
410
+ <a name='L345'></a><a href='#L345'>345</a>
411
+ <a name='L346'></a><a href='#L346'>346</a>
412
+ <a name='L347'></a><a href='#L347'>347</a>
413
+ <a name='L348'></a><a href='#L348'>348</a>
414
+ <a name='L349'></a><a href='#L349'>349</a>
415
+ <a name='L350'></a><a href='#L350'>350</a>
416
+ <a name='L351'></a><a href='#L351'>351</a>
417
+ <a name='L352'></a><a href='#L352'>352</a>
418
+ <a name='L353'></a><a href='#L353'>353</a>
419
+ <a name='L354'></a><a href='#L354'>354</a>
420
+ <a name='L355'></a><a href='#L355'>355</a>
421
+ <a name='L356'></a><a href='#L356'>356</a>
422
+ <a name='L357'></a><a href='#L357'>357</a>
423
+ <a name='L358'></a><a href='#L358'>358</a>
424
+ <a name='L359'></a><a href='#L359'>359</a>
425
+ <a name='L360'></a><a href='#L360'>360</a>
426
+ <a name='L361'></a><a href='#L361'>361</a>
427
+ <a name='L362'></a><a href='#L362'>362</a>
428
+ <a name='L363'></a><a href='#L363'>363</a>
429
+ <a name='L364'></a><a href='#L364'>364</a>
430
+ <a name='L365'></a><a href='#L365'>365</a>
431
+ <a name='L366'></a><a href='#L366'>366</a>
432
+ <a name='L367'></a><a href='#L367'>367</a>
433
+ <a name='L368'></a><a href='#L368'>368</a>
434
+ <a name='L369'></a><a href='#L369'>369</a>
435
+ <a name='L370'></a><a href='#L370'>370</a>
436
+ <a name='L371'></a><a href='#L371'>371</a>
437
+ <a name='L372'></a><a href='#L372'>372</a>
438
+ <a name='L373'></a><a href='#L373'>373</a>
439
+ <a name='L374'></a><a href='#L374'>374</a>
440
+ <a name='L375'></a><a href='#L375'>375</a>
441
+ <a name='L376'></a><a href='#L376'>376</a>
442
+ <a name='L377'></a><a href='#L377'>377</a>
443
+ <a name='L378'></a><a href='#L378'>378</a>
444
+ <a name='L379'></a><a href='#L379'>379</a>
445
+ <a name='L380'></a><a href='#L380'>380</a>
446
+ <a name='L381'></a><a href='#L381'>381</a>
447
+ <a name='L382'></a><a href='#L382'>382</a>
448
+ <a name='L383'></a><a href='#L383'>383</a>
449
+ <a name='L384'></a><a href='#L384'>384</a>
450
+ <a name='L385'></a><a href='#L385'>385</a>
451
+ <a name='L386'></a><a href='#L386'>386</a>
452
+ <a name='L387'></a><a href='#L387'>387</a>
453
+ <a name='L388'></a><a href='#L388'>388</a>
454
+ <a name='L389'></a><a href='#L389'>389</a>
455
+ <a name='L390'></a><a href='#L390'>390</a>
456
+ <a name='L391'></a><a href='#L391'>391</a>
457
+ <a name='L392'></a><a href='#L392'>392</a>
458
+ <a name='L393'></a><a href='#L393'>393</a>
459
+ <a name='L394'></a><a href='#L394'>394</a>
460
+ <a name='L395'></a><a href='#L395'>395</a>
461
+ <a name='L396'></a><a href='#L396'>396</a>
462
+ <a name='L397'></a><a href='#L397'>397</a>
463
+ <a name='L398'></a><a href='#L398'>398</a>
464
+ <a name='L399'></a><a href='#L399'>399</a>
465
+ <a name='L400'></a><a href='#L400'>400</a>
466
+ <a name='L401'></a><a href='#L401'>401</a>
467
+ <a name='L402'></a><a href='#L402'>402</a>
468
+ <a name='L403'></a><a href='#L403'>403</a>
469
+ <a name='L404'></a><a href='#L404'>404</a>
470
+ <a name='L405'></a><a href='#L405'>405</a>
471
+ <a name='L406'></a><a href='#L406'>406</a>
472
+ <a name='L407'></a><a href='#L407'>407</a>
473
+ <a name='L408'></a><a href='#L408'>408</a>
474
+ <a name='L409'></a><a href='#L409'>409</a>
475
+ <a name='L410'></a><a href='#L410'>410</a>
476
+ <a name='L411'></a><a href='#L411'>411</a>
477
+ <a name='L412'></a><a href='#L412'>412</a>
478
+ <a name='L413'></a><a href='#L413'>413</a>
479
+ <a name='L414'></a><a href='#L414'>414</a>
480
+ <a name='L415'></a><a href='#L415'>415</a>
481
+ <a name='L416'></a><a href='#L416'>416</a>
482
+ <a name='L417'></a><a href='#L417'>417</a>
483
+ <a name='L418'></a><a href='#L418'>418</a>
484
+ <a name='L419'></a><a href='#L419'>419</a>
485
+ <a name='L420'></a><a href='#L420'>420</a>
486
+ <a name='L421'></a><a href='#L421'>421</a>
487
+ <a name='L422'></a><a href='#L422'>422</a>
488
+ <a name='L423'></a><a href='#L423'>423</a>
489
+ <a name='L424'></a><a href='#L424'>424</a>
490
+ <a name='L425'></a><a href='#L425'>425</a>
491
+ <a name='L426'></a><a href='#L426'>426</a>
492
+ <a name='L427'></a><a href='#L427'>427</a>
493
+ <a name='L428'></a><a href='#L428'>428</a>
494
+ <a name='L429'></a><a href='#L429'>429</a>
495
+ <a name='L430'></a><a href='#L430'>430</a>
496
+ <a name='L431'></a><a href='#L431'>431</a>
497
+ <a name='L432'></a><a href='#L432'>432</a>
498
+ <a name='L433'></a><a href='#L433'>433</a>
499
+ <a name='L434'></a><a href='#L434'>434</a>
500
+ <a name='L435'></a><a href='#L435'>435</a>
501
+ <a name='L436'></a><a href='#L436'>436</a>
502
+ <a name='L437'></a><a href='#L437'>437</a>
503
+ <a name='L438'></a><a href='#L438'>438</a>
504
+ <a name='L439'></a><a href='#L439'>439</a>
505
+ <a name='L440'></a><a href='#L440'>440</a>
506
+ <a name='L441'></a><a href='#L441'>441</a>
507
+ <a name='L442'></a><a href='#L442'>442</a>
508
+ <a name='L443'></a><a href='#L443'>443</a>
509
+ <a name='L444'></a><a href='#L444'>444</a>
510
+ <a name='L445'></a><a href='#L445'>445</a>
511
+ <a name='L446'></a><a href='#L446'>446</a>
512
+ <a name='L447'></a><a href='#L447'>447</a>
513
+ <a name='L448'></a><a href='#L448'>448</a>
514
+ <a name='L449'></a><a href='#L449'>449</a>
515
+ <a name='L450'></a><a href='#L450'>450</a>
516
+ <a name='L451'></a><a href='#L451'>451</a>
517
+ <a name='L452'></a><a href='#L452'>452</a>
518
+ <a name='L453'></a><a href='#L453'>453</a>
519
+ <a name='L454'></a><a href='#L454'>454</a>
520
+ <a name='L455'></a><a href='#L455'>455</a>
521
+ <a name='L456'></a><a href='#L456'>456</a>
522
+ <a name='L457'></a><a href='#L457'>457</a>
523
+ <a name='L458'></a><a href='#L458'>458</a>
524
+ <a name='L459'></a><a href='#L459'>459</a>
525
+ <a name='L460'></a><a href='#L460'>460</a>
526
+ <a name='L461'></a><a href='#L461'>461</a>
527
+ <a name='L462'></a><a href='#L462'>462</a>
528
+ <a name='L463'></a><a href='#L463'>463</a>
529
+ <a name='L464'></a><a href='#L464'>464</a>
530
+ <a name='L465'></a><a href='#L465'>465</a>
531
+ <a name='L466'></a><a href='#L466'>466</a>
532
+ <a name='L467'></a><a href='#L467'>467</a>
533
+ <a name='L468'></a><a href='#L468'>468</a>
534
+ <a name='L469'></a><a href='#L469'>469</a>
535
+ <a name='L470'></a><a href='#L470'>470</a>
536
+ <a name='L471'></a><a href='#L471'>471</a>
537
+ <a name='L472'></a><a href='#L472'>472</a>
538
+ <a name='L473'></a><a href='#L473'>473</a>
539
+ <a name='L474'></a><a href='#L474'>474</a>
540
+ <a name='L475'></a><a href='#L475'>475</a>
541
+ <a name='L476'></a><a href='#L476'>476</a>
542
+ <a name='L477'></a><a href='#L477'>477</a>
543
+ <a name='L478'></a><a href='#L478'>478</a>
544
+ <a name='L479'></a><a href='#L479'>479</a>
545
+ <a name='L480'></a><a href='#L480'>480</a>
546
+ <a name='L481'></a><a href='#L481'>481</a>
547
+ <a name='L482'></a><a href='#L482'>482</a>
548
+ <a name='L483'></a><a href='#L483'>483</a>
549
+ <a name='L484'></a><a href='#L484'>484</a>
550
+ <a name='L485'></a><a href='#L485'>485</a>
551
+ <a name='L486'></a><a href='#L486'>486</a>
552
+ <a name='L487'></a><a href='#L487'>487</a>
553
+ <a name='L488'></a><a href='#L488'>488</a>
554
+ <a name='L489'></a><a href='#L489'>489</a>
555
+ <a name='L490'></a><a href='#L490'>490</a>
556
+ <a name='L491'></a><a href='#L491'>491</a>
557
+ <a name='L492'></a><a href='#L492'>492</a>
558
+ <a name='L493'></a><a href='#L493'>493</a>
559
+ <a name='L494'></a><a href='#L494'>494</a>
560
+ <a name='L495'></a><a href='#L495'>495</a>
561
+ <a name='L496'></a><a href='#L496'>496</a>
562
+ <a name='L497'></a><a href='#L497'>497</a>
563
+ <a name='L498'></a><a href='#L498'>498</a>
564
+ <a name='L499'></a><a href='#L499'>499</a>
565
+ <a name='L500'></a><a href='#L500'>500</a>
566
+ <a name='L501'></a><a href='#L501'>501</a>
567
+ <a name='L502'></a><a href='#L502'>502</a>
568
+ <a name='L503'></a><a href='#L503'>503</a>
569
+ <a name='L504'></a><a href='#L504'>504</a>
570
+ <a name='L505'></a><a href='#L505'>505</a>
571
+ <a name='L506'></a><a href='#L506'>506</a>
572
+ <a name='L507'></a><a href='#L507'>507</a>
573
+ <a name='L508'></a><a href='#L508'>508</a>
574
+ <a name='L509'></a><a href='#L509'>509</a>
575
+ <a name='L510'></a><a href='#L510'>510</a>
576
+ <a name='L511'></a><a href='#L511'>511</a>
577
+ <a name='L512'></a><a href='#L512'>512</a>
578
+ <a name='L513'></a><a href='#L513'>513</a>
579
+ <a name='L514'></a><a href='#L514'>514</a>
580
+ <a name='L515'></a><a href='#L515'>515</a>
581
+ <a name='L516'></a><a href='#L516'>516</a>
582
+ <a name='L517'></a><a href='#L517'>517</a>
583
+ <a name='L518'></a><a href='#L518'>518</a>
584
+ <a name='L519'></a><a href='#L519'>519</a>
585
+ <a name='L520'></a><a href='#L520'>520</a>
586
+ <a name='L521'></a><a href='#L521'>521</a>
587
+ <a name='L522'></a><a href='#L522'>522</a>
588
+ <a name='L523'></a><a href='#L523'>523</a>
589
+ <a name='L524'></a><a href='#L524'>524</a>
590
+ <a name='L525'></a><a href='#L525'>525</a>
591
+ <a name='L526'></a><a href='#L526'>526</a>
592
+ <a name='L527'></a><a href='#L527'>527</a>
593
+ <a name='L528'></a><a href='#L528'>528</a>
594
+ <a name='L529'></a><a href='#L529'>529</a>
595
+ <a name='L530'></a><a href='#L530'>530</a>
596
+ <a name='L531'></a><a href='#L531'>531</a>
597
+ <a name='L532'></a><a href='#L532'>532</a>
598
+ <a name='L533'></a><a href='#L533'>533</a>
599
+ <a name='L534'></a><a href='#L534'>534</a>
600
+ <a name='L535'></a><a href='#L535'>535</a>
601
+ <a name='L536'></a><a href='#L536'>536</a>
602
+ <a name='L537'></a><a href='#L537'>537</a>
603
+ <a name='L538'></a><a href='#L538'>538</a>
604
+ <a name='L539'></a><a href='#L539'>539</a>
605
+ <a name='L540'></a><a href='#L540'>540</a>
606
+ <a name='L541'></a><a href='#L541'>541</a>
607
+ <a name='L542'></a><a href='#L542'>542</a>
608
+ <a name='L543'></a><a href='#L543'>543</a>
609
+ <a name='L544'></a><a href='#L544'>544</a>
610
+ <a name='L545'></a><a href='#L545'>545</a>
611
+ <a name='L546'></a><a href='#L546'>546</a>
612
+ <a name='L547'></a><a href='#L547'>547</a>
613
+ <a name='L548'></a><a href='#L548'>548</a>
614
+ <a name='L549'></a><a href='#L549'>549</a>
615
+ <a name='L550'></a><a href='#L550'>550</a>
616
+ <a name='L551'></a><a href='#L551'>551</a>
617
+ <a name='L552'></a><a href='#L552'>552</a>
618
+ <a name='L553'></a><a href='#L553'>553</a>
619
+ <a name='L554'></a><a href='#L554'>554</a>
620
+ <a name='L555'></a><a href='#L555'>555</a>
621
+ <a name='L556'></a><a href='#L556'>556</a>
622
+ <a name='L557'></a><a href='#L557'>557</a>
623
+ <a name='L558'></a><a href='#L558'>558</a>
624
+ <a name='L559'></a><a href='#L559'>559</a>
625
+ <a name='L560'></a><a href='#L560'>560</a>
626
+ <a name='L561'></a><a href='#L561'>561</a>
627
+ <a name='L562'></a><a href='#L562'>562</a>
628
+ <a name='L563'></a><a href='#L563'>563</a>
629
+ <a name='L564'></a><a href='#L564'>564</a>
630
+ <a name='L565'></a><a href='#L565'>565</a>
631
+ <a name='L566'></a><a href='#L566'>566</a>
632
+ <a name='L567'></a><a href='#L567'>567</a>
633
+ <a name='L568'></a><a href='#L568'>568</a>
634
+ <a name='L569'></a><a href='#L569'>569</a>
635
+ <a name='L570'></a><a href='#L570'>570</a>
636
+ <a name='L571'></a><a href='#L571'>571</a>
637
+ <a name='L572'></a><a href='#L572'>572</a>
638
+ <a name='L573'></a><a href='#L573'>573</a>
639
+ <a name='L574'></a><a href='#L574'>574</a>
640
+ <a name='L575'></a><a href='#L575'>575</a>
641
+ <a name='L576'></a><a href='#L576'>576</a>
642
+ <a name='L577'></a><a href='#L577'>577</a>
643
+ <a name='L578'></a><a href='#L578'>578</a>
644
+ <a name='L579'></a><a href='#L579'>579</a>
645
+ <a name='L580'></a><a href='#L580'>580</a>
646
+ <a name='L581'></a><a href='#L581'>581</a>
647
+ <a name='L582'></a><a href='#L582'>582</a>
648
+ <a name='L583'></a><a href='#L583'>583</a>
649
+ <a name='L584'></a><a href='#L584'>584</a>
650
+ <a name='L585'></a><a href='#L585'>585</a>
651
+ <a name='L586'></a><a href='#L586'>586</a>
652
+ <a name='L587'></a><a href='#L587'>587</a>
653
+ <a name='L588'></a><a href='#L588'>588</a>
654
+ <a name='L589'></a><a href='#L589'>589</a>
655
+ <a name='L590'></a><a href='#L590'>590</a>
656
+ <a name='L591'></a><a href='#L591'>591</a>
657
+ <a name='L592'></a><a href='#L592'>592</a>
658
+ <a name='L593'></a><a href='#L593'>593</a>
659
+ <a name='L594'></a><a href='#L594'>594</a>
660
+ <a name='L595'></a><a href='#L595'>595</a>
661
+ <a name='L596'></a><a href='#L596'>596</a>
662
+ <a name='L597'></a><a href='#L597'>597</a>
663
+ <a name='L598'></a><a href='#L598'>598</a>
664
+ <a name='L599'></a><a href='#L599'>599</a>
665
+ <a name='L600'></a><a href='#L600'>600</a>
666
+ <a name='L601'></a><a href='#L601'>601</a>
667
+ <a name='L602'></a><a href='#L602'>602</a>
668
+ <a name='L603'></a><a href='#L603'>603</a>
669
+ <a name='L604'></a><a href='#L604'>604</a>
670
+ <a name='L605'></a><a href='#L605'>605</a>
671
+ <a name='L606'></a><a href='#L606'>606</a>
672
+ <a name='L607'></a><a href='#L607'>607</a>
673
+ <a name='L608'></a><a href='#L608'>608</a>
674
+ <a name='L609'></a><a href='#L609'>609</a>
675
+ <a name='L610'></a><a href='#L610'>610</a>
676
+ <a name='L611'></a><a href='#L611'>611</a>
677
+ <a name='L612'></a><a href='#L612'>612</a>
678
+ <a name='L613'></a><a href='#L613'>613</a>
679
+ <a name='L614'></a><a href='#L614'>614</a>
680
+ <a name='L615'></a><a href='#L615'>615</a>
681
+ <a name='L616'></a><a href='#L616'>616</a>
682
+ <a name='L617'></a><a href='#L617'>617</a>
683
+ <a name='L618'></a><a href='#L618'>618</a>
684
+ <a name='L619'></a><a href='#L619'>619</a>
685
+ <a name='L620'></a><a href='#L620'>620</a>
686
+ <a name='L621'></a><a href='#L621'>621</a>
687
+ <a name='L622'></a><a href='#L622'>622</a>
688
+ <a name='L623'></a><a href='#L623'>623</a>
689
+ <a name='L624'></a><a href='#L624'>624</a>
690
+ <a name='L625'></a><a href='#L625'>625</a>
691
+ <a name='L626'></a><a href='#L626'>626</a>
692
+ <a name='L627'></a><a href='#L627'>627</a>
693
+ <a name='L628'></a><a href='#L628'>628</a>
694
+ <a name='L629'></a><a href='#L629'>629</a>
695
+ <a name='L630'></a><a href='#L630'>630</a>
696
+ <a name='L631'></a><a href='#L631'>631</a>
697
+ <a name='L632'></a><a href='#L632'>632</a>
698
+ <a name='L633'></a><a href='#L633'>633</a>
699
+ <a name='L634'></a><a href='#L634'>634</a>
700
+ <a name='L635'></a><a href='#L635'>635</a>
701
+ <a name='L636'></a><a href='#L636'>636</a>
702
+ <a name='L637'></a><a href='#L637'>637</a>
703
+ <a name='L638'></a><a href='#L638'>638</a>
704
+ <a name='L639'></a><a href='#L639'>639</a>
705
+ <a name='L640'></a><a href='#L640'>640</a>
706
+ <a name='L641'></a><a href='#L641'>641</a>
707
+ <a name='L642'></a><a href='#L642'>642</a>
708
+ <a name='L643'></a><a href='#L643'>643</a>
709
+ <a name='L644'></a><a href='#L644'>644</a>
710
+ <a name='L645'></a><a href='#L645'>645</a>
711
+ <a name='L646'></a><a href='#L646'>646</a>
712
+ <a name='L647'></a><a href='#L647'>647</a>
713
+ <a name='L648'></a><a href='#L648'>648</a>
714
+ <a name='L649'></a><a href='#L649'>649</a>
715
+ <a name='L650'></a><a href='#L650'>650</a>
716
+ <a name='L651'></a><a href='#L651'>651</a>
717
+ <a name='L652'></a><a href='#L652'>652</a>
718
+ <a name='L653'></a><a href='#L653'>653</a>
719
+ <a name='L654'></a><a href='#L654'>654</a>
720
+ <a name='L655'></a><a href='#L655'>655</a>
721
+ <a name='L656'></a><a href='#L656'>656</a>
722
+ <a name='L657'></a><a href='#L657'>657</a>
723
+ <a name='L658'></a><a href='#L658'>658</a>
724
+ <a name='L659'></a><a href='#L659'>659</a>
725
+ <a name='L660'></a><a href='#L660'>660</a>
726
+ <a name='L661'></a><a href='#L661'>661</a>
727
+ <a name='L662'></a><a href='#L662'>662</a>
728
+ <a name='L663'></a><a href='#L663'>663</a>
729
+ <a name='L664'></a><a href='#L664'>664</a>
730
+ <a name='L665'></a><a href='#L665'>665</a>
731
+ <a name='L666'></a><a href='#L666'>666</a>
732
+ <a name='L667'></a><a href='#L667'>667</a>
733
+ <a name='L668'></a><a href='#L668'>668</a>
734
+ <a name='L669'></a><a href='#L669'>669</a>
735
+ <a name='L670'></a><a href='#L670'>670</a>
736
+ <a name='L671'></a><a href='#L671'>671</a>
737
+ <a name='L672'></a><a href='#L672'>672</a>
738
+ <a name='L673'></a><a href='#L673'>673</a>
739
+ <a name='L674'></a><a href='#L674'>674</a>
740
+ <a name='L675'></a><a href='#L675'>675</a>
741
+ <a name='L676'></a><a href='#L676'>676</a>
742
+ <a name='L677'></a><a href='#L677'>677</a>
743
+ <a name='L678'></a><a href='#L678'>678</a>
744
+ <a name='L679'></a><a href='#L679'>679</a>
745
+ <a name='L680'></a><a href='#L680'>680</a>
746
+ <a name='L681'></a><a href='#L681'>681</a>
747
+ <a name='L682'></a><a href='#L682'>682</a>
748
+ <a name='L683'></a><a href='#L683'>683</a>
749
+ <a name='L684'></a><a href='#L684'>684</a>
750
+ <a name='L685'></a><a href='#L685'>685</a>
751
+ <a name='L686'></a><a href='#L686'>686</a>
752
+ <a name='L687'></a><a href='#L687'>687</a>
753
+ <a name='L688'></a><a href='#L688'>688</a>
754
+ <a name='L689'></a><a href='#L689'>689</a>
755
+ <a name='L690'></a><a href='#L690'>690</a>
756
+ <a name='L691'></a><a href='#L691'>691</a>
757
+ <a name='L692'></a><a href='#L692'>692</a>
758
+ <a name='L693'></a><a href='#L693'>693</a>
759
+ <a name='L694'></a><a href='#L694'>694</a>
760
+ <a name='L695'></a><a href='#L695'>695</a>
761
+ <a name='L696'></a><a href='#L696'>696</a>
762
+ <a name='L697'></a><a href='#L697'>697</a>
763
+ <a name='L698'></a><a href='#L698'>698</a>
764
+ <a name='L699'></a><a href='#L699'>699</a>
765
+ <a name='L700'></a><a href='#L700'>700</a>
766
+ <a name='L701'></a><a href='#L701'>701</a>
767
+ <a name='L702'></a><a href='#L702'>702</a>
768
+ <a name='L703'></a><a href='#L703'>703</a>
769
+ <a name='L704'></a><a href='#L704'>704</a>
770
+ <a name='L705'></a><a href='#L705'>705</a>
771
+ <a name='L706'></a><a href='#L706'>706</a>
772
+ <a name='L707'></a><a href='#L707'>707</a>
773
+ <a name='L708'></a><a href='#L708'>708</a>
774
+ <a name='L709'></a><a href='#L709'>709</a>
775
+ <a name='L710'></a><a href='#L710'>710</a>
776
+ <a name='L711'></a><a href='#L711'>711</a>
777
+ <a name='L712'></a><a href='#L712'>712</a>
778
+ <a name='L713'></a><a href='#L713'>713</a>
779
+ <a name='L714'></a><a href='#L714'>714</a>
780
+ <a name='L715'></a><a href='#L715'>715</a>
781
+ <a name='L716'></a><a href='#L716'>716</a>
782
+ <a name='L717'></a><a href='#L717'>717</a>
783
+ <a name='L718'></a><a href='#L718'>718</a>
784
+ <a name='L719'></a><a href='#L719'>719</a>
785
+ <a name='L720'></a><a href='#L720'>720</a>
786
+ <a name='L721'></a><a href='#L721'>721</a>
787
+ <a name='L722'></a><a href='#L722'>722</a>
788
+ <a name='L723'></a><a href='#L723'>723</a>
789
+ <a name='L724'></a><a href='#L724'>724</a>
790
+ <a name='L725'></a><a href='#L725'>725</a>
791
+ <a name='L726'></a><a href='#L726'>726</a>
792
+ <a name='L727'></a><a href='#L727'>727</a>
793
+ <a name='L728'></a><a href='#L728'>728</a>
794
+ <a name='L729'></a><a href='#L729'>729</a>
795
+ <a name='L730'></a><a href='#L730'>730</a>
796
+ <a name='L731'></a><a href='#L731'>731</a>
797
+ <a name='L732'></a><a href='#L732'>732</a>
798
+ <a name='L733'></a><a href='#L733'>733</a>
799
+ <a name='L734'></a><a href='#L734'>734</a>
800
+ <a name='L735'></a><a href='#L735'>735</a>
801
+ <a name='L736'></a><a href='#L736'>736</a>
802
+ <a name='L737'></a><a href='#L737'>737</a>
803
+ <a name='L738'></a><a href='#L738'>738</a>
804
+ <a name='L739'></a><a href='#L739'>739</a>
805
+ <a name='L740'></a><a href='#L740'>740</a>
806
+ <a name='L741'></a><a href='#L741'>741</a>
807
+ <a name='L742'></a><a href='#L742'>742</a>
808
+ <a name='L743'></a><a href='#L743'>743</a>
809
+ <a name='L744'></a><a href='#L744'>744</a>
810
+ <a name='L745'></a><a href='#L745'>745</a>
811
+ <a name='L746'></a><a href='#L746'>746</a>
812
+ <a name='L747'></a><a href='#L747'>747</a>
813
+ <a name='L748'></a><a href='#L748'>748</a>
814
+ <a name='L749'></a><a href='#L749'>749</a>
815
+ <a name='L750'></a><a href='#L750'>750</a>
816
+ <a name='L751'></a><a href='#L751'>751</a>
817
+ <a name='L752'></a><a href='#L752'>752</a>
818
+ <a name='L753'></a><a href='#L753'>753</a>
819
+ <a name='L754'></a><a href='#L754'>754</a>
820
+ <a name='L755'></a><a href='#L755'>755</a>
821
+ <a name='L756'></a><a href='#L756'>756</a>
822
+ <a name='L757'></a><a href='#L757'>757</a>
823
+ <a name='L758'></a><a href='#L758'>758</a>
824
+ <a name='L759'></a><a href='#L759'>759</a>
825
+ <a name='L760'></a><a href='#L760'>760</a>
826
+ <a name='L761'></a><a href='#L761'>761</a>
827
+ <a name='L762'></a><a href='#L762'>762</a>
828
+ <a name='L763'></a><a href='#L763'>763</a>
829
+ <a name='L764'></a><a href='#L764'>764</a>
830
+ <a name='L765'></a><a href='#L765'>765</a>
831
+ <a name='L766'></a><a href='#L766'>766</a>
832
+ <a name='L767'></a><a href='#L767'>767</a>
833
+ <a name='L768'></a><a href='#L768'>768</a>
834
+ <a name='L769'></a><a href='#L769'>769</a>
835
+ <a name='L770'></a><a href='#L770'>770</a>
836
+ <a name='L771'></a><a href='#L771'>771</a>
837
+ <a name='L772'></a><a href='#L772'>772</a>
838
+ <a name='L773'></a><a href='#L773'>773</a>
839
+ <a name='L774'></a><a href='#L774'>774</a>
840
+ <a name='L775'></a><a href='#L775'>775</a>
841
+ <a name='L776'></a><a href='#L776'>776</a>
842
+ <a name='L777'></a><a href='#L777'>777</a>
843
+ <a name='L778'></a><a href='#L778'>778</a>
844
+ <a name='L779'></a><a href='#L779'>779</a>
845
+ <a name='L780'></a><a href='#L780'>780</a>
846
+ <a name='L781'></a><a href='#L781'>781</a>
847
+ <a name='L782'></a><a href='#L782'>782</a>
848
+ <a name='L783'></a><a href='#L783'>783</a>
849
+ <a name='L784'></a><a href='#L784'>784</a>
850
+ <a name='L785'></a><a href='#L785'>785</a>
851
+ <a name='L786'></a><a href='#L786'>786</a>
852
+ <a name='L787'></a><a href='#L787'>787</a>
853
+ <a name='L788'></a><a href='#L788'>788</a>
854
+ <a name='L789'></a><a href='#L789'>789</a>
855
+ <a name='L790'></a><a href='#L790'>790</a>
856
+ <a name='L791'></a><a href='#L791'>791</a>
857
+ <a name='L792'></a><a href='#L792'>792</a>
858
+ <a name='L793'></a><a href='#L793'>793</a>
859
+ <a name='L794'></a><a href='#L794'>794</a>
860
+ <a name='L795'></a><a href='#L795'>795</a>
861
+ <a name='L796'></a><a href='#L796'>796</a>
862
+ <a name='L797'></a><a href='#L797'>797</a>
863
+ <a name='L798'></a><a href='#L798'>798</a>
864
+ <a name='L799'></a><a href='#L799'>799</a>
865
+ <a name='L800'></a><a href='#L800'>800</a>
866
+ <a name='L801'></a><a href='#L801'>801</a>
867
+ <a name='L802'></a><a href='#L802'>802</a>
868
+ <a name='L803'></a><a href='#L803'>803</a>
869
+ <a name='L804'></a><a href='#L804'>804</a>
870
+ <a name='L805'></a><a href='#L805'>805</a>
871
+ <a name='L806'></a><a href='#L806'>806</a>
872
+ <a name='L807'></a><a href='#L807'>807</a>
873
+ <a name='L808'></a><a href='#L808'>808</a>
874
+ <a name='L809'></a><a href='#L809'>809</a>
875
+ <a name='L810'></a><a href='#L810'>810</a>
876
+ <a name='L811'></a><a href='#L811'>811</a>
877
+ <a name='L812'></a><a href='#L812'>812</a>
878
+ <a name='L813'></a><a href='#L813'>813</a>
879
+ <a name='L814'></a><a href='#L814'>814</a>
880
+ <a name='L815'></a><a href='#L815'>815</a>
881
+ <a name='L816'></a><a href='#L816'>816</a>
882
+ <a name='L817'></a><a href='#L817'>817</a>
883
+ <a name='L818'></a><a href='#L818'>818</a>
884
+ <a name='L819'></a><a href='#L819'>819</a>
885
+ <a name='L820'></a><a href='#L820'>820</a>
886
+ <a name='L821'></a><a href='#L821'>821</a>
887
+ <a name='L822'></a><a href='#L822'>822</a>
888
+ <a name='L823'></a><a href='#L823'>823</a>
889
+ <a name='L824'></a><a href='#L824'>824</a>
890
+ <a name='L825'></a><a href='#L825'>825</a>
891
+ <a name='L826'></a><a href='#L826'>826</a>
892
+ <a name='L827'></a><a href='#L827'>827</a>
893
+ <a name='L828'></a><a href='#L828'>828</a>
894
+ <a name='L829'></a><a href='#L829'>829</a>
895
+ <a name='L830'></a><a href='#L830'>830</a>
896
+ <a name='L831'></a><a href='#L831'>831</a>
897
+ <a name='L832'></a><a href='#L832'>832</a>
898
+ <a name='L833'></a><a href='#L833'>833</a>
899
+ <a name='L834'></a><a href='#L834'>834</a>
900
+ <a name='L835'></a><a href='#L835'>835</a>
901
+ <a name='L836'></a><a href='#L836'>836</a>
902
+ <a name='L837'></a><a href='#L837'>837</a>
903
+ <a name='L838'></a><a href='#L838'>838</a>
904
+ <a name='L839'></a><a href='#L839'>839</a>
905
+ <a name='L840'></a><a href='#L840'>840</a>
906
+ <a name='L841'></a><a href='#L841'>841</a>
907
+ <a name='L842'></a><a href='#L842'>842</a>
908
+ <a name='L843'></a><a href='#L843'>843</a>
909
+ <a name='L844'></a><a href='#L844'>844</a>
910
+ <a name='L845'></a><a href='#L845'>845</a>
911
+ <a name='L846'></a><a href='#L846'>846</a>
912
+ <a name='L847'></a><a href='#L847'>847</a>
913
+ <a name='L848'></a><a href='#L848'>848</a>
914
+ <a name='L849'></a><a href='#L849'>849</a>
915
+ <a name='L850'></a><a href='#L850'>850</a>
916
+ <a name='L851'></a><a href='#L851'>851</a>
917
+ <a name='L852'></a><a href='#L852'>852</a>
918
+ <a name='L853'></a><a href='#L853'>853</a>
919
+ <a name='L854'></a><a href='#L854'>854</a>
920
+ <a name='L855'></a><a href='#L855'>855</a>
921
+ <a name='L856'></a><a href='#L856'>856</a>
922
+ <a name='L857'></a><a href='#L857'>857</a>
923
+ <a name='L858'></a><a href='#L858'>858</a>
924
+ <a name='L859'></a><a href='#L859'>859</a>
925
+ <a name='L860'></a><a href='#L860'>860</a>
926
+ <a name='L861'></a><a href='#L861'>861</a>
927
+ <a name='L862'></a><a href='#L862'>862</a>
928
+ <a name='L863'></a><a href='#L863'>863</a>
929
+ <a name='L864'></a><a href='#L864'>864</a>
930
+ <a name='L865'></a><a href='#L865'>865</a>
931
+ <a name='L866'></a><a href='#L866'>866</a>
932
+ <a name='L867'></a><a href='#L867'>867</a>
933
+ <a name='L868'></a><a href='#L868'>868</a>
934
+ <a name='L869'></a><a href='#L869'>869</a>
935
+ <a name='L870'></a><a href='#L870'>870</a>
936
+ <a name='L871'></a><a href='#L871'>871</a>
937
+ <a name='L872'></a><a href='#L872'>872</a>
938
+ <a name='L873'></a><a href='#L873'>873</a>
939
+ <a name='L874'></a><a href='#L874'>874</a>
940
+ <a name='L875'></a><a href='#L875'>875</a>
941
+ <a name='L876'></a><a href='#L876'>876</a>
942
+ <a name='L877'></a><a href='#L877'>877</a>
943
+ <a name='L878'></a><a href='#L878'>878</a>
944
+ <a name='L879'></a><a href='#L879'>879</a>
945
+ <a name='L880'></a><a href='#L880'>880</a>
946
+ <a name='L881'></a><a href='#L881'>881</a>
947
+ <a name='L882'></a><a href='#L882'>882</a>
948
+ <a name='L883'></a><a href='#L883'>883</a>
949
+ <a name='L884'></a><a href='#L884'>884</a>
950
+ <a name='L885'></a><a href='#L885'>885</a>
951
+ <a name='L886'></a><a href='#L886'>886</a>
952
+ <a name='L887'></a><a href='#L887'>887</a>
953
+ <a name='L888'></a><a href='#L888'>888</a>
954
+ <a name='L889'></a><a href='#L889'>889</a>
955
+ <a name='L890'></a><a href='#L890'>890</a>
956
+ <a name='L891'></a><a href='#L891'>891</a>
957
+ <a name='L892'></a><a href='#L892'>892</a>
958
+ <a name='L893'></a><a href='#L893'>893</a>
959
+ <a name='L894'></a><a href='#L894'>894</a>
960
+ <a name='L895'></a><a href='#L895'>895</a>
961
+ <a name='L896'></a><a href='#L896'>896</a>
962
+ <a name='L897'></a><a href='#L897'>897</a>
963
+ <a name='L898'></a><a href='#L898'>898</a>
964
+ <a name='L899'></a><a href='#L899'>899</a>
965
+ <a name='L900'></a><a href='#L900'>900</a>
966
+ <a name='L901'></a><a href='#L901'>901</a>
967
+ <a name='L902'></a><a href='#L902'>902</a>
968
+ <a name='L903'></a><a href='#L903'>903</a>
969
+ <a name='L904'></a><a href='#L904'>904</a>
970
+ <a name='L905'></a><a href='#L905'>905</a>
971
+ <a name='L906'></a><a href='#L906'>906</a>
972
+ <a name='L907'></a><a href='#L907'>907</a>
973
+ <a name='L908'></a><a href='#L908'>908</a>
974
+ <a name='L909'></a><a href='#L909'>909</a>
975
+ <a name='L910'></a><a href='#L910'>910</a>
976
+ <a name='L911'></a><a href='#L911'>911</a>
977
+ <a name='L912'></a><a href='#L912'>912</a>
978
+ <a name='L913'></a><a href='#L913'>913</a>
979
+ <a name='L914'></a><a href='#L914'>914</a>
980
+ <a name='L915'></a><a href='#L915'>915</a>
981
+ <a name='L916'></a><a href='#L916'>916</a>
982
+ <a name='L917'></a><a href='#L917'>917</a>
983
+ <a name='L918'></a><a href='#L918'>918</a>
984
+ <a name='L919'></a><a href='#L919'>919</a>
985
+ <a name='L920'></a><a href='#L920'>920</a>
986
+ <a name='L921'></a><a href='#L921'>921</a>
987
+ <a name='L922'></a><a href='#L922'>922</a>
988
+ <a name='L923'></a><a href='#L923'>923</a>
989
+ <a name='L924'></a><a href='#L924'>924</a>
990
+ <a name='L925'></a><a href='#L925'>925</a>
991
+ <a name='L926'></a><a href='#L926'>926</a>
992
+ <a name='L927'></a><a href='#L927'>927</a>
993
+ <a name='L928'></a><a href='#L928'>928</a>
994
+ <a name='L929'></a><a href='#L929'>929</a>
995
+ <a name='L930'></a><a href='#L930'>930</a>
996
+ <a name='L931'></a><a href='#L931'>931</a>
997
+ <a name='L932'></a><a href='#L932'>932</a>
998
+ <a name='L933'></a><a href='#L933'>933</a>
999
+ <a name='L934'></a><a href='#L934'>934</a>
1000
+ <a name='L935'></a><a href='#L935'>935</a>
1001
+ <a name='L936'></a><a href='#L936'>936</a>
1002
+ <a name='L937'></a><a href='#L937'>937</a>
1003
+ <a name='L938'></a><a href='#L938'>938</a>
1004
+ <a name='L939'></a><a href='#L939'>939</a>
1005
+ <a name='L940'></a><a href='#L940'>940</a>
1006
+ <a name='L941'></a><a href='#L941'>941</a>
1007
+ <a name='L942'></a><a href='#L942'>942</a>
1008
+ <a name='L943'></a><a href='#L943'>943</a>
1009
+ <a name='L944'></a><a href='#L944'>944</a>
1010
+ <a name='L945'></a><a href='#L945'>945</a>
1011
+ <a name='L946'></a><a href='#L946'>946</a>
1012
+ <a name='L947'></a><a href='#L947'>947</a>
1013
+ <a name='L948'></a><a href='#L948'>948</a>
1014
+ <a name='L949'></a><a href='#L949'>949</a>
1015
+ <a name='L950'></a><a href='#L950'>950</a>
1016
+ <a name='L951'></a><a href='#L951'>951</a>
1017
+ <a name='L952'></a><a href='#L952'>952</a>
1018
+ <a name='L953'></a><a href='#L953'>953</a>
1019
+ <a name='L954'></a><a href='#L954'>954</a>
1020
+ <a name='L955'></a><a href='#L955'>955</a>
1021
+ <a name='L956'></a><a href='#L956'>956</a>
1022
+ <a name='L957'></a><a href='#L957'>957</a>
1023
+ <a name='L958'></a><a href='#L958'>958</a>
1024
+ <a name='L959'></a><a href='#L959'>959</a>
1025
+ <a name='L960'></a><a href='#L960'>960</a>
1026
+ <a name='L961'></a><a href='#L961'>961</a>
1027
+ <a name='L962'></a><a href='#L962'>962</a>
1028
+ <a name='L963'></a><a href='#L963'>963</a>
1029
+ <a name='L964'></a><a href='#L964'>964</a>
1030
+ <a name='L965'></a><a href='#L965'>965</a>
1031
+ <a name='L966'></a><a href='#L966'>966</a>
1032
+ <a name='L967'></a><a href='#L967'>967</a>
1033
+ <a name='L968'></a><a href='#L968'>968</a>
1034
+ <a name='L969'></a><a href='#L969'>969</a>
1035
+ <a name='L970'></a><a href='#L970'>970</a>
1036
+ <a name='L971'></a><a href='#L971'>971</a>
1037
+ <a name='L972'></a><a href='#L972'>972</a>
1038
+ <a name='L973'></a><a href='#L973'>973</a>
1039
+ <a name='L974'></a><a href='#L974'>974</a>
1040
+ <a name='L975'></a><a href='#L975'>975</a>
1041
+ <a name='L976'></a><a href='#L976'>976</a>
1042
+ <a name='L977'></a><a href='#L977'>977</a>
1043
+ <a name='L978'></a><a href='#L978'>978</a>
1044
+ <a name='L979'></a><a href='#L979'>979</a>
1045
+ <a name='L980'></a><a href='#L980'>980</a>
1046
+ <a name='L981'></a><a href='#L981'>981</a>
1047
+ <a name='L982'></a><a href='#L982'>982</a>
1048
+ <a name='L983'></a><a href='#L983'>983</a>
1049
+ <a name='L984'></a><a href='#L984'>984</a>
1050
+ <a name='L985'></a><a href='#L985'>985</a>
1051
+ <a name='L986'></a><a href='#L986'>986</a>
1052
+ <a name='L987'></a><a href='#L987'>987</a>
1053
+ <a name='L988'></a><a href='#L988'>988</a>
1054
+ <a name='L989'></a><a href='#L989'>989</a>
1055
+ <a name='L990'></a><a href='#L990'>990</a>
1056
+ <a name='L991'></a><a href='#L991'>991</a>
1057
+ <a name='L992'></a><a href='#L992'>992</a>
1058
+ <a name='L993'></a><a href='#L993'>993</a>
1059
+ <a name='L994'></a><a href='#L994'>994</a>
1060
+ <a name='L995'></a><a href='#L995'>995</a>
1061
+ <a name='L996'></a><a href='#L996'>996</a>
1062
+ <a name='L997'></a><a href='#L997'>997</a>
1063
+ <a name='L998'></a><a href='#L998'>998</a>
1064
+ <a name='L999'></a><a href='#L999'>999</a>
1065
+ <a name='L1000'></a><a href='#L1000'>1000</a>
1066
+ <a name='L1001'></a><a href='#L1001'>1001</a>
1067
+ <a name='L1002'></a><a href='#L1002'>1002</a>
1068
+ <a name='L1003'></a><a href='#L1003'>1003</a>
1069
+ <a name='L1004'></a><a href='#L1004'>1004</a>
1070
+ <a name='L1005'></a><a href='#L1005'>1005</a>
1071
+ <a name='L1006'></a><a href='#L1006'>1006</a>
1072
+ <a name='L1007'></a><a href='#L1007'>1007</a>
1073
+ <a name='L1008'></a><a href='#L1008'>1008</a>
1074
+ <a name='L1009'></a><a href='#L1009'>1009</a>
1075
+ <a name='L1010'></a><a href='#L1010'>1010</a>
1076
+ <a name='L1011'></a><a href='#L1011'>1011</a>
1077
+ <a name='L1012'></a><a href='#L1012'>1012</a>
1078
+ <a name='L1013'></a><a href='#L1013'>1013</a>
1079
+ <a name='L1014'></a><a href='#L1014'>1014</a>
1080
+ <a name='L1015'></a><a href='#L1015'>1015</a>
1081
+ <a name='L1016'></a><a href='#L1016'>1016</a>
1082
+ <a name='L1017'></a><a href='#L1017'>1017</a>
1083
+ <a name='L1018'></a><a href='#L1018'>1018</a>
1084
+ <a name='L1019'></a><a href='#L1019'>1019</a>
1085
+ <a name='L1020'></a><a href='#L1020'>1020</a>
1086
+ <a name='L1021'></a><a href='#L1021'>1021</a>
1087
+ <a name='L1022'></a><a href='#L1022'>1022</a>
1088
+ <a name='L1023'></a><a href='#L1023'>1023</a>
1089
+ <a name='L1024'></a><a href='#L1024'>1024</a>
1090
+ <a name='L1025'></a><a href='#L1025'>1025</a>
1091
+ <a name='L1026'></a><a href='#L1026'>1026</a>
1092
+ <a name='L1027'></a><a href='#L1027'>1027</a>
1093
+ <a name='L1028'></a><a href='#L1028'>1028</a>
1094
+ <a name='L1029'></a><a href='#L1029'>1029</a>
1095
+ <a name='L1030'></a><a href='#L1030'>1030</a>
1096
+ <a name='L1031'></a><a href='#L1031'>1031</a>
1097
+ <a name='L1032'></a><a href='#L1032'>1032</a>
1098
+ <a name='L1033'></a><a href='#L1033'>1033</a>
1099
+ <a name='L1034'></a><a href='#L1034'>1034</a>
1100
+ <a name='L1035'></a><a href='#L1035'>1035</a>
1101
+ <a name='L1036'></a><a href='#L1036'>1036</a>
1102
+ <a name='L1037'></a><a href='#L1037'>1037</a>
1103
+ <a name='L1038'></a><a href='#L1038'>1038</a>
1104
+ <a name='L1039'></a><a href='#L1039'>1039</a>
1105
+ <a name='L1040'></a><a href='#L1040'>1040</a>
1106
+ <a name='L1041'></a><a href='#L1041'>1041</a>
1107
+ <a name='L1042'></a><a href='#L1042'>1042</a>
1108
+ <a name='L1043'></a><a href='#L1043'>1043</a>
1109
+ <a name='L1044'></a><a href='#L1044'>1044</a>
1110
+ <a name='L1045'></a><a href='#L1045'>1045</a>
1111
+ <a name='L1046'></a><a href='#L1046'>1046</a>
1112
+ <a name='L1047'></a><a href='#L1047'>1047</a>
1113
+ <a name='L1048'></a><a href='#L1048'>1048</a>
1114
+ <a name='L1049'></a><a href='#L1049'>1049</a>
1115
+ <a name='L1050'></a><a href='#L1050'>1050</a>
1116
+ <a name='L1051'></a><a href='#L1051'>1051</a>
1117
+ <a name='L1052'></a><a href='#L1052'>1052</a>
1118
+ <a name='L1053'></a><a href='#L1053'>1053</a>
1119
+ <a name='L1054'></a><a href='#L1054'>1054</a>
1120
+ <a name='L1055'></a><a href='#L1055'>1055</a>
1121
+ <a name='L1056'></a><a href='#L1056'>1056</a>
1122
+ <a name='L1057'></a><a href='#L1057'>1057</a>
1123
+ <a name='L1058'></a><a href='#L1058'>1058</a>
1124
+ <a name='L1059'></a><a href='#L1059'>1059</a>
1125
+ <a name='L1060'></a><a href='#L1060'>1060</a>
1126
+ <a name='L1061'></a><a href='#L1061'>1061</a>
1127
+ <a name='L1062'></a><a href='#L1062'>1062</a>
1128
+ <a name='L1063'></a><a href='#L1063'>1063</a>
1129
+ <a name='L1064'></a><a href='#L1064'>1064</a>
1130
+ <a name='L1065'></a><a href='#L1065'>1065</a>
1131
+ <a name='L1066'></a><a href='#L1066'>1066</a>
1132
+ <a name='L1067'></a><a href='#L1067'>1067</a>
1133
+ <a name='L1068'></a><a href='#L1068'>1068</a>
1134
+ <a name='L1069'></a><a href='#L1069'>1069</a>
1135
+ <a name='L1070'></a><a href='#L1070'>1070</a>
1136
+ <a name='L1071'></a><a href='#L1071'>1071</a>
1137
+ <a name='L1072'></a><a href='#L1072'>1072</a>
1138
+ <a name='L1073'></a><a href='#L1073'>1073</a>
1139
+ <a name='L1074'></a><a href='#L1074'>1074</a>
1140
+ <a name='L1075'></a><a href='#L1075'>1075</a>
1141
+ <a name='L1076'></a><a href='#L1076'>1076</a>
1142
+ <a name='L1077'></a><a href='#L1077'>1077</a>
1143
+ <a name='L1078'></a><a href='#L1078'>1078</a>
1144
+ <a name='L1079'></a><a href='#L1079'>1079</a>
1145
+ <a name='L1080'></a><a href='#L1080'>1080</a>
1146
+ <a name='L1081'></a><a href='#L1081'>1081</a>
1147
+ <a name='L1082'></a><a href='#L1082'>1082</a>
1148
+ <a name='L1083'></a><a href='#L1083'>1083</a>
1149
+ <a name='L1084'></a><a href='#L1084'>1084</a>
1150
+ <a name='L1085'></a><a href='#L1085'>1085</a>
1151
+ <a name='L1086'></a><a href='#L1086'>1086</a>
1152
+ <a name='L1087'></a><a href='#L1087'>1087</a>
1153
+ <a name='L1088'></a><a href='#L1088'>1088</a>
1154
+ <a name='L1089'></a><a href='#L1089'>1089</a>
1155
+ <a name='L1090'></a><a href='#L1090'>1090</a>
1156
+ <a name='L1091'></a><a href='#L1091'>1091</a>
1157
+ <a name='L1092'></a><a href='#L1092'>1092</a>
1158
+ <a name='L1093'></a><a href='#L1093'>1093</a>
1159
+ <a name='L1094'></a><a href='#L1094'>1094</a>
1160
+ <a name='L1095'></a><a href='#L1095'>1095</a>
1161
+ <a name='L1096'></a><a href='#L1096'>1096</a>
1162
+ <a name='L1097'></a><a href='#L1097'>1097</a>
1163
+ <a name='L1098'></a><a href='#L1098'>1098</a>
1164
+ <a name='L1099'></a><a href='#L1099'>1099</a>
1165
+ <a name='L1100'></a><a href='#L1100'>1100</a>
1166
+ <a name='L1101'></a><a href='#L1101'>1101</a>
1167
+ <a name='L1102'></a><a href='#L1102'>1102</a>
1168
+ <a name='L1103'></a><a href='#L1103'>1103</a>
1169
+ <a name='L1104'></a><a href='#L1104'>1104</a>
1170
+ <a name='L1105'></a><a href='#L1105'>1105</a>
1171
+ <a name='L1106'></a><a href='#L1106'>1106</a>
1172
+ <a name='L1107'></a><a href='#L1107'>1107</a>
1173
+ <a name='L1108'></a><a href='#L1108'>1108</a>
1174
+ <a name='L1109'></a><a href='#L1109'>1109</a>
1175
+ <a name='L1110'></a><a href='#L1110'>1110</a>
1176
+ <a name='L1111'></a><a href='#L1111'>1111</a>
1177
+ <a name='L1112'></a><a href='#L1112'>1112</a>
1178
+ <a name='L1113'></a><a href='#L1113'>1113</a>
1179
+ <a name='L1114'></a><a href='#L1114'>1114</a>
1180
+ <a name='L1115'></a><a href='#L1115'>1115</a>
1181
+ <a name='L1116'></a><a href='#L1116'>1116</a>
1182
+ <a name='L1117'></a><a href='#L1117'>1117</a>
1183
+ <a name='L1118'></a><a href='#L1118'>1118</a>
1184
+ <a name='L1119'></a><a href='#L1119'>1119</a>
1185
+ <a name='L1120'></a><a href='#L1120'>1120</a>
1186
+ <a name='L1121'></a><a href='#L1121'>1121</a>
1187
+ <a name='L1122'></a><a href='#L1122'>1122</a>
1188
+ <a name='L1123'></a><a href='#L1123'>1123</a>
1189
+ <a name='L1124'></a><a href='#L1124'>1124</a>
1190
+ <a name='L1125'></a><a href='#L1125'>1125</a>
1191
+ <a name='L1126'></a><a href='#L1126'>1126</a>
1192
+ <a name='L1127'></a><a href='#L1127'>1127</a>
1193
+ <a name='L1128'></a><a href='#L1128'>1128</a>
1194
+ <a name='L1129'></a><a href='#L1129'>1129</a>
1195
+ <a name='L1130'></a><a href='#L1130'>1130</a>
1196
+ <a name='L1131'></a><a href='#L1131'>1131</a>
1197
+ <a name='L1132'></a><a href='#L1132'>1132</a>
1198
+ <a name='L1133'></a><a href='#L1133'>1133</a>
1199
+ <a name='L1134'></a><a href='#L1134'>1134</a>
1200
+ <a name='L1135'></a><a href='#L1135'>1135</a>
1201
+ <a name='L1136'></a><a href='#L1136'>1136</a>
1202
+ <a name='L1137'></a><a href='#L1137'>1137</a>
1203
+ <a name='L1138'></a><a href='#L1138'>1138</a>
1204
+ <a name='L1139'></a><a href='#L1139'>1139</a>
1205
+ <a name='L1140'></a><a href='#L1140'>1140</a>
1206
+ <a name='L1141'></a><a href='#L1141'>1141</a>
1207
+ <a name='L1142'></a><a href='#L1142'>1142</a>
1208
+ <a name='L1143'></a><a href='#L1143'>1143</a>
1209
+ <a name='L1144'></a><a href='#L1144'>1144</a>
1210
+ <a name='L1145'></a><a href='#L1145'>1145</a>
1211
+ <a name='L1146'></a><a href='#L1146'>1146</a>
1212
+ <a name='L1147'></a><a href='#L1147'>1147</a>
1213
+ <a name='L1148'></a><a href='#L1148'>1148</a>
1214
+ <a name='L1149'></a><a href='#L1149'>1149</a>
1215
+ <a name='L1150'></a><a href='#L1150'>1150</a>
1216
+ <a name='L1151'></a><a href='#L1151'>1151</a>
1217
+ <a name='L1152'></a><a href='#L1152'>1152</a>
1218
+ <a name='L1153'></a><a href='#L1153'>1153</a>
1219
+ <a name='L1154'></a><a href='#L1154'>1154</a>
1220
+ <a name='L1155'></a><a href='#L1155'>1155</a>
1221
+ <a name='L1156'></a><a href='#L1156'>1156</a>
1222
+ <a name='L1157'></a><a href='#L1157'>1157</a>
1223
+ <a name='L1158'></a><a href='#L1158'>1158</a>
1224
+ <a name='L1159'></a><a href='#L1159'>1159</a>
1225
+ <a name='L1160'></a><a href='#L1160'>1160</a>
1226
+ <a name='L1161'></a><a href='#L1161'>1161</a>
1227
+ <a name='L1162'></a><a href='#L1162'>1162</a>
1228
+ <a name='L1163'></a><a href='#L1163'>1163</a>
1229
+ <a name='L1164'></a><a href='#L1164'>1164</a>
1230
+ <a name='L1165'></a><a href='#L1165'>1165</a>
1231
+ <a name='L1166'></a><a href='#L1166'>1166</a>
1232
+ <a name='L1167'></a><a href='#L1167'>1167</a>
1233
+ <a name='L1168'></a><a href='#L1168'>1168</a>
1234
+ <a name='L1169'></a><a href='#L1169'>1169</a>
1235
+ <a name='L1170'></a><a href='#L1170'>1170</a>
1236
+ <a name='L1171'></a><a href='#L1171'>1171</a>
1237
+ <a name='L1172'></a><a href='#L1172'>1172</a>
1238
+ <a name='L1173'></a><a href='#L1173'>1173</a>
1239
+ <a name='L1174'></a><a href='#L1174'>1174</a>
1240
+ <a name='L1175'></a><a href='#L1175'>1175</a>
1241
+ <a name='L1176'></a><a href='#L1176'>1176</a>
1242
+ <a name='L1177'></a><a href='#L1177'>1177</a>
1243
+ <a name='L1178'></a><a href='#L1178'>1178</a>
1244
+ <a name='L1179'></a><a href='#L1179'>1179</a>
1245
+ <a name='L1180'></a><a href='#L1180'>1180</a>
1246
+ <a name='L1181'></a><a href='#L1181'>1181</a>
1247
+ <a name='L1182'></a><a href='#L1182'>1182</a>
1248
+ <a name='L1183'></a><a href='#L1183'>1183</a>
1249
+ <a name='L1184'></a><a href='#L1184'>1184</a>
1250
+ <a name='L1185'></a><a href='#L1185'>1185</a>
1251
+ <a name='L1186'></a><a href='#L1186'>1186</a>
1252
+ <a name='L1187'></a><a href='#L1187'>1187</a>
1253
+ <a name='L1188'></a><a href='#L1188'>1188</a>
1254
+ <a name='L1189'></a><a href='#L1189'>1189</a>
1255
+ <a name='L1190'></a><a href='#L1190'>1190</a>
1256
+ <a name='L1191'></a><a href='#L1191'>1191</a>
1257
+ <a name='L1192'></a><a href='#L1192'>1192</a>
1258
+ <a name='L1193'></a><a href='#L1193'>1193</a>
1259
+ <a name='L1194'></a><a href='#L1194'>1194</a>
1260
+ <a name='L1195'></a><a href='#L1195'>1195</a>
1261
+ <a name='L1196'></a><a href='#L1196'>1196</a>
1262
+ <a name='L1197'></a><a href='#L1197'>1197</a>
1263
+ <a name='L1198'></a><a href='#L1198'>1198</a>
1264
+ <a name='L1199'></a><a href='#L1199'>1199</a>
1265
+ <a name='L1200'></a><a href='#L1200'>1200</a>
1266
+ <a name='L1201'></a><a href='#L1201'>1201</a>
1267
+ <a name='L1202'></a><a href='#L1202'>1202</a>
1268
+ <a name='L1203'></a><a href='#L1203'>1203</a>
1269
+ <a name='L1204'></a><a href='#L1204'>1204</a>
1270
+ <a name='L1205'></a><a href='#L1205'>1205</a>
1271
+ <a name='L1206'></a><a href='#L1206'>1206</a>
1272
+ <a name='L1207'></a><a href='#L1207'>1207</a>
1273
+ <a name='L1208'></a><a href='#L1208'>1208</a>
1274
+ <a name='L1209'></a><a href='#L1209'>1209</a>
1275
+ <a name='L1210'></a><a href='#L1210'>1210</a>
1276
+ <a name='L1211'></a><a href='#L1211'>1211</a>
1277
+ <a name='L1212'></a><a href='#L1212'>1212</a>
1278
+ <a name='L1213'></a><a href='#L1213'>1213</a>
1279
+ <a name='L1214'></a><a href='#L1214'>1214</a>
1280
+ <a name='L1215'></a><a href='#L1215'>1215</a>
1281
+ <a name='L1216'></a><a href='#L1216'>1216</a>
1282
+ <a name='L1217'></a><a href='#L1217'>1217</a>
1283
+ <a name='L1218'></a><a href='#L1218'>1218</a>
1284
+ <a name='L1219'></a><a href='#L1219'>1219</a>
1285
+ <a name='L1220'></a><a href='#L1220'>1220</a>
1286
+ <a name='L1221'></a><a href='#L1221'>1221</a>
1287
+ <a name='L1222'></a><a href='#L1222'>1222</a>
1288
+ <a name='L1223'></a><a href='#L1223'>1223</a>
1289
+ <a name='L1224'></a><a href='#L1224'>1224</a>
1290
+ <a name='L1225'></a><a href='#L1225'>1225</a>
1291
+ <a name='L1226'></a><a href='#L1226'>1226</a>
1292
+ <a name='L1227'></a><a href='#L1227'>1227</a>
1293
+ <a name='L1228'></a><a href='#L1228'>1228</a>
1294
+ <a name='L1229'></a><a href='#L1229'>1229</a>
1295
+ <a name='L1230'></a><a href='#L1230'>1230</a>
1296
+ <a name='L1231'></a><a href='#L1231'>1231</a>
1297
+ <a name='L1232'></a><a href='#L1232'>1232</a>
1298
+ <a name='L1233'></a><a href='#L1233'>1233</a>
1299
+ <a name='L1234'></a><a href='#L1234'>1234</a>
1300
+ <a name='L1235'></a><a href='#L1235'>1235</a>
1301
+ <a name='L1236'></a><a href='#L1236'>1236</a>
1302
+ <a name='L1237'></a><a href='#L1237'>1237</a>
1303
+ <a name='L1238'></a><a href='#L1238'>1238</a>
1304
+ <a name='L1239'></a><a href='#L1239'>1239</a>
1305
+ <a name='L1240'></a><a href='#L1240'>1240</a>
1306
+ <a name='L1241'></a><a href='#L1241'>1241</a>
1307
+ <a name='L1242'></a><a href='#L1242'>1242</a>
1308
+ <a name='L1243'></a><a href='#L1243'>1243</a>
1309
+ <a name='L1244'></a><a href='#L1244'>1244</a>
1310
+ <a name='L1245'></a><a href='#L1245'>1245</a>
1311
+ <a name='L1246'></a><a href='#L1246'>1246</a>
1312
+ <a name='L1247'></a><a href='#L1247'>1247</a>
1313
+ <a name='L1248'></a><a href='#L1248'>1248</a>
1314
+ <a name='L1249'></a><a href='#L1249'>1249</a>
1315
+ <a name='L1250'></a><a href='#L1250'>1250</a>
1316
+ <a name='L1251'></a><a href='#L1251'>1251</a>
1317
+ <a name='L1252'></a><a href='#L1252'>1252</a>
1318
+ <a name='L1253'></a><a href='#L1253'>1253</a>
1319
+ <a name='L1254'></a><a href='#L1254'>1254</a>
1320
+ <a name='L1255'></a><a href='#L1255'>1255</a>
1321
+ <a name='L1256'></a><a href='#L1256'>1256</a>
1322
+ <a name='L1257'></a><a href='#L1257'>1257</a>
1323
+ <a name='L1258'></a><a href='#L1258'>1258</a>
1324
+ <a name='L1259'></a><a href='#L1259'>1259</a>
1325
+ <a name='L1260'></a><a href='#L1260'>1260</a>
1326
+ <a name='L1261'></a><a href='#L1261'>1261</a>
1327
+ <a name='L1262'></a><a href='#L1262'>1262</a>
1328
+ <a name='L1263'></a><a href='#L1263'>1263</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
1329
+ <span class="cline-any cline-neutral">&nbsp;</span>
1330
+ <span class="cline-any cline-neutral">&nbsp;</span>
1331
+ <span class="cline-any cline-neutral">&nbsp;</span>
1332
+ <span class="cline-any cline-neutral">&nbsp;</span>
1333
+ <span class="cline-any cline-neutral">&nbsp;</span>
1334
+ <span class="cline-any cline-neutral">&nbsp;</span>
1335
+ <span class="cline-any cline-neutral">&nbsp;</span>
1336
+ <span class="cline-any cline-neutral">&nbsp;</span>
1337
+ <span class="cline-any cline-neutral">&nbsp;</span>
1338
+ <span class="cline-any cline-neutral">&nbsp;</span>
1339
+ <span class="cline-any cline-neutral">&nbsp;</span>
1340
+ <span class="cline-any cline-neutral">&nbsp;</span>
1341
+ <span class="cline-any cline-neutral">&nbsp;</span>
1342
+ <span class="cline-any cline-neutral">&nbsp;</span>
1343
+ <span class="cline-any cline-neutral">&nbsp;</span>
1344
+ <span class="cline-any cline-neutral">&nbsp;</span>
1345
+ <span class="cline-any cline-neutral">&nbsp;</span>
1346
+ <span class="cline-any cline-neutral">&nbsp;</span>
1347
+ <span class="cline-any cline-neutral">&nbsp;</span>
1348
+ <span class="cline-any cline-neutral">&nbsp;</span>
1349
+ <span class="cline-any cline-neutral">&nbsp;</span>
1350
+ <span class="cline-any cline-neutral">&nbsp;</span>
1351
+ <span class="cline-any cline-neutral">&nbsp;</span>
1352
+ <span class="cline-any cline-neutral">&nbsp;</span>
1353
+ <span class="cline-any cline-neutral">&nbsp;</span>
1354
+ <span class="cline-any cline-neutral">&nbsp;</span>
1355
+ <span class="cline-any cline-neutral">&nbsp;</span>
1356
+ <span class="cline-any cline-neutral">&nbsp;</span>
1357
+ <span class="cline-any cline-neutral">&nbsp;</span>
1358
+ <span class="cline-any cline-neutral">&nbsp;</span>
1359
+ <span class="cline-any cline-neutral">&nbsp;</span>
1360
+ <span class="cline-any cline-neutral">&nbsp;</span>
1361
+ <span class="cline-any cline-neutral">&nbsp;</span>
1362
+ <span class="cline-any cline-neutral">&nbsp;</span>
1363
+ <span class="cline-any cline-neutral">&nbsp;</span>
1364
+ <span class="cline-any cline-neutral">&nbsp;</span>
1365
+ <span class="cline-any cline-neutral">&nbsp;</span>
1366
+ <span class="cline-any cline-neutral">&nbsp;</span>
1367
+ <span class="cline-any cline-neutral">&nbsp;</span>
1368
+ <span class="cline-any cline-neutral">&nbsp;</span>
1369
+ <span class="cline-any cline-neutral">&nbsp;</span>
1370
+ <span class="cline-any cline-neutral">&nbsp;</span>
1371
+ <span class="cline-any cline-neutral">&nbsp;</span>
1372
+ <span class="cline-any cline-neutral">&nbsp;</span>
1373
+ <span class="cline-any cline-neutral">&nbsp;</span>
1374
+ <span class="cline-any cline-neutral">&nbsp;</span>
1375
+ <span class="cline-any cline-neutral">&nbsp;</span>
1376
+ <span class="cline-any cline-neutral">&nbsp;</span>
1377
+ <span class="cline-any cline-neutral">&nbsp;</span>
1378
+ <span class="cline-any cline-neutral">&nbsp;</span>
1379
+ <span class="cline-any cline-neutral">&nbsp;</span>
1380
+ <span class="cline-any cline-neutral">&nbsp;</span>
1381
+ <span class="cline-any cline-neutral">&nbsp;</span>
1382
+ <span class="cline-any cline-neutral">&nbsp;</span>
1383
+ <span class="cline-any cline-neutral">&nbsp;</span>
1384
+ <span class="cline-any cline-neutral">&nbsp;</span>
1385
+ <span class="cline-any cline-yes">1x</span>
1386
+ <span class="cline-any cline-neutral">&nbsp;</span>
1387
+ <span class="cline-any cline-neutral">&nbsp;</span>
1388
+ <span class="cline-any cline-neutral">&nbsp;</span>
1389
+ <span class="cline-any cline-neutral">&nbsp;</span>
1390
+ <span class="cline-any cline-neutral">&nbsp;</span>
1391
+ <span class="cline-any cline-neutral">&nbsp;</span>
1392
+ <span class="cline-any cline-neutral">&nbsp;</span>
1393
+ <span class="cline-any cline-neutral">&nbsp;</span>
1394
+ <span class="cline-any cline-neutral">&nbsp;</span>
1395
+ <span class="cline-any cline-yes">1x</span>
1396
+ <span class="cline-any cline-yes">1x</span>
1397
+ <span class="cline-any cline-yes">1x</span>
1398
+ <span class="cline-any cline-yes">1x</span>
1399
+ <span class="cline-any cline-yes">1x</span>
1400
+ <span class="cline-any cline-yes">1x</span>
1401
+ <span class="cline-any cline-yes">1x</span>
1402
+ <span class="cline-any cline-yes">1x</span>
1403
+ <span class="cline-any cline-yes">1x</span>
1404
+ <span class="cline-any cline-yes">1x</span>
1405
+ <span class="cline-any cline-yes">1x</span>
1406
+ <span class="cline-any cline-yes">1x</span>
1407
+ <span class="cline-any cline-neutral">&nbsp;</span>
1408
+ <span class="cline-any cline-neutral">&nbsp;</span>
1409
+ <span class="cline-any cline-neutral">&nbsp;</span>
1410
+ <span class="cline-any cline-neutral">&nbsp;</span>
1411
+ <span class="cline-any cline-neutral">&nbsp;</span>
1412
+ <span class="cline-any cline-neutral">&nbsp;</span>
1413
+ <span class="cline-any cline-neutral">&nbsp;</span>
1414
+ <span class="cline-any cline-neutral">&nbsp;</span>
1415
+ <span class="cline-any cline-yes">1x</span>
1416
+ <span class="cline-any cline-yes">1x</span>
1417
+ <span class="cline-any cline-neutral">&nbsp;</span>
1418
+ <span class="cline-any cline-yes">1x</span>
1419
+ <span class="cline-any cline-neutral">&nbsp;</span>
1420
+ <span class="cline-any cline-yes">1x</span>
1421
+ <span class="cline-any cline-yes">1x</span>
1422
+ <span class="cline-any cline-yes">1x</span>
1423
+ <span class="cline-any cline-neutral">&nbsp;</span>
1424
+ <span class="cline-any cline-yes">1x</span>
1425
+ <span class="cline-any cline-yes">1x</span>
1426
+ <span class="cline-any cline-neutral">&nbsp;</span>
1427
+ <span class="cline-any cline-neutral">&nbsp;</span>
1428
+ <span class="cline-any cline-yes">1x</span>
1429
+ <span class="cline-any cline-yes">1x</span>
1430
+ <span class="cline-any cline-yes">1x</span>
1431
+ <span class="cline-any cline-yes">1x</span>
1432
+ <span class="cline-any cline-neutral">&nbsp;</span>
1433
+ <span class="cline-any cline-neutral">&nbsp;</span>
1434
+ <span class="cline-any cline-neutral">&nbsp;</span>
1435
+ <span class="cline-any cline-neutral">&nbsp;</span>
1436
+ <span class="cline-any cline-neutral">&nbsp;</span>
1437
+ <span class="cline-any cline-neutral">&nbsp;</span>
1438
+ <span class="cline-any cline-neutral">&nbsp;</span>
1439
+ <span class="cline-any cline-yes">1x</span>
1440
+ <span class="cline-any cline-neutral">&nbsp;</span>
1441
+ <span class="cline-any cline-yes">1x</span>
1442
+ <span class="cline-any cline-neutral">&nbsp;</span>
1443
+ <span class="cline-any cline-neutral">&nbsp;</span>
1444
+ <span class="cline-any cline-neutral">&nbsp;</span>
1445
+ <span class="cline-any cline-neutral">&nbsp;</span>
1446
+ <span class="cline-any cline-yes">1x</span>
1447
+ <span class="cline-any cline-yes">1x</span>
1448
+ <span class="cline-any cline-neutral">&nbsp;</span>
1449
+ <span class="cline-any cline-neutral">&nbsp;</span>
1450
+ <span class="cline-any cline-yes">1x</span>
1451
+ <span class="cline-any cline-neutral">&nbsp;</span>
1452
+ <span class="cline-any cline-neutral">&nbsp;</span>
1453
+ <span class="cline-any cline-yes">1x</span>
1454
+ <span class="cline-any cline-neutral">&nbsp;</span>
1455
+ <span class="cline-any cline-neutral">&nbsp;</span>
1456
+ <span class="cline-any cline-yes">1x</span>
1457
+ <span class="cline-any cline-yes">1x</span>
1458
+ <span class="cline-any cline-neutral">&nbsp;</span>
1459
+ <span class="cline-any cline-neutral">&nbsp;</span>
1460
+ <span class="cline-any cline-neutral">&nbsp;</span>
1461
+ <span class="cline-any cline-neutral">&nbsp;</span>
1462
+ <span class="cline-any cline-neutral">&nbsp;</span>
1463
+ <span class="cline-any cline-neutral">&nbsp;</span>
1464
+ <span class="cline-any cline-neutral">&nbsp;</span>
1465
+ <span class="cline-any cline-neutral">&nbsp;</span>
1466
+ <span class="cline-any cline-yes">1x</span>
1467
+ <span class="cline-any cline-yes">1x</span>
1468
+ <span class="cline-any cline-neutral">&nbsp;</span>
1469
+ <span class="cline-any cline-yes">1x</span>
1470
+ <span class="cline-any cline-neutral">&nbsp;</span>
1471
+ <span class="cline-any cline-neutral">&nbsp;</span>
1472
+ <span class="cline-any cline-neutral">&nbsp;</span>
1473
+ <span class="cline-any cline-neutral">&nbsp;</span>
1474
+ <span class="cline-any cline-neutral">&nbsp;</span>
1475
+ <span class="cline-any cline-neutral">&nbsp;</span>
1476
+ <span class="cline-any cline-neutral">&nbsp;</span>
1477
+ <span class="cline-any cline-neutral">&nbsp;</span>
1478
+ <span class="cline-any cline-neutral">&nbsp;</span>
1479
+ <span class="cline-any cline-neutral">&nbsp;</span>
1480
+ <span class="cline-any cline-neutral">&nbsp;</span>
1481
+ <span class="cline-any cline-neutral">&nbsp;</span>
1482
+ <span class="cline-any cline-neutral">&nbsp;</span>
1483
+ <span class="cline-any cline-neutral">&nbsp;</span>
1484
+ <span class="cline-any cline-neutral">&nbsp;</span>
1485
+ <span class="cline-any cline-yes">1x</span>
1486
+ <span class="cline-any cline-yes">1x</span>
1487
+ <span class="cline-any cline-neutral">&nbsp;</span>
1488
+ <span class="cline-any cline-neutral">&nbsp;</span>
1489
+ <span class="cline-any cline-neutral">&nbsp;</span>
1490
+ <span class="cline-any cline-yes">1x</span>
1491
+ <span class="cline-any cline-neutral">&nbsp;</span>
1492
+ <span class="cline-any cline-neutral">&nbsp;</span>
1493
+ <span class="cline-any cline-neutral">&nbsp;</span>
1494
+ <span class="cline-any cline-neutral">&nbsp;</span>
1495
+ <span class="cline-any cline-neutral">&nbsp;</span>
1496
+ <span class="cline-any cline-neutral">&nbsp;</span>
1497
+ <span class="cline-any cline-neutral">&nbsp;</span>
1498
+ <span class="cline-any cline-neutral">&nbsp;</span>
1499
+ <span class="cline-any cline-yes">1x</span>
1500
+ <span class="cline-any cline-neutral">&nbsp;</span>
1501
+ <span class="cline-any cline-yes">1x</span>
1502
+ <span class="cline-any cline-neutral">&nbsp;</span>
1503
+ <span class="cline-any cline-neutral">&nbsp;</span>
1504
+ <span class="cline-any cline-neutral">&nbsp;</span>
1505
+ <span class="cline-any cline-yes">1x</span>
1506
+ <span class="cline-any cline-yes">1x</span>
1507
+ <span class="cline-any cline-yes">1x</span>
1508
+ <span class="cline-any cline-yes">1x</span>
1509
+ <span class="cline-any cline-yes">1x</span>
1510
+ <span class="cline-any cline-yes">1x</span>
1511
+ <span class="cline-any cline-yes">1x</span>
1512
+ <span class="cline-any cline-yes">1x</span>
1513
+ <span class="cline-any cline-yes">1x</span>
1514
+ <span class="cline-any cline-yes">1x</span>
1515
+ <span class="cline-any cline-yes">1x</span>
1516
+ <span class="cline-any cline-yes">1x</span>
1517
+ <span class="cline-any cline-yes">1x</span>
1518
+ <span class="cline-any cline-neutral">&nbsp;</span>
1519
+ <span class="cline-any cline-neutral">&nbsp;</span>
1520
+ <span class="cline-any cline-yes">1x</span>
1521
+ <span class="cline-any cline-no">&nbsp;</span>
1522
+ <span class="cline-any cline-neutral">&nbsp;</span>
1523
+ <span class="cline-any cline-neutral">&nbsp;</span>
1524
+ <span class="cline-any cline-yes">1x</span>
1525
+ <span class="cline-any cline-neutral">&nbsp;</span>
1526
+ <span class="cline-any cline-yes">1x</span>
1527
+ <span class="cline-any cline-yes">1x</span>
1528
+ <span class="cline-any cline-neutral">&nbsp;</span>
1529
+ <span class="cline-any cline-neutral">&nbsp;</span>
1530
+ <span class="cline-any cline-neutral">&nbsp;</span>
1531
+ <span class="cline-any cline-neutral">&nbsp;</span>
1532
+ <span class="cline-any cline-neutral">&nbsp;</span>
1533
+ <span class="cline-any cline-neutral">&nbsp;</span>
1534
+ <span class="cline-any cline-neutral">&nbsp;</span>
1535
+ <span class="cline-any cline-neutral">&nbsp;</span>
1536
+ <span class="cline-any cline-yes">1x</span>
1537
+ <span class="cline-any cline-neutral">&nbsp;</span>
1538
+ <span class="cline-any cline-neutral">&nbsp;</span>
1539
+ <span class="cline-any cline-neutral">&nbsp;</span>
1540
+ <span class="cline-any cline-neutral">&nbsp;</span>
1541
+ <span class="cline-any cline-yes">1x</span>
1542
+ <span class="cline-any cline-yes">1x</span>
1543
+ <span class="cline-any cline-neutral">&nbsp;</span>
1544
+ <span class="cline-any cline-neutral">&nbsp;</span>
1545
+ <span class="cline-any cline-neutral">&nbsp;</span>
1546
+ <span class="cline-any cline-neutral">&nbsp;</span>
1547
+ <span class="cline-any cline-neutral">&nbsp;</span>
1548
+ <span class="cline-any cline-neutral">&nbsp;</span>
1549
+ <span class="cline-any cline-neutral">&nbsp;</span>
1550
+ <span class="cline-any cline-neutral">&nbsp;</span>
1551
+ <span class="cline-any cline-neutral">&nbsp;</span>
1552
+ <span class="cline-any cline-neutral">&nbsp;</span>
1553
+ <span class="cline-any cline-neutral">&nbsp;</span>
1554
+ <span class="cline-any cline-neutral">&nbsp;</span>
1555
+ <span class="cline-any cline-neutral">&nbsp;</span>
1556
+ <span class="cline-any cline-neutral">&nbsp;</span>
1557
+ <span class="cline-any cline-neutral">&nbsp;</span>
1558
+ <span class="cline-any cline-neutral">&nbsp;</span>
1559
+ <span class="cline-any cline-neutral">&nbsp;</span>
1560
+ <span class="cline-any cline-neutral">&nbsp;</span>
1561
+ <span class="cline-any cline-neutral">&nbsp;</span>
1562
+ <span class="cline-any cline-neutral">&nbsp;</span>
1563
+ <span class="cline-any cline-neutral">&nbsp;</span>
1564
+ <span class="cline-any cline-neutral">&nbsp;</span>
1565
+ <span class="cline-any cline-neutral">&nbsp;</span>
1566
+ <span class="cline-any cline-neutral">&nbsp;</span>
1567
+ <span class="cline-any cline-yes">1x</span>
1568
+ <span class="cline-any cline-neutral">&nbsp;</span>
1569
+ <span class="cline-any cline-neutral">&nbsp;</span>
1570
+ <span class="cline-any cline-neutral">&nbsp;</span>
1571
+ <span class="cline-any cline-neutral">&nbsp;</span>
1572
+ <span class="cline-any cline-neutral">&nbsp;</span>
1573
+ <span class="cline-any cline-neutral">&nbsp;</span>
1574
+ <span class="cline-any cline-yes">1x</span>
1575
+ <span class="cline-any cline-neutral">&nbsp;</span>
1576
+ <span class="cline-any cline-neutral">&nbsp;</span>
1577
+ <span class="cline-any cline-neutral">&nbsp;</span>
1578
+ <span class="cline-any cline-neutral">&nbsp;</span>
1579
+ <span class="cline-any cline-neutral">&nbsp;</span>
1580
+ <span class="cline-any cline-neutral">&nbsp;</span>
1581
+ <span class="cline-any cline-neutral">&nbsp;</span>
1582
+ <span class="cline-any cline-neutral">&nbsp;</span>
1583
+ <span class="cline-any cline-neutral">&nbsp;</span>
1584
+ <span class="cline-any cline-neutral">&nbsp;</span>
1585
+ <span class="cline-any cline-neutral">&nbsp;</span>
1586
+ <span class="cline-any cline-neutral">&nbsp;</span>
1587
+ <span class="cline-any cline-neutral">&nbsp;</span>
1588
+ <span class="cline-any cline-neutral">&nbsp;</span>
1589
+ <span class="cline-any cline-neutral">&nbsp;</span>
1590
+ <span class="cline-any cline-neutral">&nbsp;</span>
1591
+ <span class="cline-any cline-yes">1x</span>
1592
+ <span class="cline-any cline-neutral">&nbsp;</span>
1593
+ <span class="cline-any cline-neutral">&nbsp;</span>
1594
+ <span class="cline-any cline-neutral">&nbsp;</span>
1595
+ <span class="cline-any cline-neutral">&nbsp;</span>
1596
+ <span class="cline-any cline-neutral">&nbsp;</span>
1597
+ <span class="cline-any cline-neutral">&nbsp;</span>
1598
+ <span class="cline-any cline-neutral">&nbsp;</span>
1599
+ <span class="cline-any cline-yes">1x</span>
1600
+ <span class="cline-any cline-yes">1x</span>
1601
+ <span class="cline-any cline-yes">1x</span>
1602
+ <span class="cline-any cline-yes">1x</span>
1603
+ <span class="cline-any cline-neutral">&nbsp;</span>
1604
+ <span class="cline-any cline-neutral">&nbsp;</span>
1605
+ <span class="cline-any cline-yes">1x</span>
1606
+ <span class="cline-any cline-no">&nbsp;</span>
1607
+ <span class="cline-any cline-neutral">&nbsp;</span>
1608
+ <span class="cline-any cline-neutral">&nbsp;</span>
1609
+ <span class="cline-any cline-neutral">&nbsp;</span>
1610
+ <span class="cline-any cline-neutral">&nbsp;</span>
1611
+ <span class="cline-any cline-no">&nbsp;</span>
1612
+ <span class="cline-any cline-no">&nbsp;</span>
1613
+ <span class="cline-any cline-neutral">&nbsp;</span>
1614
+ <span class="cline-any cline-neutral">&nbsp;</span>
1615
+ <span class="cline-any cline-neutral">&nbsp;</span>
1616
+ <span class="cline-any cline-neutral">&nbsp;</span>
1617
+ <span class="cline-any cline-no">&nbsp;</span>
1618
+ <span class="cline-any cline-no">&nbsp;</span>
1619
+ <span class="cline-any cline-no">&nbsp;</span>
1620
+ <span class="cline-any cline-neutral">&nbsp;</span>
1621
+ <span class="cline-any cline-no">&nbsp;</span>
1622
+ <span class="cline-any cline-no">&nbsp;</span>
1623
+ <span class="cline-any cline-no">&nbsp;</span>
1624
+ <span class="cline-any cline-neutral">&nbsp;</span>
1625
+ <span class="cline-any cline-no">&nbsp;</span>
1626
+ <span class="cline-any cline-neutral">&nbsp;</span>
1627
+ <span class="cline-any cline-neutral">&nbsp;</span>
1628
+ <span class="cline-any cline-neutral">&nbsp;</span>
1629
+ <span class="cline-any cline-yes">1x</span>
1630
+ <span class="cline-any cline-no">&nbsp;</span>
1631
+ <span class="cline-any cline-neutral">&nbsp;</span>
1632
+ <span class="cline-any cline-neutral">&nbsp;</span>
1633
+ <span class="cline-any cline-yes">1x</span>
1634
+ <span class="cline-any cline-no">&nbsp;</span>
1635
+ <span class="cline-any cline-no">&nbsp;</span>
1636
+ <span class="cline-any cline-no">&nbsp;</span>
1637
+ <span class="cline-any cline-no">&nbsp;</span>
1638
+ <span class="cline-any cline-neutral">&nbsp;</span>
1639
+ <span class="cline-any cline-no">&nbsp;</span>
1640
+ <span class="cline-any cline-neutral">&nbsp;</span>
1641
+ <span class="cline-any cline-neutral">&nbsp;</span>
1642
+ <span class="cline-any cline-neutral">&nbsp;</span>
1643
+ <span class="cline-any cline-neutral">&nbsp;</span>
1644
+ <span class="cline-any cline-no">&nbsp;</span>
1645
+ <span class="cline-any cline-no">&nbsp;</span>
1646
+ <span class="cline-any cline-neutral">&nbsp;</span>
1647
+ <span class="cline-any cline-no">&nbsp;</span>
1648
+ <span class="cline-any cline-no">&nbsp;</span>
1649
+ <span class="cline-any cline-no">&nbsp;</span>
1650
+ <span class="cline-any cline-neutral">&nbsp;</span>
1651
+ <span class="cline-any cline-neutral">&nbsp;</span>
1652
+ <span class="cline-any cline-neutral">&nbsp;</span>
1653
+ <span class="cline-any cline-yes">1x</span>
1654
+ <span class="cline-any cline-no">&nbsp;</span>
1655
+ <span class="cline-any cline-no">&nbsp;</span>
1656
+ <span class="cline-any cline-no">&nbsp;</span>
1657
+ <span class="cline-any cline-neutral">&nbsp;</span>
1658
+ <span class="cline-any cline-no">&nbsp;</span>
1659
+ <span class="cline-any cline-no">&nbsp;</span>
1660
+ <span class="cline-any cline-no">&nbsp;</span>
1661
+ <span class="cline-any cline-no">&nbsp;</span>
1662
+ <span class="cline-any cline-neutral">&nbsp;</span>
1663
+ <span class="cline-any cline-neutral">&nbsp;</span>
1664
+ <span class="cline-any cline-neutral">&nbsp;</span>
1665
+ <span class="cline-any cline-neutral">&nbsp;</span>
1666
+ <span class="cline-any cline-neutral">&nbsp;</span>
1667
+ <span class="cline-any cline-neutral">&nbsp;</span>
1668
+ <span class="cline-any cline-neutral">&nbsp;</span>
1669
+ <span class="cline-any cline-yes">1x</span>
1670
+ <span class="cline-any cline-neutral">&nbsp;</span>
1671
+ <span class="cline-any cline-no">&nbsp;</span>
1672
+ <span class="cline-any cline-no">&nbsp;</span>
1673
+ <span class="cline-any cline-neutral">&nbsp;</span>
1674
+ <span class="cline-any cline-no">&nbsp;</span>
1675
+ <span class="cline-any cline-neutral">&nbsp;</span>
1676
+ <span class="cline-any cline-no">&nbsp;</span>
1677
+ <span class="cline-any cline-neutral">&nbsp;</span>
1678
+ <span class="cline-any cline-no">&nbsp;</span>
1679
+ <span class="cline-any cline-neutral">&nbsp;</span>
1680
+ <span class="cline-any cline-neutral">&nbsp;</span>
1681
+ <span class="cline-any cline-neutral">&nbsp;</span>
1682
+ <span class="cline-any cline-neutral">&nbsp;</span>
1683
+ <span class="cline-any cline-neutral">&nbsp;</span>
1684
+ <span class="cline-any cline-neutral">&nbsp;</span>
1685
+ <span class="cline-any cline-neutral">&nbsp;</span>
1686
+ <span class="cline-any cline-neutral">&nbsp;</span>
1687
+ <span class="cline-any cline-neutral">&nbsp;</span>
1688
+ <span class="cline-any cline-no">&nbsp;</span>
1689
+ <span class="cline-any cline-no">&nbsp;</span>
1690
+ <span class="cline-any cline-no">&nbsp;</span>
1691
+ <span class="cline-any cline-no">&nbsp;</span>
1692
+ <span class="cline-any cline-no">&nbsp;</span>
1693
+ <span class="cline-any cline-neutral">&nbsp;</span>
1694
+ <span class="cline-any cline-neutral">&nbsp;</span>
1695
+ <span class="cline-any cline-neutral">&nbsp;</span>
1696
+ <span class="cline-any cline-no">&nbsp;</span>
1697
+ <span class="cline-any cline-no">&nbsp;</span>
1698
+ <span class="cline-any cline-neutral">&nbsp;</span>
1699
+ <span class="cline-any cline-neutral">&nbsp;</span>
1700
+ <span class="cline-any cline-no">&nbsp;</span>
1701
+ <span class="cline-any cline-no">&nbsp;</span>
1702
+ <span class="cline-any cline-neutral">&nbsp;</span>
1703
+ <span class="cline-any cline-neutral">&nbsp;</span>
1704
+ <span class="cline-any cline-neutral">&nbsp;</span>
1705
+ <span class="cline-any cline-neutral">&nbsp;</span>
1706
+ <span class="cline-any cline-neutral">&nbsp;</span>
1707
+ <span class="cline-any cline-neutral">&nbsp;</span>
1708
+ <span class="cline-any cline-neutral">&nbsp;</span>
1709
+ <span class="cline-any cline-yes">1x</span>
1710
+ <span class="cline-any cline-neutral">&nbsp;</span>
1711
+ <span class="cline-any cline-neutral">&nbsp;</span>
1712
+ <span class="cline-any cline-no">&nbsp;</span>
1713
+ <span class="cline-any cline-no">&nbsp;</span>
1714
+ <span class="cline-any cline-no">&nbsp;</span>
1715
+ <span class="cline-any cline-no">&nbsp;</span>
1716
+ <span class="cline-any cline-no">&nbsp;</span>
1717
+ <span class="cline-any cline-neutral">&nbsp;</span>
1718
+ <span class="cline-any cline-no">&nbsp;</span>
1719
+ <span class="cline-any cline-no">&nbsp;</span>
1720
+ <span class="cline-any cline-neutral">&nbsp;</span>
1721
+ <span class="cline-any cline-no">&nbsp;</span>
1722
+ <span class="cline-any cline-neutral">&nbsp;</span>
1723
+ <span class="cline-any cline-no">&nbsp;</span>
1724
+ <span class="cline-any cline-no">&nbsp;</span>
1725
+ <span class="cline-any cline-no">&nbsp;</span>
1726
+ <span class="cline-any cline-no">&nbsp;</span>
1727
+ <span class="cline-any cline-no">&nbsp;</span>
1728
+ <span class="cline-any cline-no">&nbsp;</span>
1729
+ <span class="cline-any cline-neutral">&nbsp;</span>
1730
+ <span class="cline-any cline-no">&nbsp;</span>
1731
+ <span class="cline-any cline-no">&nbsp;</span>
1732
+ <span class="cline-any cline-no">&nbsp;</span>
1733
+ <span class="cline-any cline-no">&nbsp;</span>
1734
+ <span class="cline-any cline-no">&nbsp;</span>
1735
+ <span class="cline-any cline-neutral">&nbsp;</span>
1736
+ <span class="cline-any cline-neutral">&nbsp;</span>
1737
+ <span class="cline-any cline-neutral">&nbsp;</span>
1738
+ <span class="cline-any cline-neutral">&nbsp;</span>
1739
+ <span class="cline-any cline-neutral">&nbsp;</span>
1740
+ <span class="cline-any cline-neutral">&nbsp;</span>
1741
+ <span class="cline-any cline-neutral">&nbsp;</span>
1742
+ <span class="cline-any cline-neutral">&nbsp;</span>
1743
+ <span class="cline-any cline-neutral">&nbsp;</span>
1744
+ <span class="cline-any cline-neutral">&nbsp;</span>
1745
+ <span class="cline-any cline-neutral">&nbsp;</span>
1746
+ <span class="cline-any cline-neutral">&nbsp;</span>
1747
+ <span class="cline-any cline-neutral">&nbsp;</span>
1748
+ <span class="cline-any cline-neutral">&nbsp;</span>
1749
+ <span class="cline-any cline-neutral">&nbsp;</span>
1750
+ <span class="cline-any cline-neutral">&nbsp;</span>
1751
+ <span class="cline-any cline-neutral">&nbsp;</span>
1752
+ <span class="cline-any cline-neutral">&nbsp;</span>
1753
+ <span class="cline-any cline-neutral">&nbsp;</span>
1754
+ <span class="cline-any cline-neutral">&nbsp;</span>
1755
+ <span class="cline-any cline-neutral">&nbsp;</span>
1756
+ <span class="cline-any cline-neutral">&nbsp;</span>
1757
+ <span class="cline-any cline-neutral">&nbsp;</span>
1758
+ <span class="cline-any cline-neutral">&nbsp;</span>
1759
+ <span class="cline-any cline-neutral">&nbsp;</span>
1760
+ <span class="cline-any cline-neutral">&nbsp;</span>
1761
+ <span class="cline-any cline-neutral">&nbsp;</span>
1762
+ <span class="cline-any cline-neutral">&nbsp;</span>
1763
+ <span class="cline-any cline-neutral">&nbsp;</span>
1764
+ <span class="cline-any cline-neutral">&nbsp;</span>
1765
+ <span class="cline-any cline-neutral">&nbsp;</span>
1766
+ <span class="cline-any cline-neutral">&nbsp;</span>
1767
+ <span class="cline-any cline-neutral">&nbsp;</span>
1768
+ <span class="cline-any cline-neutral">&nbsp;</span>
1769
+ <span class="cline-any cline-neutral">&nbsp;</span>
1770
+ <span class="cline-any cline-neutral">&nbsp;</span>
1771
+ <span class="cline-any cline-neutral">&nbsp;</span>
1772
+ <span class="cline-any cline-neutral">&nbsp;</span>
1773
+ <span class="cline-any cline-neutral">&nbsp;</span>
1774
+ <span class="cline-any cline-neutral">&nbsp;</span>
1775
+ <span class="cline-any cline-neutral">&nbsp;</span>
1776
+ <span class="cline-any cline-neutral">&nbsp;</span>
1777
+ <span class="cline-any cline-neutral">&nbsp;</span>
1778
+ <span class="cline-any cline-neutral">&nbsp;</span>
1779
+ <span class="cline-any cline-neutral">&nbsp;</span>
1780
+ <span class="cline-any cline-neutral">&nbsp;</span>
1781
+ <span class="cline-any cline-neutral">&nbsp;</span>
1782
+ <span class="cline-any cline-neutral">&nbsp;</span>
1783
+ <span class="cline-any cline-neutral">&nbsp;</span>
1784
+ <span class="cline-any cline-neutral">&nbsp;</span>
1785
+ <span class="cline-any cline-neutral">&nbsp;</span>
1786
+ <span class="cline-any cline-neutral">&nbsp;</span>
1787
+ <span class="cline-any cline-yes">1x</span>
1788
+ <span class="cline-any cline-no">&nbsp;</span>
1789
+ <span class="cline-any cline-no">&nbsp;</span>
1790
+ <span class="cline-any cline-no">&nbsp;</span>
1791
+ <span class="cline-any cline-no">&nbsp;</span>
1792
+ <span class="cline-any cline-no">&nbsp;</span>
1793
+ <span class="cline-any cline-no">&nbsp;</span>
1794
+ <span class="cline-any cline-no">&nbsp;</span>
1795
+ <span class="cline-any cline-no">&nbsp;</span>
1796
+ <span class="cline-any cline-neutral">&nbsp;</span>
1797
+ <span class="cline-any cline-neutral">&nbsp;</span>
1798
+ <span class="cline-any cline-neutral">&nbsp;</span>
1799
+ <span class="cline-any cline-neutral">&nbsp;</span>
1800
+ <span class="cline-any cline-neutral">&nbsp;</span>
1801
+ <span class="cline-any cline-neutral">&nbsp;</span>
1802
+ <span class="cline-any cline-neutral">&nbsp;</span>
1803
+ <span class="cline-any cline-neutral">&nbsp;</span>
1804
+ <span class="cline-any cline-neutral">&nbsp;</span>
1805
+ <span class="cline-any cline-neutral">&nbsp;</span>
1806
+ <span class="cline-any cline-neutral">&nbsp;</span>
1807
+ <span class="cline-any cline-neutral">&nbsp;</span>
1808
+ <span class="cline-any cline-neutral">&nbsp;</span>
1809
+ <span class="cline-any cline-neutral">&nbsp;</span>
1810
+ <span class="cline-any cline-neutral">&nbsp;</span>
1811
+ <span class="cline-any cline-neutral">&nbsp;</span>
1812
+ <span class="cline-any cline-neutral">&nbsp;</span>
1813
+ <span class="cline-any cline-neutral">&nbsp;</span>
1814
+ <span class="cline-any cline-neutral">&nbsp;</span>
1815
+ <span class="cline-any cline-neutral">&nbsp;</span>
1816
+ <span class="cline-any cline-no">&nbsp;</span>
1817
+ <span class="cline-any cline-neutral">&nbsp;</span>
1818
+ <span class="cline-any cline-neutral">&nbsp;</span>
1819
+ <span class="cline-any cline-neutral">&nbsp;</span>
1820
+ <span class="cline-any cline-neutral">&nbsp;</span>
1821
+ <span class="cline-any cline-neutral">&nbsp;</span>
1822
+ <span class="cline-any cline-neutral">&nbsp;</span>
1823
+ <span class="cline-any cline-neutral">&nbsp;</span>
1824
+ <span class="cline-any cline-neutral">&nbsp;</span>
1825
+ <span class="cline-any cline-neutral">&nbsp;</span>
1826
+ <span class="cline-any cline-neutral">&nbsp;</span>
1827
+ <span class="cline-any cline-neutral">&nbsp;</span>
1828
+ <span class="cline-any cline-neutral">&nbsp;</span>
1829
+ <span class="cline-any cline-neutral">&nbsp;</span>
1830
+ <span class="cline-any cline-neutral">&nbsp;</span>
1831
+ <span class="cline-any cline-neutral">&nbsp;</span>
1832
+ <span class="cline-any cline-neutral">&nbsp;</span>
1833
+ <span class="cline-any cline-neutral">&nbsp;</span>
1834
+ <span class="cline-any cline-neutral">&nbsp;</span>
1835
+ <span class="cline-any cline-neutral">&nbsp;</span>
1836
+ <span class="cline-any cline-neutral">&nbsp;</span>
1837
+ <span class="cline-any cline-neutral">&nbsp;</span>
1838
+ <span class="cline-any cline-neutral">&nbsp;</span>
1839
+ <span class="cline-any cline-neutral">&nbsp;</span>
1840
+ <span class="cline-any cline-neutral">&nbsp;</span>
1841
+ <span class="cline-any cline-neutral">&nbsp;</span>
1842
+ <span class="cline-any cline-neutral">&nbsp;</span>
1843
+ <span class="cline-any cline-neutral">&nbsp;</span>
1844
+ <span class="cline-any cline-neutral">&nbsp;</span>
1845
+ <span class="cline-any cline-yes">1x</span>
1846
+ <span class="cline-any cline-neutral">&nbsp;</span>
1847
+ <span class="cline-any cline-no">&nbsp;</span>
1848
+ <span class="cline-any cline-no">&nbsp;</span>
1849
+ <span class="cline-any cline-no">&nbsp;</span>
1850
+ <span class="cline-any cline-neutral">&nbsp;</span>
1851
+ <span class="cline-any cline-neutral">&nbsp;</span>
1852
+ <span class="cline-any cline-no">&nbsp;</span>
1853
+ <span class="cline-any cline-no">&nbsp;</span>
1854
+ <span class="cline-any cline-neutral">&nbsp;</span>
1855
+ <span class="cline-any cline-neutral">&nbsp;</span>
1856
+ <span class="cline-any cline-no">&nbsp;</span>
1857
+ <span class="cline-any cline-neutral">&nbsp;</span>
1858
+ <span class="cline-any cline-neutral">&nbsp;</span>
1859
+ <span class="cline-any cline-neutral">&nbsp;</span>
1860
+ <span class="cline-any cline-neutral">&nbsp;</span>
1861
+ <span class="cline-any cline-neutral">&nbsp;</span>
1862
+ <span class="cline-any cline-yes">1x</span>
1863
+ <span class="cline-any cline-no">&nbsp;</span>
1864
+ <span class="cline-any cline-no">&nbsp;</span>
1865
+ <span class="cline-any cline-no">&nbsp;</span>
1866
+ <span class="cline-any cline-no">&nbsp;</span>
1867
+ <span class="cline-any cline-no">&nbsp;</span>
1868
+ <span class="cline-any cline-no">&nbsp;</span>
1869
+ <span class="cline-any cline-neutral">&nbsp;</span>
1870
+ <span class="cline-any cline-no">&nbsp;</span>
1871
+ <span class="cline-any cline-neutral">&nbsp;</span>
1872
+ <span class="cline-any cline-neutral">&nbsp;</span>
1873
+ <span class="cline-any cline-neutral">&nbsp;</span>
1874
+ <span class="cline-any cline-neutral">&nbsp;</span>
1875
+ <span class="cline-any cline-neutral">&nbsp;</span>
1876
+ <span class="cline-any cline-neutral">&nbsp;</span>
1877
+ <span class="cline-any cline-neutral">&nbsp;</span>
1878
+ <span class="cline-any cline-neutral">&nbsp;</span>
1879
+ <span class="cline-any cline-neutral">&nbsp;</span>
1880
+ <span class="cline-any cline-neutral">&nbsp;</span>
1881
+ <span class="cline-any cline-yes">1x</span>
1882
+ <span class="cline-any cline-no">&nbsp;</span>
1883
+ <span class="cline-any cline-no">&nbsp;</span>
1884
+ <span class="cline-any cline-neutral">&nbsp;</span>
1885
+ <span class="cline-any cline-no">&nbsp;</span>
1886
+ <span class="cline-any cline-no">&nbsp;</span>
1887
+ <span class="cline-any cline-no">&nbsp;</span>
1888
+ <span class="cline-any cline-no">&nbsp;</span>
1889
+ <span class="cline-any cline-no">&nbsp;</span>
1890
+ <span class="cline-any cline-no">&nbsp;</span>
1891
+ <span class="cline-any cline-no">&nbsp;</span>
1892
+ <span class="cline-any cline-no">&nbsp;</span>
1893
+ <span class="cline-any cline-no">&nbsp;</span>
1894
+ <span class="cline-any cline-neutral">&nbsp;</span>
1895
+ <span class="cline-any cline-neutral">&nbsp;</span>
1896
+ <span class="cline-any cline-neutral">&nbsp;</span>
1897
+ <span class="cline-any cline-neutral">&nbsp;</span>
1898
+ <span class="cline-any cline-neutral">&nbsp;</span>
1899
+ <span class="cline-any cline-neutral">&nbsp;</span>
1900
+ <span class="cline-any cline-neutral">&nbsp;</span>
1901
+ <span class="cline-any cline-no">&nbsp;</span>
1902
+ <span class="cline-any cline-no">&nbsp;</span>
1903
+ <span class="cline-any cline-no">&nbsp;</span>
1904
+ <span class="cline-any cline-neutral">&nbsp;</span>
1905
+ <span class="cline-any cline-neutral">&nbsp;</span>
1906
+ <span class="cline-any cline-no">&nbsp;</span>
1907
+ <span class="cline-any cline-neutral">&nbsp;</span>
1908
+ <span class="cline-any cline-no">&nbsp;</span>
1909
+ <span class="cline-any cline-no">&nbsp;</span>
1910
+ <span class="cline-any cline-neutral">&nbsp;</span>
1911
+ <span class="cline-any cline-neutral">&nbsp;</span>
1912
+ <span class="cline-any cline-no">&nbsp;</span>
1913
+ <span class="cline-any cline-no">&nbsp;</span>
1914
+ <span class="cline-any cline-no">&nbsp;</span>
1915
+ <span class="cline-any cline-neutral">&nbsp;</span>
1916
+ <span class="cline-any cline-no">&nbsp;</span>
1917
+ <span class="cline-any cline-neutral">&nbsp;</span>
1918
+ <span class="cline-any cline-no">&nbsp;</span>
1919
+ <span class="cline-any cline-neutral">&nbsp;</span>
1920
+ <span class="cline-any cline-neutral">&nbsp;</span>
1921
+ <span class="cline-any cline-neutral">&nbsp;</span>
1922
+ <span class="cline-any cline-neutral">&nbsp;</span>
1923
+ <span class="cline-any cline-no">&nbsp;</span>
1924
+ <span class="cline-any cline-no">&nbsp;</span>
1925
+ <span class="cline-any cline-no">&nbsp;</span>
1926
+ <span class="cline-any cline-neutral">&nbsp;</span>
1927
+ <span class="cline-any cline-neutral">&nbsp;</span>
1928
+ <span class="cline-any cline-neutral">&nbsp;</span>
1929
+ <span class="cline-any cline-neutral">&nbsp;</span>
1930
+ <span class="cline-any cline-neutral">&nbsp;</span>
1931
+ <span class="cline-any cline-no">&nbsp;</span>
1932
+ <span class="cline-any cline-neutral">&nbsp;</span>
1933
+ <span class="cline-any cline-neutral">&nbsp;</span>
1934
+ <span class="cline-any cline-no">&nbsp;</span>
1935
+ <span class="cline-any cline-no">&nbsp;</span>
1936
+ <span class="cline-any cline-neutral">&nbsp;</span>
1937
+ <span class="cline-any cline-neutral">&nbsp;</span>
1938
+ <span class="cline-any cline-neutral">&nbsp;</span>
1939
+ <span class="cline-any cline-neutral">&nbsp;</span>
1940
+ <span class="cline-any cline-neutral">&nbsp;</span>
1941
+ <span class="cline-any cline-neutral">&nbsp;</span>
1942
+ <span class="cline-any cline-neutral">&nbsp;</span>
1943
+ <span class="cline-any cline-neutral">&nbsp;</span>
1944
+ <span class="cline-any cline-yes">1x</span>
1945
+ <span class="cline-any cline-no">&nbsp;</span>
1946
+ <span class="cline-any cline-no">&nbsp;</span>
1947
+ <span class="cline-any cline-no">&nbsp;</span>
1948
+ <span class="cline-any cline-no">&nbsp;</span>
1949
+ <span class="cline-any cline-no">&nbsp;</span>
1950
+ <span class="cline-any cline-no">&nbsp;</span>
1951
+ <span class="cline-any cline-neutral">&nbsp;</span>
1952
+ <span class="cline-any cline-neutral">&nbsp;</span>
1953
+ <span class="cline-any cline-neutral">&nbsp;</span>
1954
+ <span class="cline-any cline-neutral">&nbsp;</span>
1955
+ <span class="cline-any cline-neutral">&nbsp;</span>
1956
+ <span class="cline-any cline-neutral">&nbsp;</span>
1957
+ <span class="cline-any cline-yes">1x</span>
1958
+ <span class="cline-any cline-no">&nbsp;</span>
1959
+ <span class="cline-any cline-no">&nbsp;</span>
1960
+ <span class="cline-any cline-neutral">&nbsp;</span>
1961
+ <span class="cline-any cline-no">&nbsp;</span>
1962
+ <span class="cline-any cline-neutral">&nbsp;</span>
1963
+ <span class="cline-any cline-neutral">&nbsp;</span>
1964
+ <span class="cline-any cline-neutral">&nbsp;</span>
1965
+ <span class="cline-any cline-neutral">&nbsp;</span>
1966
+ <span class="cline-any cline-yes">1x</span>
1967
+ <span class="cline-any cline-no">&nbsp;</span>
1968
+ <span class="cline-any cline-no">&nbsp;</span>
1969
+ <span class="cline-any cline-no">&nbsp;</span>
1970
+ <span class="cline-any cline-no">&nbsp;</span>
1971
+ <span class="cline-any cline-no">&nbsp;</span>
1972
+ <span class="cline-any cline-no">&nbsp;</span>
1973
+ <span class="cline-any cline-neutral">&nbsp;</span>
1974
+ <span class="cline-any cline-no">&nbsp;</span>
1975
+ <span class="cline-any cline-no">&nbsp;</span>
1976
+ <span class="cline-any cline-neutral">&nbsp;</span>
1977
+ <span class="cline-any cline-no">&nbsp;</span>
1978
+ <span class="cline-any cline-no">&nbsp;</span>
1979
+ <span class="cline-any cline-neutral">&nbsp;</span>
1980
+ <span class="cline-any cline-no">&nbsp;</span>
1981
+ <span class="cline-any cline-no">&nbsp;</span>
1982
+ <span class="cline-any cline-no">&nbsp;</span>
1983
+ <span class="cline-any cline-no">&nbsp;</span>
1984
+ <span class="cline-any cline-no">&nbsp;</span>
1985
+ <span class="cline-any cline-no">&nbsp;</span>
1986
+ <span class="cline-any cline-neutral">&nbsp;</span>
1987
+ <span class="cline-any cline-neutral">&nbsp;</span>
1988
+ <span class="cline-any cline-no">&nbsp;</span>
1989
+ <span class="cline-any cline-no">&nbsp;</span>
1990
+ <span class="cline-any cline-neutral">&nbsp;</span>
1991
+ <span class="cline-any cline-neutral">&nbsp;</span>
1992
+ <span class="cline-any cline-neutral">&nbsp;</span>
1993
+ <span class="cline-any cline-neutral">&nbsp;</span>
1994
+ <span class="cline-any cline-no">&nbsp;</span>
1995
+ <span class="cline-any cline-neutral">&nbsp;</span>
1996
+ <span class="cline-any cline-neutral">&nbsp;</span>
1997
+ <span class="cline-any cline-neutral">&nbsp;</span>
1998
+ <span class="cline-any cline-neutral">&nbsp;</span>
1999
+ <span class="cline-any cline-yes">1x</span>
2000
+ <span class="cline-any cline-no">&nbsp;</span>
2001
+ <span class="cline-any cline-no">&nbsp;</span>
2002
+ <span class="cline-any cline-no">&nbsp;</span>
2003
+ <span class="cline-any cline-neutral">&nbsp;</span>
2004
+ <span class="cline-any cline-neutral">&nbsp;</span>
2005
+ <span class="cline-any cline-neutral">&nbsp;</span>
2006
+ <span class="cline-any cline-yes">1x</span>
2007
+ <span class="cline-any cline-no">&nbsp;</span>
2008
+ <span class="cline-any cline-no">&nbsp;</span>
2009
+ <span class="cline-any cline-no">&nbsp;</span>
2010
+ <span class="cline-any cline-neutral">&nbsp;</span>
2011
+ <span class="cline-any cline-neutral">&nbsp;</span>
2012
+ <span class="cline-any cline-neutral">&nbsp;</span>
2013
+ <span class="cline-any cline-neutral">&nbsp;</span>
2014
+ <span class="cline-any cline-neutral">&nbsp;</span>
2015
+ <span class="cline-any cline-neutral">&nbsp;</span>
2016
+ <span class="cline-any cline-neutral">&nbsp;</span>
2017
+ <span class="cline-any cline-yes">1x</span>
2018
+ <span class="cline-any cline-no">&nbsp;</span>
2019
+ <span class="cline-any cline-neutral">&nbsp;</span>
2020
+ <span class="cline-any cline-neutral">&nbsp;</span>
2021
+ <span class="cline-any cline-neutral">&nbsp;</span>
2022
+ <span class="cline-any cline-no">&nbsp;</span>
2023
+ <span class="cline-any cline-no">&nbsp;</span>
2024
+ <span class="cline-any cline-no">&nbsp;</span>
2025
+ <span class="cline-any cline-no">&nbsp;</span>
2026
+ <span class="cline-any cline-neutral">&nbsp;</span>
2027
+ <span class="cline-any cline-neutral">&nbsp;</span>
2028
+ <span class="cline-any cline-no">&nbsp;</span>
2029
+ <span class="cline-any cline-no">&nbsp;</span>
2030
+ <span class="cline-any cline-no">&nbsp;</span>
2031
+ <span class="cline-any cline-no">&nbsp;</span>
2032
+ <span class="cline-any cline-no">&nbsp;</span>
2033
+ <span class="cline-any cline-no">&nbsp;</span>
2034
+ <span class="cline-any cline-no">&nbsp;</span>
2035
+ <span class="cline-any cline-no">&nbsp;</span>
2036
+ <span class="cline-any cline-neutral">&nbsp;</span>
2037
+ <span class="cline-any cline-neutral">&nbsp;</span>
2038
+ <span class="cline-any cline-no">&nbsp;</span>
2039
+ <span class="cline-any cline-no">&nbsp;</span>
2040
+ <span class="cline-any cline-neutral">&nbsp;</span>
2041
+ <span class="cline-any cline-neutral">&nbsp;</span>
2042
+ <span class="cline-any cline-neutral">&nbsp;</span>
2043
+ <span class="cline-any cline-no">&nbsp;</span>
2044
+ <span class="cline-any cline-no">&nbsp;</span>
2045
+ <span class="cline-any cline-no">&nbsp;</span>
2046
+ <span class="cline-any cline-no">&nbsp;</span>
2047
+ <span class="cline-any cline-no">&nbsp;</span>
2048
+ <span class="cline-any cline-no">&nbsp;</span>
2049
+ <span class="cline-any cline-no">&nbsp;</span>
2050
+ <span class="cline-any cline-no">&nbsp;</span>
2051
+ <span class="cline-any cline-no">&nbsp;</span>
2052
+ <span class="cline-any cline-no">&nbsp;</span>
2053
+ <span class="cline-any cline-no">&nbsp;</span>
2054
+ <span class="cline-any cline-neutral">&nbsp;</span>
2055
+ <span class="cline-any cline-neutral">&nbsp;</span>
2056
+ <span class="cline-any cline-no">&nbsp;</span>
2057
+ <span class="cline-any cline-no">&nbsp;</span>
2058
+ <span class="cline-any cline-neutral">&nbsp;</span>
2059
+ <span class="cline-any cline-neutral">&nbsp;</span>
2060
+ <span class="cline-any cline-no">&nbsp;</span>
2061
+ <span class="cline-any cline-no">&nbsp;</span>
2062
+ <span class="cline-any cline-no">&nbsp;</span>
2063
+ <span class="cline-any cline-neutral">&nbsp;</span>
2064
+ <span class="cline-any cline-no">&nbsp;</span>
2065
+ <span class="cline-any cline-no">&nbsp;</span>
2066
+ <span class="cline-any cline-no">&nbsp;</span>
2067
+ <span class="cline-any cline-no">&nbsp;</span>
2068
+ <span class="cline-any cline-no">&nbsp;</span>
2069
+ <span class="cline-any cline-no">&nbsp;</span>
2070
+ <span class="cline-any cline-neutral">&nbsp;</span>
2071
+ <span class="cline-any cline-neutral">&nbsp;</span>
2072
+ <span class="cline-any cline-no">&nbsp;</span>
2073
+ <span class="cline-any cline-no">&nbsp;</span>
2074
+ <span class="cline-any cline-neutral">&nbsp;</span>
2075
+ <span class="cline-any cline-neutral">&nbsp;</span>
2076
+ <span class="cline-any cline-no">&nbsp;</span>
2077
+ <span class="cline-any cline-no">&nbsp;</span>
2078
+ <span class="cline-any cline-no">&nbsp;</span>
2079
+ <span class="cline-any cline-neutral">&nbsp;</span>
2080
+ <span class="cline-any cline-no">&nbsp;</span>
2081
+ <span class="cline-any cline-no">&nbsp;</span>
2082
+ <span class="cline-any cline-no">&nbsp;</span>
2083
+ <span class="cline-any cline-no">&nbsp;</span>
2084
+ <span class="cline-any cline-neutral">&nbsp;</span>
2085
+ <span class="cline-any cline-no">&nbsp;</span>
2086
+ <span class="cline-any cline-no">&nbsp;</span>
2087
+ <span class="cline-any cline-no">&nbsp;</span>
2088
+ <span class="cline-any cline-no">&nbsp;</span>
2089
+ <span class="cline-any cline-no">&nbsp;</span>
2090
+ <span class="cline-any cline-neutral">&nbsp;</span>
2091
+ <span class="cline-any cline-neutral">&nbsp;</span>
2092
+ <span class="cline-any cline-neutral">&nbsp;</span>
2093
+ <span class="cline-any cline-no">&nbsp;</span>
2094
+ <span class="cline-any cline-no">&nbsp;</span>
2095
+ <span class="cline-any cline-neutral">&nbsp;</span>
2096
+ <span class="cline-any cline-neutral">&nbsp;</span>
2097
+ <span class="cline-any cline-no">&nbsp;</span>
2098
+ <span class="cline-any cline-no">&nbsp;</span>
2099
+ <span class="cline-any cline-no">&nbsp;</span>
2100
+ <span class="cline-any cline-no">&nbsp;</span>
2101
+ <span class="cline-any cline-no">&nbsp;</span>
2102
+ <span class="cline-any cline-no">&nbsp;</span>
2103
+ <span class="cline-any cline-no">&nbsp;</span>
2104
+ <span class="cline-any cline-no">&nbsp;</span>
2105
+ <span class="cline-any cline-no">&nbsp;</span>
2106
+ <span class="cline-any cline-no">&nbsp;</span>
2107
+ <span class="cline-any cline-neutral">&nbsp;</span>
2108
+ <span class="cline-any cline-neutral">&nbsp;</span>
2109
+ <span class="cline-any cline-neutral">&nbsp;</span>
2110
+ <span class="cline-any cline-no">&nbsp;</span>
2111
+ <span class="cline-any cline-no">&nbsp;</span>
2112
+ <span class="cline-any cline-neutral">&nbsp;</span>
2113
+ <span class="cline-any cline-neutral">&nbsp;</span>
2114
+ <span class="cline-any cline-no">&nbsp;</span>
2115
+ <span class="cline-any cline-no">&nbsp;</span>
2116
+ <span class="cline-any cline-no">&nbsp;</span>
2117
+ <span class="cline-any cline-no">&nbsp;</span>
2118
+ <span class="cline-any cline-no">&nbsp;</span>
2119
+ <span class="cline-any cline-no">&nbsp;</span>
2120
+ <span class="cline-any cline-no">&nbsp;</span>
2121
+ <span class="cline-any cline-no">&nbsp;</span>
2122
+ <span class="cline-any cline-neutral">&nbsp;</span>
2123
+ <span class="cline-any cline-neutral">&nbsp;</span>
2124
+ <span class="cline-any cline-no">&nbsp;</span>
2125
+ <span class="cline-any cline-no">&nbsp;</span>
2126
+ <span class="cline-any cline-neutral">&nbsp;</span>
2127
+ <span class="cline-any cline-neutral">&nbsp;</span>
2128
+ <span class="cline-any cline-no">&nbsp;</span>
2129
+ <span class="cline-any cline-no">&nbsp;</span>
2130
+ <span class="cline-any cline-no">&nbsp;</span>
2131
+ <span class="cline-any cline-no">&nbsp;</span>
2132
+ <span class="cline-any cline-no">&nbsp;</span>
2133
+ <span class="cline-any cline-no">&nbsp;</span>
2134
+ <span class="cline-any cline-no">&nbsp;</span>
2135
+ <span class="cline-any cline-no">&nbsp;</span>
2136
+ <span class="cline-any cline-no">&nbsp;</span>
2137
+ <span class="cline-any cline-neutral">&nbsp;</span>
2138
+ <span class="cline-any cline-neutral">&nbsp;</span>
2139
+ <span class="cline-any cline-neutral">&nbsp;</span>
2140
+ <span class="cline-any cline-no">&nbsp;</span>
2141
+ <span class="cline-any cline-no">&nbsp;</span>
2142
+ <span class="cline-any cline-neutral">&nbsp;</span>
2143
+ <span class="cline-any cline-neutral">&nbsp;</span>
2144
+ <span class="cline-any cline-neutral">&nbsp;</span>
2145
+ <span class="cline-any cline-neutral">&nbsp;</span>
2146
+ <span class="cline-any cline-yes">1x</span>
2147
+ <span class="cline-any cline-no">&nbsp;</span>
2148
+ <span class="cline-any cline-no">&nbsp;</span>
2149
+ <span class="cline-any cline-neutral">&nbsp;</span>
2150
+ <span class="cline-any cline-neutral">&nbsp;</span>
2151
+ <span class="cline-any cline-neutral">&nbsp;</span>
2152
+ <span class="cline-any cline-neutral">&nbsp;</span>
2153
+ <span class="cline-any cline-neutral">&nbsp;</span>
2154
+ <span class="cline-any cline-neutral">&nbsp;</span>
2155
+ <span class="cline-any cline-neutral">&nbsp;</span>
2156
+ <span class="cline-any cline-neutral">&nbsp;</span>
2157
+ <span class="cline-any cline-neutral">&nbsp;</span>
2158
+ <span class="cline-any cline-yes">1x</span>
2159
+ <span class="cline-any cline-no">&nbsp;</span>
2160
+ <span class="cline-any cline-no">&nbsp;</span>
2161
+ <span class="cline-any cline-no">&nbsp;</span>
2162
+ <span class="cline-any cline-no">&nbsp;</span>
2163
+ <span class="cline-any cline-no">&nbsp;</span>
2164
+ <span class="cline-any cline-no">&nbsp;</span>
2165
+ <span class="cline-any cline-neutral">&nbsp;</span>
2166
+ <span class="cline-any cline-no">&nbsp;</span>
2167
+ <span class="cline-any cline-no">&nbsp;</span>
2168
+ <span class="cline-any cline-no">&nbsp;</span>
2169
+ <span class="cline-any cline-no">&nbsp;</span>
2170
+ <span class="cline-any cline-neutral">&nbsp;</span>
2171
+ <span class="cline-any cline-no">&nbsp;</span>
2172
+ <span class="cline-any cline-no">&nbsp;</span>
2173
+ <span class="cline-any cline-neutral">&nbsp;</span>
2174
+ <span class="cline-any cline-neutral">&nbsp;</span>
2175
+ <span class="cline-any cline-no">&nbsp;</span>
2176
+ <span class="cline-any cline-no">&nbsp;</span>
2177
+ <span class="cline-any cline-neutral">&nbsp;</span>
2178
+ <span class="cline-any cline-neutral">&nbsp;</span>
2179
+ <span class="cline-any cline-neutral">&nbsp;</span>
2180
+ <span class="cline-any cline-neutral">&nbsp;</span>
2181
+ <span class="cline-any cline-no">&nbsp;</span>
2182
+ <span class="cline-any cline-no">&nbsp;</span>
2183
+ <span class="cline-any cline-neutral">&nbsp;</span>
2184
+ <span class="cline-any cline-no">&nbsp;</span>
2185
+ <span class="cline-any cline-no">&nbsp;</span>
2186
+ <span class="cline-any cline-neutral">&nbsp;</span>
2187
+ <span class="cline-any cline-neutral">&nbsp;</span>
2188
+ <span class="cline-any cline-neutral">&nbsp;</span>
2189
+ <span class="cline-any cline-no">&nbsp;</span>
2190
+ <span class="cline-any cline-no">&nbsp;</span>
2191
+ <span class="cline-any cline-neutral">&nbsp;</span>
2192
+ <span class="cline-any cline-no">&nbsp;</span>
2193
+ <span class="cline-any cline-neutral">&nbsp;</span>
2194
+ <span class="cline-any cline-neutral">&nbsp;</span>
2195
+ <span class="cline-any cline-neutral">&nbsp;</span>
2196
+ <span class="cline-any cline-neutral">&nbsp;</span>
2197
+ <span class="cline-any cline-neutral">&nbsp;</span>
2198
+ <span class="cline-any cline-yes">1x</span>
2199
+ <span class="cline-any cline-neutral">&nbsp;</span>
2200
+ <span class="cline-any cline-no">&nbsp;</span>
2201
+ <span class="cline-any cline-no">&nbsp;</span>
2202
+ <span class="cline-any cline-no">&nbsp;</span>
2203
+ <span class="cline-any cline-no">&nbsp;</span>
2204
+ <span class="cline-any cline-no">&nbsp;</span>
2205
+ <span class="cline-any cline-no">&nbsp;</span>
2206
+ <span class="cline-any cline-neutral">&nbsp;</span>
2207
+ <span class="cline-any cline-no">&nbsp;</span>
2208
+ <span class="cline-any cline-no">&nbsp;</span>
2209
+ <span class="cline-any cline-no">&nbsp;</span>
2210
+ <span class="cline-any cline-no">&nbsp;</span>
2211
+ <span class="cline-any cline-no">&nbsp;</span>
2212
+ <span class="cline-any cline-no">&nbsp;</span>
2213
+ <span class="cline-any cline-neutral">&nbsp;</span>
2214
+ <span class="cline-any cline-neutral">&nbsp;</span>
2215
+ <span class="cline-any cline-neutral">&nbsp;</span>
2216
+ <span class="cline-any cline-yes">1x</span>
2217
+ <span class="cline-any cline-no">&nbsp;</span>
2218
+ <span class="cline-any cline-no">&nbsp;</span>
2219
+ <span class="cline-any cline-no">&nbsp;</span>
2220
+ <span class="cline-any cline-no">&nbsp;</span>
2221
+ <span class="cline-any cline-no">&nbsp;</span>
2222
+ <span class="cline-any cline-neutral">&nbsp;</span>
2223
+ <span class="cline-any cline-no">&nbsp;</span>
2224
+ <span class="cline-any cline-no">&nbsp;</span>
2225
+ <span class="cline-any cline-no">&nbsp;</span>
2226
+ <span class="cline-any cline-no">&nbsp;</span>
2227
+ <span class="cline-any cline-no">&nbsp;</span>
2228
+ <span class="cline-any cline-neutral">&nbsp;</span>
2229
+ <span class="cline-any cline-no">&nbsp;</span>
2230
+ <span class="cline-any cline-neutral">&nbsp;</span>
2231
+ <span class="cline-any cline-neutral">&nbsp;</span>
2232
+ <span class="cline-any cline-yes">1x</span>
2233
+ <span class="cline-any cline-no">&nbsp;</span>
2234
+ <span class="cline-any cline-neutral">&nbsp;</span>
2235
+ <span class="cline-any cline-neutral">&nbsp;</span>
2236
+ <span class="cline-any cline-neutral">&nbsp;</span>
2237
+ <span class="cline-any cline-neutral">&nbsp;</span>
2238
+ <span class="cline-any cline-neutral">&nbsp;</span>
2239
+ <span class="cline-any cline-neutral">&nbsp;</span>
2240
+ <span class="cline-any cline-neutral">&nbsp;</span>
2241
+ <span class="cline-any cline-neutral">&nbsp;</span>
2242
+ <span class="cline-any cline-neutral">&nbsp;</span>
2243
+ <span class="cline-any cline-neutral">&nbsp;</span>
2244
+ <span class="cline-any cline-neutral">&nbsp;</span>
2245
+ <span class="cline-any cline-neutral">&nbsp;</span>
2246
+ <span class="cline-any cline-neutral">&nbsp;</span>
2247
+ <span class="cline-any cline-neutral">&nbsp;</span>
2248
+ <span class="cline-any cline-neutral">&nbsp;</span>
2249
+ <span class="cline-any cline-neutral">&nbsp;</span>
2250
+ <span class="cline-any cline-neutral">&nbsp;</span>
2251
+ <span class="cline-any cline-neutral">&nbsp;</span>
2252
+ <span class="cline-any cline-neutral">&nbsp;</span>
2253
+ <span class="cline-any cline-neutral">&nbsp;</span>
2254
+ <span class="cline-any cline-neutral">&nbsp;</span>
2255
+ <span class="cline-any cline-neutral">&nbsp;</span>
2256
+ <span class="cline-any cline-neutral">&nbsp;</span>
2257
+ <span class="cline-any cline-neutral">&nbsp;</span>
2258
+ <span class="cline-any cline-neutral">&nbsp;</span>
2259
+ <span class="cline-any cline-neutral">&nbsp;</span>
2260
+ <span class="cline-any cline-neutral">&nbsp;</span>
2261
+ <span class="cline-any cline-neutral">&nbsp;</span>
2262
+ <span class="cline-any cline-yes">1x</span>
2263
+ <span class="cline-any cline-neutral">&nbsp;</span>
2264
+ <span class="cline-any cline-neutral">&nbsp;</span>
2265
+ <span class="cline-any cline-no">&nbsp;</span>
2266
+ <span class="cline-any cline-neutral">&nbsp;</span>
2267
+ <span class="cline-any cline-neutral">&nbsp;</span>
2268
+ <span class="cline-any cline-yes">1x</span>
2269
+ <span class="cline-any cline-neutral">&nbsp;</span>
2270
+ <span class="cline-any cline-no">&nbsp;</span>
2271
+ <span class="cline-any cline-neutral">&nbsp;</span>
2272
+ <span class="cline-any cline-neutral">&nbsp;</span>
2273
+ <span class="cline-any cline-yes">1x</span>
2274
+ <span class="cline-any cline-no">&nbsp;</span>
2275
+ <span class="cline-any cline-neutral">&nbsp;</span>
2276
+ <span class="cline-any cline-neutral">&nbsp;</span>
2277
+ <span class="cline-any cline-yes">1x</span>
2278
+ <span class="cline-any cline-no">&nbsp;</span>
2279
+ <span class="cline-any cline-no">&nbsp;</span>
2280
+ <span class="cline-any cline-no">&nbsp;</span>
2281
+ <span class="cline-any cline-no">&nbsp;</span>
2282
+ <span class="cline-any cline-no">&nbsp;</span>
2283
+ <span class="cline-any cline-neutral">&nbsp;</span>
2284
+ <span class="cline-any cline-neutral">&nbsp;</span>
2285
+ <span class="cline-any cline-no">&nbsp;</span>
2286
+ <span class="cline-any cline-neutral">&nbsp;</span>
2287
+ <span class="cline-any cline-neutral">&nbsp;</span>
2288
+ <span class="cline-any cline-neutral">&nbsp;</span>
2289
+ <span class="cline-any cline-yes">1x</span>
2290
+ <span class="cline-any cline-no">&nbsp;</span>
2291
+ <span class="cline-any cline-neutral">&nbsp;</span>
2292
+ <span class="cline-any cline-neutral">&nbsp;</span>
2293
+ <span class="cline-any cline-yes">1x</span>
2294
+ <span class="cline-any cline-no">&nbsp;</span>
2295
+ <span class="cline-any cline-no">&nbsp;</span>
2296
+ <span class="cline-any cline-no">&nbsp;</span>
2297
+ <span class="cline-any cline-no">&nbsp;</span>
2298
+ <span class="cline-any cline-no">&nbsp;</span>
2299
+ <span class="cline-any cline-neutral">&nbsp;</span>
2300
+ <span class="cline-any cline-no">&nbsp;</span>
2301
+ <span class="cline-any cline-neutral">&nbsp;</span>
2302
+ <span class="cline-any cline-neutral">&nbsp;</span>
2303
+ <span class="cline-any cline-yes">1x</span>
2304
+ <span class="cline-any cline-no">&nbsp;</span>
2305
+ <span class="cline-any cline-neutral">&nbsp;</span>
2306
+ <span class="cline-any cline-neutral">&nbsp;</span>
2307
+ <span class="cline-any cline-yes">1x</span>
2308
+ <span class="cline-any cline-no">&nbsp;</span>
2309
+ <span class="cline-any cline-no">&nbsp;</span>
2310
+ <span class="cline-any cline-neutral">&nbsp;</span>
2311
+ <span class="cline-any cline-neutral">&nbsp;</span>
2312
+ <span class="cline-any cline-neutral">&nbsp;</span>
2313
+ <span class="cline-any cline-yes">1x</span>
2314
+ <span class="cline-any cline-no">&nbsp;</span>
2315
+ <span class="cline-any cline-neutral">&nbsp;</span>
2316
+ <span class="cline-any cline-neutral">&nbsp;</span>
2317
+ <span class="cline-any cline-yes">1x</span>
2318
+ <span class="cline-any cline-no">&nbsp;</span>
2319
+ <span class="cline-any cline-neutral">&nbsp;</span>
2320
+ <span class="cline-any cline-neutral">&nbsp;</span>
2321
+ <span class="cline-any cline-yes">1x</span>
2322
+ <span class="cline-any cline-no">&nbsp;</span>
2323
+ <span class="cline-any cline-no">&nbsp;</span>
2324
+ <span class="cline-any cline-no">&nbsp;</span>
2325
+ <span class="cline-any cline-neutral">&nbsp;</span>
2326
+ <span class="cline-any cline-no">&nbsp;</span>
2327
+ <span class="cline-any cline-neutral">&nbsp;</span>
2328
+ <span class="cline-any cline-no">&nbsp;</span>
2329
+ <span class="cline-any cline-no">&nbsp;</span>
2330
+ <span class="cline-any cline-neutral">&nbsp;</span>
2331
+ <span class="cline-any cline-no">&nbsp;</span>
2332
+ <span class="cline-any cline-neutral">&nbsp;</span>
2333
+ <span class="cline-any cline-no">&nbsp;</span>
2334
+ <span class="cline-any cline-neutral">&nbsp;</span>
2335
+ <span class="cline-any cline-no">&nbsp;</span>
2336
+ <span class="cline-any cline-no">&nbsp;</span>
2337
+ <span class="cline-any cline-neutral">&nbsp;</span>
2338
+ <span class="cline-any cline-no">&nbsp;</span>
2339
+ <span class="cline-any cline-neutral">&nbsp;</span>
2340
+ <span class="cline-any cline-no">&nbsp;</span>
2341
+ <span class="cline-any cline-neutral">&nbsp;</span>
2342
+ <span class="cline-any cline-no">&nbsp;</span>
2343
+ <span class="cline-any cline-no">&nbsp;</span>
2344
+ <span class="cline-any cline-no">&nbsp;</span>
2345
+ <span class="cline-any cline-no">&nbsp;</span>
2346
+ <span class="cline-any cline-neutral">&nbsp;</span>
2347
+ <span class="cline-any cline-no">&nbsp;</span>
2348
+ <span class="cline-any cline-neutral">&nbsp;</span>
2349
+ <span class="cline-any cline-no">&nbsp;</span>
2350
+ <span class="cline-any cline-neutral">&nbsp;</span>
2351
+ <span class="cline-any cline-neutral">&nbsp;</span>
2352
+ <span class="cline-any cline-neutral">&nbsp;</span>
2353
+ <span class="cline-any cline-neutral">&nbsp;</span>
2354
+ <span class="cline-any cline-yes">1x</span>
2355
+ <span class="cline-any cline-no">&nbsp;</span>
2356
+ <span class="cline-any cline-no">&nbsp;</span>
2357
+ <span class="cline-any cline-neutral">&nbsp;</span>
2358
+ <span class="cline-any cline-no">&nbsp;</span>
2359
+ <span class="cline-any cline-no">&nbsp;</span>
2360
+ <span class="cline-any cline-no">&nbsp;</span>
2361
+ <span class="cline-any cline-neutral">&nbsp;</span>
2362
+ <span class="cline-any cline-neutral">&nbsp;</span>
2363
+ <span class="cline-any cline-neutral">&nbsp;</span>
2364
+ <span class="cline-any cline-neutral">&nbsp;</span>
2365
+ <span class="cline-any cline-neutral">&nbsp;</span>
2366
+ <span class="cline-any cline-yes">1x</span>
2367
+ <span class="cline-any cline-no">&nbsp;</span>
2368
+ <span class="cline-any cline-neutral">&nbsp;</span>
2369
+ <span class="cline-any cline-neutral">&nbsp;</span>
2370
+ <span class="cline-any cline-yes">1x</span>
2371
+ <span class="cline-any cline-no">&nbsp;</span>
2372
+ <span class="cline-any cline-no">&nbsp;</span>
2373
+ <span class="cline-any cline-no">&nbsp;</span>
2374
+ <span class="cline-any cline-neutral">&nbsp;</span>
2375
+ <span class="cline-any cline-neutral">&nbsp;</span>
2376
+ <span class="cline-any cline-neutral">&nbsp;</span>
2377
+ <span class="cline-any cline-yes">1x</span>
2378
+ <span class="cline-any cline-no">&nbsp;</span>
2379
+ <span class="cline-any cline-no">&nbsp;</span>
2380
+ <span class="cline-any cline-neutral">&nbsp;</span>
2381
+ <span class="cline-any cline-neutral">&nbsp;</span>
2382
+ <span class="cline-any cline-neutral">&nbsp;</span>
2383
+ <span class="cline-any cline-yes">1x</span>
2384
+ <span class="cline-any cline-no">&nbsp;</span>
2385
+ <span class="cline-any cline-no">&nbsp;</span>
2386
+ <span class="cline-any cline-no">&nbsp;</span>
2387
+ <span class="cline-any cline-neutral">&nbsp;</span>
2388
+ <span class="cline-any cline-neutral">&nbsp;</span>
2389
+ <span class="cline-any cline-neutral">&nbsp;</span>
2390
+ <span class="cline-any cline-yes">1x</span>
2391
+ <span class="cline-any cline-no">&nbsp;</span>
2392
+ <span class="cline-any cline-neutral">&nbsp;</span>
2393
+ <span class="cline-any cline-neutral">&nbsp;</span>
2394
+ <span class="cline-any cline-yes">1x</span>
2395
+ <span class="cline-any cline-no">&nbsp;</span>
2396
+ <span class="cline-any cline-neutral">&nbsp;</span>
2397
+ <span class="cline-any cline-neutral">&nbsp;</span>
2398
+ <span class="cline-any cline-yes">1x</span>
2399
+ <span class="cline-any cline-no">&nbsp;</span>
2400
+ <span class="cline-any cline-neutral">&nbsp;</span>
2401
+ <span class="cline-any cline-neutral">&nbsp;</span>
2402
+ <span class="cline-any cline-yes">1x</span>
2403
+ <span class="cline-any cline-no">&nbsp;</span>
2404
+ <span class="cline-any cline-no">&nbsp;</span>
2405
+ <span class="cline-any cline-no">&nbsp;</span>
2406
+ <span class="cline-any cline-no">&nbsp;</span>
2407
+ <span class="cline-any cline-no">&nbsp;</span>
2408
+ <span class="cline-any cline-neutral">&nbsp;</span>
2409
+ <span class="cline-any cline-no">&nbsp;</span>
2410
+ <span class="cline-any cline-no">&nbsp;</span>
2411
+ <span class="cline-any cline-no">&nbsp;</span>
2412
+ <span class="cline-any cline-no">&nbsp;</span>
2413
+ <span class="cline-any cline-neutral">&nbsp;</span>
2414
+ <span class="cline-any cline-neutral">&nbsp;</span>
2415
+ <span class="cline-any cline-neutral">&nbsp;</span>
2416
+ <span class="cline-any cline-neutral">&nbsp;</span>
2417
+ <span class="cline-any cline-neutral">&nbsp;</span>
2418
+ <span class="cline-any cline-yes">1x</span>
2419
+ <span class="cline-any cline-no">&nbsp;</span>
2420
+ <span class="cline-any cline-no">&nbsp;</span>
2421
+ <span class="cline-any cline-no">&nbsp;</span>
2422
+ <span class="cline-any cline-no">&nbsp;</span>
2423
+ <span class="cline-any cline-no">&nbsp;</span>
2424
+ <span class="cline-any cline-neutral">&nbsp;</span>
2425
+ <span class="cline-any cline-neutral">&nbsp;</span>
2426
+ <span class="cline-any cline-yes">1x</span>
2427
+ <span class="cline-any cline-no">&nbsp;</span>
2428
+ <span class="cline-any cline-no">&nbsp;</span>
2429
+ <span class="cline-any cline-neutral">&nbsp;</span>
2430
+ <span class="cline-any cline-neutral">&nbsp;</span>
2431
+ <span class="cline-any cline-yes">1x</span>
2432
+ <span class="cline-any cline-no">&nbsp;</span>
2433
+ <span class="cline-any cline-no">&nbsp;</span>
2434
+ <span class="cline-any cline-no">&nbsp;</span>
2435
+ <span class="cline-any cline-no">&nbsp;</span>
2436
+ <span class="cline-any cline-neutral">&nbsp;</span>
2437
+ <span class="cline-any cline-neutral">&nbsp;</span>
2438
+ <span class="cline-any cline-neutral">&nbsp;</span>
2439
+ <span class="cline-any cline-no">&nbsp;</span>
2440
+ <span class="cline-any cline-neutral">&nbsp;</span>
2441
+ <span class="cline-any cline-neutral">&nbsp;</span>
2442
+ <span class="cline-any cline-neutral">&nbsp;</span>
2443
+ <span class="cline-any cline-neutral">&nbsp;</span>
2444
+ <span class="cline-any cline-neutral">&nbsp;</span>
2445
+ <span class="cline-any cline-neutral">&nbsp;</span>
2446
+ <span class="cline-any cline-yes">1x</span>
2447
+ <span class="cline-any cline-no">&nbsp;</span>
2448
+ <span class="cline-any cline-no">&nbsp;</span>
2449
+ <span class="cline-any cline-no">&nbsp;</span>
2450
+ <span class="cline-any cline-no">&nbsp;</span>
2451
+ <span class="cline-any cline-neutral">&nbsp;</span>
2452
+ <span class="cline-any cline-neutral">&nbsp;</span>
2453
+ <span class="cline-any cline-neutral">&nbsp;</span>
2454
+ <span class="cline-any cline-neutral">&nbsp;</span>
2455
+ <span class="cline-any cline-neutral">&nbsp;</span>
2456
+ <span class="cline-any cline-neutral">&nbsp;</span>
2457
+ <span class="cline-any cline-neutral">&nbsp;</span>
2458
+ <span class="cline-any cline-yes">1x</span>
2459
+ <span class="cline-any cline-yes">1x</span>
2460
+ <span class="cline-any cline-neutral">&nbsp;</span>
2461
+ <span class="cline-any cline-yes">1x</span>
2462
+ <span class="cline-any cline-yes">1x</span>
2463
+ <span class="cline-any cline-yes">1x</span>
2464
+ <span class="cline-any cline-no">&nbsp;</span>
2465
+ <span class="cline-any cline-no">&nbsp;</span>
2466
+ <span class="cline-any cline-no">&nbsp;</span>
2467
+ <span class="cline-any cline-neutral">&nbsp;</span>
2468
+ <span class="cline-any cline-neutral">&nbsp;</span>
2469
+ <span class="cline-any cline-neutral">&nbsp;</span>
2470
+ <span class="cline-any cline-yes">1x</span>
2471
+ <span class="cline-any cline-no">&nbsp;</span>
2472
+ <span class="cline-any cline-no">&nbsp;</span>
2473
+ <span class="cline-any cline-no">&nbsp;</span>
2474
+ <span class="cline-any cline-no">&nbsp;</span>
2475
+ <span class="cline-any cline-no">&nbsp;</span>
2476
+ <span class="cline-any cline-no">&nbsp;</span>
2477
+ <span class="cline-any cline-neutral">&nbsp;</span>
2478
+ <span class="cline-any cline-neutral">&nbsp;</span>
2479
+ <span class="cline-any cline-no">&nbsp;</span>
2480
+ <span class="cline-any cline-no">&nbsp;</span>
2481
+ <span class="cline-any cline-neutral">&nbsp;</span>
2482
+ <span class="cline-any cline-no">&nbsp;</span>
2483
+ <span class="cline-any cline-no">&nbsp;</span>
2484
+ <span class="cline-any cline-neutral">&nbsp;</span>
2485
+ <span class="cline-any cline-no">&nbsp;</span>
2486
+ <span class="cline-any cline-neutral">&nbsp;</span>
2487
+ <span class="cline-any cline-neutral">&nbsp;</span>
2488
+ <span class="cline-any cline-neutral">&nbsp;</span>
2489
+ <span class="cline-any cline-neutral">&nbsp;</span>
2490
+ <span class="cline-any cline-neutral">&nbsp;</span>
2491
+ <span class="cline-any cline-neutral">&nbsp;</span>
2492
+ <span class="cline-any cline-neutral">&nbsp;</span>
2493
+ <span class="cline-any cline-neutral">&nbsp;</span>
2494
+ <span class="cline-any cline-neutral">&nbsp;</span>
2495
+ <span class="cline-any cline-neutral">&nbsp;</span>
2496
+ <span class="cline-any cline-neutral">&nbsp;</span>
2497
+ <span class="cline-any cline-neutral">&nbsp;</span>
2498
+ <span class="cline-any cline-neutral">&nbsp;</span>
2499
+ <span class="cline-any cline-neutral">&nbsp;</span>
2500
+ <span class="cline-any cline-neutral">&nbsp;</span>
2501
+ <span class="cline-any cline-neutral">&nbsp;</span>
2502
+ <span class="cline-any cline-neutral">&nbsp;</span>
2503
+ <span class="cline-any cline-neutral">&nbsp;</span>
2504
+ <span class="cline-any cline-neutral">&nbsp;</span>
2505
+ <span class="cline-any cline-neutral">&nbsp;</span>
2506
+ <span class="cline-any cline-neutral">&nbsp;</span>
2507
+ <span class="cline-any cline-neutral">&nbsp;</span>
2508
+ <span class="cline-any cline-neutral">&nbsp;</span>
2509
+ <span class="cline-any cline-neutral">&nbsp;</span>
2510
+ <span class="cline-any cline-neutral">&nbsp;</span>
2511
+ <span class="cline-any cline-neutral">&nbsp;</span>
2512
+ <span class="cline-any cline-neutral">&nbsp;</span>
2513
+ <span class="cline-any cline-neutral">&nbsp;</span>
2514
+ <span class="cline-any cline-neutral">&nbsp;</span>
2515
+ <span class="cline-any cline-neutral">&nbsp;</span>
2516
+ <span class="cline-any cline-neutral">&nbsp;</span>
2517
+ <span class="cline-any cline-yes">1x</span>
2518
+ <span class="cline-any cline-no">&nbsp;</span>
2519
+ <span class="cline-any cline-no">&nbsp;</span>
2520
+ <span class="cline-any cline-no">&nbsp;</span>
2521
+ <span class="cline-any cline-no">&nbsp;</span>
2522
+ <span class="cline-any cline-no">&nbsp;</span>
2523
+ <span class="cline-any cline-neutral">&nbsp;</span>
2524
+ <span class="cline-any cline-neutral">&nbsp;</span>
2525
+ <span class="cline-any cline-neutral">&nbsp;</span>
2526
+ <span class="cline-any cline-no">&nbsp;</span>
2527
+ <span class="cline-any cline-neutral">&nbsp;</span>
2528
+ <span class="cline-any cline-neutral">&nbsp;</span>
2529
+ <span class="cline-any cline-neutral">&nbsp;</span>
2530
+ <span class="cline-any cline-yes">1x</span>
2531
+ <span class="cline-any cline-no">&nbsp;</span>
2532
+ <span class="cline-any cline-no">&nbsp;</span>
2533
+ <span class="cline-any cline-no">&nbsp;</span>
2534
+ <span class="cline-any cline-no">&nbsp;</span>
2535
+ <span class="cline-any cline-neutral">&nbsp;</span>
2536
+ <span class="cline-any cline-neutral">&nbsp;</span>
2537
+ <span class="cline-any cline-neutral">&nbsp;</span>
2538
+ <span class="cline-any cline-no">&nbsp;</span>
2539
+ <span class="cline-any cline-neutral">&nbsp;</span>
2540
+ <span class="cline-any cline-neutral">&nbsp;</span>
2541
+ <span class="cline-any cline-neutral">&nbsp;</span>
2542
+ <span class="cline-any cline-neutral">&nbsp;</span>
2543
+ <span class="cline-any cline-neutral">&nbsp;</span>
2544
+ <span class="cline-any cline-yes">1x</span>
2545
+ <span class="cline-any cline-no">&nbsp;</span>
2546
+ <span class="cline-any cline-no">&nbsp;</span>
2547
+ <span class="cline-any cline-neutral">&nbsp;</span>
2548
+ <span class="cline-any cline-no">&nbsp;</span>
2549
+ <span class="cline-any cline-neutral">&nbsp;</span>
2550
+ <span class="cline-any cline-no">&nbsp;</span>
2551
+ <span class="cline-any cline-no">&nbsp;</span>
2552
+ <span class="cline-any cline-neutral">&nbsp;</span>
2553
+ <span class="cline-any cline-no">&nbsp;</span>
2554
+ <span class="cline-any cline-no">&nbsp;</span>
2555
+ <span class="cline-any cline-neutral">&nbsp;</span>
2556
+ <span class="cline-any cline-no">&nbsp;</span>
2557
+ <span class="cline-any cline-neutral">&nbsp;</span>
2558
+ <span class="cline-any cline-neutral">&nbsp;</span>
2559
+ <span class="cline-any cline-neutral">&nbsp;</span>
2560
+ <span class="cline-any cline-neutral">&nbsp;</span>
2561
+ <span class="cline-any cline-yes">1x</span>
2562
+ <span class="cline-any cline-neutral">&nbsp;</span>
2563
+ <span class="cline-any cline-no">&nbsp;</span>
2564
+ <span class="cline-any cline-no">&nbsp;</span>
2565
+ <span class="cline-any cline-no">&nbsp;</span>
2566
+ <span class="cline-any cline-neutral">&nbsp;</span>
2567
+ <span class="cline-any cline-no">&nbsp;</span>
2568
+ <span class="cline-any cline-neutral">&nbsp;</span>
2569
+ <span class="cline-any cline-neutral">&nbsp;</span>
2570
+ <span class="cline-any cline-neutral">&nbsp;</span>
2571
+ <span class="cline-any cline-no">&nbsp;</span>
2572
+ <span class="cline-any cline-no">&nbsp;</span>
2573
+ <span class="cline-any cline-neutral">&nbsp;</span>
2574
+ <span class="cline-any cline-neutral">&nbsp;</span>
2575
+ <span class="cline-any cline-neutral">&nbsp;</span>
2576
+ <span class="cline-any cline-neutral">&nbsp;</span>
2577
+ <span class="cline-any cline-yes">1x</span>
2578
+ <span class="cline-any cline-no">&nbsp;</span>
2579
+ <span class="cline-any cline-no">&nbsp;</span>
2580
+ <span class="cline-any cline-neutral">&nbsp;</span>
2581
+ <span class="cline-any cline-no">&nbsp;</span>
2582
+ <span class="cline-any cline-no">&nbsp;</span>
2583
+ <span class="cline-any cline-no">&nbsp;</span>
2584
+ <span class="cline-any cline-neutral">&nbsp;</span>
2585
+ <span class="cline-any cline-no">&nbsp;</span>
2586
+ <span class="cline-any cline-neutral">&nbsp;</span>
2587
+ <span class="cline-any cline-neutral">&nbsp;</span>
2588
+ <span class="cline-any cline-neutral">&nbsp;</span>
2589
+ <span class="cline-any cline-yes">1x</span>
2590
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { ChatManager } from 'src/chat21-core/providers/chat-manager';
2591
+ &nbsp;
2592
+ import { ConversationFooterComponent } from './../conversation-footer/conversation-footer.component';
2593
+ &nbsp;
2594
+ // tslint:disable-next-line:max-line-length
2595
+ import { ElementRef, Component, OnInit, OnChanges, AfterViewInit, Input, Output, ViewChild, EventEmitter, SimpleChanges, ChangeDetectorRef } from '@angular/core';
2596
+ import { Subscription } from 'rxjs';
2597
+ &nbsp;
2598
+ import {
2599
+ CHANNEL_TYPE_DIRECT, CHANNEL_TYPE_GROUP, TYPE_MSG_TEXT,
2600
+ MSG_STATUS_SENT, MSG_STATUS_RETURN_RECEIPT, MSG_STATUS_SENT_SERVER,
2601
+ UID_SUPPORT_GROUP_MESSAGES
2602
+ } from 'src/app/utils/constants';
2603
+ &nbsp;
2604
+ // models
2605
+ &nbsp;
2606
+ import { MessageModel } from 'src/chat21-core/models/message';
2607
+ &nbsp;
2608
+ // utils
2609
+ import { isJustRecived, isPopupUrl} from 'src/app/utils/utils';
2610
+ import { v4 as uuidv4 } from 'uuid';
2611
+ &nbsp;
2612
+ &nbsp;
2613
+ // Import the resized event model
2614
+ &nbsp;
2615
+ import {DomSanitizer} from '@angular/platform-browser';
2616
+ &nbsp;
2617
+ import { AppComponent } from '../../../app.component';
2618
+ import { CustomTranslateService } from 'src/chat21-core/providers/custom-translate.service';
2619
+ import { ConversationHandlerService } from 'src/chat21-core/providers/abstract/conversation-handler.service';
2620
+ import { ConversationHandlerBuilderService } from 'src/chat21-core/providers/abstract/conversation-handler-builder.service';
2621
+ import { getDateDifference, getFromNow, popupUrl } from 'src/chat21-core/utils/utils';
2622
+ import { ConversationContentComponent } from '../conversation-content/conversation-content.component';
2623
+ import { ConversationsHandlerService } from 'src/chat21-core/providers/abstract/conversations-handler.service';
2624
+ import { ArchivedConversationsHandlerService } from 'src/chat21-core/providers/abstract/archivedconversations-handler.service';
2625
+ import { ConversationModel } from 'src/chat21-core/models/conversation';
2626
+ import { AppStorageService } from 'src/chat21-core/providers/abstract/app-storage.service';
2627
+ import { LoggerService } from 'src/chat21-core/providers/abstract/logger.service';
2628
+ import { LoggerInstance } from 'src/chat21-core/providers/logger/loggerInstance';
2629
+ import { takeUntil } from 'rxjs/operators';
2630
+ import { Subject } from 'rxjs';
2631
+ import { TypingService } from 'src/chat21-core/providers/abstract/typing.service';
2632
+ import { Globals } from 'src/app/utils/globals';
2633
+ import { AppConfigService } from 'src/app/providers/app-config.service';
2634
+ import { StarRatingWidgetService } from 'src/app/providers/star-rating-widget.service';
2635
+ import { TiledeskRequestsService } from 'src/chat21-core/providers/tiledesk/tiledesk-requests.service';
2636
+ import moment from 'moment';
2637
+ import { isUserBanned } from 'src/chat21-core/utils/utils-message';
2638
+ // import { TranslateService } from '@ngx-translate/core';
2639
+ &nbsp;
2640
+ @Component({
2641
+ selector: 'chat-conversation',
2642
+ templateUrl: './conversation.component.html',
2643
+ styleUrls: ['./conversation.component.scss'],
2644
+ // tslint:disable-next-line:use-host-property-decorator
2645
+ host: {'(window:resize)': 'onResize($event)'}
2646
+ })
2647
+ export class ConversationComponent implements OnInit, AfterViewInit, OnChanges {
2648
+ @ViewChild('afConversationComponent') private afConversationComponent: ElementRef; // l'ID del div da scrollare
2649
+ // @HostListener('window:resize', ['$event'])
2650
+ // ========= begin:: Input/Output values
2651
+ // @Input() elRoot: ElementRef;
2652
+ @Input() conversationId: string;
2653
+ @Input() stylesMap: Map&lt;string, string&gt;;
2654
+ @Input() isOpen: boolean;
2655
+ @Input() senderId: string; // uid utente ex: JHFFkYk2RBUn87LCWP2WZ546M7d2
2656
+ @Input() isConversationArchived: boolean;
2657
+ @Output() onBackHome = new EventEmitter();
2658
+ @Output() onCloseWidget = new EventEmitter();
2659
+ @Output() onSoundChange = new EventEmitter();
2660
+ @Output() onConversationClosed = new EventEmitter&lt;string&gt;()
2661
+ @Output() onSignOut = new EventEmitter();
2662
+ @Output() onBeforeMessageSent = new EventEmitter();
2663
+ @Output() onAfterSendMessage = new EventEmitter&lt;MessageModel&gt;();
2664
+ @Output() onNewConversationInit = new EventEmitter();
2665
+ @Output() onBeforeMessageRender = new EventEmitter();
2666
+ @Output() onAfterMessageRender = new EventEmitter();
2667
+ @Output() onNewMessageCreated = new EventEmitter();
2668
+ @Output() onNewConversationButtonClicked = new EventEmitter();
2669
+ // ========= end:: Input/Output values
2670
+ &nbsp;
2671
+ // projectid: string; // uid progetto passato come parametro getVariablesFromSettings o getVariablesFromAttributeHtml
2672
+ // channelType: string; // tipo di conversazione ( group / direct ) a seconda che recipientId contenga o meno 'group'
2673
+ // writingMessage = ''; // messaggio sta scrivendo...
2674
+ // isTypings = false;
2675
+ conversation: ConversationModel
2676
+ conversationWith: string;
2677
+ isMenuShow = false;
2678
+ isEmojiiPickerShow: boolean = false;
2679
+
2680
+ isButtonsDisabled = true;
2681
+ // isConversationArchived = false;
2682
+ hideFooterTextReply: boolean = false;
2683
+ hideTextAreaContent: boolean = false;
2684
+ footerMessagePlaceholder: string = '';
2685
+ textInputTextArea: String;
2686
+ isTrascriptDownloadEnabled = false;
2687
+ showContinueConversationButton: boolean = false
2688
+ // ========= begin:: gestione scroll view messaggi ======= //
2689
+ //startScroll = true; // indica lo stato dello scroll: true/false -&gt; è in movimento/ è fermo
2690
+ isScrolling = false;
2691
+ idDivScroll = 'c21-contentScroll'; // id div da scrollare
2692
+ showBadgeScroollToBottom = false;
2693
+ messagesBadgeCount = 0;
2694
+ // ========= end:: gestione scroll view messaggi ======= //
2695
+ &nbsp;
2696
+ &nbsp;
2697
+ // ========= begin:: send image ======= //
2698
+ selectedFiles: FileList;
2699
+ // isFilePendingToUpload: Boolean = false;
2700
+ arrayFilesLoad: Array&lt;any&gt;;
2701
+ isFileSelected: Boolean = false;
2702
+ &nbsp;
2703
+ isOpenAttachmentPreview: Boolean = false;
2704
+ attachments: Array&lt;{ file: Array&lt;any&gt;, metadata: {}}&gt;
2705
+ &nbsp;
2706
+
2707
+
2708
+ isPopupUrl = isPopupUrl;
2709
+ popupUrl = popupUrl;
2710
+ &nbsp;
2711
+ // availableAgentsStatus = false; // indica quando è impostato lo stato degli agenti nel subscribe
2712
+ messages: Array&lt;MessageModel&gt; = [];
2713
+ &nbsp;
2714
+ &nbsp;
2715
+ CLIENT_BROWSER: string = navigator.userAgent;
2716
+ &nbsp;
2717
+ // devo inserirle nel globals
2718
+ subscriptions: Array&lt;any&gt; = [];
2719
+ private unsubscribe$: Subject&lt;any&gt; = new Subject&lt;any&gt;();
2720
+ showMessageWelcome: boolean;
2721
+ &nbsp;
2722
+ // ========= begin::agent availability
2723
+ // public areAgentsAvailableText: string;
2724
+ // public areAgentsAvailable: Boolean = false;
2725
+ // ========= end::agent availability
2726
+ &nbsp;
2727
+ &nbsp;
2728
+ isIE = /msie\s|trident\//i.test(window.navigator.userAgent);
2729
+ firstScroll = true;
2730
+ &nbsp;
2731
+ tooltipOptions = {
2732
+ 'show-delay': 1500,
2733
+ 'tooltip-class': 'chat-tooltip',
2734
+ 'theme': 'light',
2735
+ 'shadow': false,
2736
+ 'hide-delay-mobile': 0,
2737
+ 'hideDelayAfterClick': 3000,
2738
+ 'hide-delay': 200
2739
+ };
2740
+ &nbsp;
2741
+ translationMapHeader: Map&lt;string, string&gt;;
2742
+ translationMapFooter: Map&lt;string, string&gt;;
2743
+ translationMapContent: Map&lt;string, string&gt;;
2744
+ translationMapPreview: Map&lt;string, string&gt;;
2745
+ &nbsp;
2746
+ // ========== begin:: typying =======
2747
+ public isTypings = false;
2748
+ public isDirect = false;
2749
+ public idUserTypingNow: string;
2750
+ public nameUserTypingNow: string;
2751
+ private setTimeoutWritingMessages;
2752
+ membersConversation = ['SYSTEM'];
2753
+ // ========== end:: typying =======
2754
+ &nbsp;
2755
+ @ViewChild(ConversationFooterComponent) conversationFooter: ConversationFooterComponent
2756
+ @ViewChild(ConversationContentComponent) conversationContent: ConversationContentComponent
2757
+ conversationHandlerService: ConversationHandlerService
2758
+ conversationsHandlerService: ConversationsHandlerService
2759
+ archivedConversationsHandlerService: ArchivedConversationsHandlerService
2760
+ &nbsp;
2761
+ public isButtonUrl: boolean = false;
2762
+ public buttonClicked: any;
2763
+ private logger: LoggerService = LoggerInstance.getInstance();
2764
+ &nbsp;
2765
+ constructor(
2766
+ //public el: ElementRef,
2767
+ public g: Globals,
2768
+ public starRatingWidgetService: StarRatingWidgetService,
2769
+ public sanitizer: DomSanitizer,
2770
+ public appComponent: AppComponent,
2771
+ public appStorageService: AppStorageService,
2772
+ public conversationHandlerBuilderService: ConversationHandlerBuilderService,
2773
+ public appConfigService: AppConfigService,
2774
+ private customTranslateService: CustomTranslateService,
2775
+ private chatManager: ChatManager,
2776
+ public typingService: TypingService,
2777
+ private tiledeskRequestService: TiledeskRequestsService,
2778
+ private changeDetectorRef: ChangeDetectorRef,
2779
+ private elementRef: ElementRef
2780
+ ) { }
2781
+ &nbsp;
2782
+ <span class="fstat-no" title="function not covered" > onResize(</span>event){
2783
+ <span class="cstat-no" title="statement not covered" > this.logger.debug('[CONV-COMP] resize event', event)</span>
2784
+ }
2785
+ &nbsp;
2786
+ ngOnInit() {
2787
+ // this.initAll();
2788
+ this.logger.debug('[CONV-COMP] ngOnInit: ', this.senderId);
2789
+ this.showMessageWelcome = false;
2790
+ // const subscriptionEndRenderMessage = this.appComponent.obsEndRenderMessage.subscribe(() =&gt; {
2791
+ // this.ngZone.run(() =&gt; {
2792
+ // // that.scrollToBottom();
2793
+ // });
2794
+ // });
2795
+ // this.subscriptions.push(subscriptionEndRenderMessage);
2796
+ // this.attributes = this.setAttributes();
2797
+ // this.getTranslation();
2798
+ this.translations();
2799
+ //this.initAll();
2800
+ &nbsp;
2801
+ }
2802
+ &nbsp;
2803
+ public translations() {
2804
+ const keysHeader = [
2805
+ //'LABEL_AVAILABLE',
2806
+ //'LABEL_NOT_AVAILABLE',
2807
+ //'LABEL_TODAY',
2808
+ //'LABEL_TOMORROW',
2809
+ //'LABEL_TO',
2810
+ 'LABEL_LAST_ACCESS',
2811
+ //'ARRAY_DAYS',
2812
+ //'LABEL_ACTIVE_NOW',
2813
+ 'LABEL_WRITING',
2814
+ 'BUTTON_CLOSE_TO_ICON',
2815
+ 'OPTIONS',
2816
+ 'PREV_CONVERSATIONS',
2817
+ 'SOUND_OFF',
2818
+ 'SOUND_ON',
2819
+ 'DOWNLOAD_TRANSCRIPT',
2820
+ 'BACK',
2821
+ 'CLOSE',
2822
+ 'MAXIMIZE',
2823
+ 'MINIMIZE',
2824
+ 'CLOSE_CHAT',
2825
+ 'RESTART',
2826
+ 'LOGOUT'
2827
+ ];
2828
+ &nbsp;
2829
+ const keysFooter = [
2830
+ 'LABEL_PLACEHOLDER',
2831
+ 'GUEST_LABEL',
2832
+ 'LABEL_START_NW_CONV',
2833
+ 'CONTINUE'
2834
+ ];
2835
+ &nbsp;
2836
+ const keysContent = [
2837
+ 'INFO_SUPPORT_USER_ADDED_SUBJECT',
2838
+ 'INFO_SUPPORT_USER_ADDED_YOU_VERB',
2839
+ 'INFO_SUPPORT_USER_ADDED_COMPLEMENT',
2840
+ 'INFO_SUPPORT_USER_ADDED_VERB',
2841
+ 'INFO_SUPPORT_CHAT_REOPENED',
2842
+ 'INFO_SUPPORT_CHAT_CLOSED',
2843
+ 'INFO_A_NEW_SUPPORT_REQUEST_HAS_BEEN_ASSIGNED_TO_YOU',
2844
+ 'INFO_SUPPORT_LEAD_UPDATED',
2845
+ 'INFO_SUPPORT_MEMBER_LEFT_GROUP',
2846
+ 'LABEL_TODAY',
2847
+ 'LABEL_TOMORROW',
2848
+ 'LABEL_LOADING',
2849
+ 'LABEL_TO',
2850
+ 'ARRAY_DAYS',
2851
+ ];
2852
+ &nbsp;
2853
+ const keysPreview= [
2854
+ 'BACK',
2855
+ 'CLOSE',
2856
+ 'LABEL_PLACEHOLDER',
2857
+ 'LABEL_PREVIEW'
2858
+ ];
2859
+ &nbsp;
2860
+
2861
+ this.translationMapHeader = this.customTranslateService.translateLanguage(keysHeader);
2862
+ this.translationMapFooter = this.customTranslateService.translateLanguage(keysFooter);
2863
+ this.translationMapContent = this.customTranslateService.translateLanguage(keysContent);
2864
+ this.translationMapPreview = this.customTranslateService.translateLanguage(keysPreview);
2865
+ }
2866
+ &nbsp;
2867
+ <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" > ngAfterViewInit(</span></span>) {
2868
+ <span class="cstat-no" title="statement not covered" > this.logger.debug('[CONV-COMP] --------ngAfterViewInit: conversation-------- ');</span>
2869
+ // this.storageService.setItem('activeConversation', this.conversation.uid);
2870
+
2871
+ // --------------------------- //
2872
+ // after animation intro
2873
+ <span class="cstat-no" title="statement not covered" > setTimeout(<span class="fstat-no" title="function not covered" >() =&gt; {</span></span>
2874
+ <span class="cstat-no" title="statement not covered" > this.initAll();</span>
2875
+ // this.setFocusOnId('chat21-main-message-context');
2876
+ //this.updateConversationBadge();
2877
+ &nbsp;
2878
+ // this.g.currentConversationComponent = this;
2879
+ <span class="cstat-no" title="statement not covered" > if (this.g.newConversationStart === true) {</span>
2880
+ <span class="cstat-no" title="statement not covered" > this.onNewConversationComponentInit();</span>
2881
+ <span class="cstat-no" title="statement not covered" > this.g.newConversationStart = false;</span>
2882
+ }
2883
+ <span class="cstat-no" title="statement not covered" > this.setSubscriptions();</span>
2884
+ <span class="cstat-no" title="statement not covered" > if (this.afConversationComponent) {</span>
2885
+ <span class="cstat-no" title="statement not covered" > this.afConversationComponent.nativeElement.focus();</span>
2886
+ }
2887
+ <span class="cstat-no" title="statement not covered" > this.isButtonsDisabled = false;</span>
2888
+ }, 300);
2889
+ }
2890
+ &nbsp;
2891
+ <span class="fstat-no" title="function not covered" > ngAfterViewChecked(</span>){
2892
+ <span class="cstat-no" title="statement not covered" > this.changeDetectorRef.detectChanges();</span>
2893
+ }
2894
+ &nbsp;
2895
+ <span class="fstat-no" title="function not covered" > ngOnChanges(</span>changes: SimpleChanges) {
2896
+ <span class="cstat-no" title="statement not covered" > this.logger.debug('[CONV-COMP] onChagnges', changes)</span>
2897
+ <span class="cstat-no" title="statement not covered" > if(this.stylesMap){</span>
2898
+ <span class="cstat-no" title="statement not covered" > this.elementRef.nativeElement.style.setProperty('--themeColor', this.stylesMap.get('themeColor'))</span>
2899
+ <span class="cstat-no" title="statement not covered" > this.elementRef.nativeElement.style.setProperty('--foregroundColor', this.stylesMap.get('foregroundColor'))</span>
2900
+ }
2901
+ <span class="cstat-no" title="statement not covered" > if (this.isOpen === true) {</span>
2902
+ //this.updateConversationBadge();
2903
+ // this.scrollToBottom();
2904
+ }
2905
+ // CHECK if conversationId is changed and re-build component
2906
+ <span class="cstat-no" title="statement not covered" > if(changes &amp;&amp; changes['conversationId'] &amp;&amp; changes['conversationId'].previousValue !== undefined &amp;&amp; (changes['conversationId'].previousValue !== changes['conversationId'].currentValue)){</span>
2907
+ <span class="cstat-no" title="statement not covered" > this.logger.debug("[CONV-COMP] UID CHANGESSSS", changes['conversationId'])</span>
2908
+
2909
+ <span class="cstat-no" title="statement not covered" > this.ngOnDestroy();</span>
2910
+ <span class="cstat-no" title="statement not covered" > this.ngOnInit();</span>
2911
+ <span class="cstat-no" title="statement not covered" > this.ngAfterViewInit();</span>
2912
+ }
2913
+ }
2914
+ &nbsp;
2915
+ <span class="fstat-no" title="function not covered" > updateConversationBadge(</span>) {
2916
+ <span class="cstat-no" title="statement not covered" > this.logger.debug('[CONV-COMP] updateConversationBadge', this.conversationId, this.isConversationArchived)</span>
2917
+ <span class="cstat-no" title="statement not covered" > if(this.isConversationArchived &amp;&amp; this.conversationId &amp;&amp; this.archivedConversationsHandlerService){</span>
2918
+ <span class="cstat-no" title="statement not covered" > this.archivedConversationsHandlerService.setConversationRead(this.conversationId)</span>
2919
+ }
2920
+ <span class="cstat-no" title="statement not covered" > if (!this.isConversationArchived &amp;&amp; this.conversationId &amp;&amp; this.conversationsHandlerService) {</span>
2921
+ <span class="cstat-no" title="statement not covered" > this.conversationsHandlerService.setConversationRead(this.conversationId)</span>
2922
+ const badgeNewConverstionNumber = <span class="cstat-no" title="statement not covered" >this.conversationsHandlerService.countIsNew()</span>
2923
+ <span class="cstat-no" title="statement not covered" > this.g.setParameter('conversationsBadge', badgeNewConverstionNumber);</span>
2924
+ }
2925
+ &nbsp;
2926
+ }
2927
+ &nbsp;
2928
+ /**
2929
+ * do per scontato che this.userId esiste!!!
2930
+ */
2931
+ <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" > initAll(</span></span>) {
2932
+ &nbsp;
2933
+ <span class="cstat-no" title="statement not covered" > this.logger.debug('[CONV-COMP] ------ 2: setConversation ------ ');</span>
2934
+ <span class="cstat-no" title="statement not covered" > this.setConversation();</span>
2935
+ &nbsp;
2936
+ <span class="cstat-no" title="statement not covered" > this.logger.debug('[CONV-COMP] ------ 3: connectConversation ------ ');</span>
2937
+ // this.connectConversation();
2938
+ <span class="cstat-no" title="statement not covered" > this.initConversationHandler();</span>
2939
+ &nbsp;
2940
+ <span class="cstat-no" title="statement not covered" > this.logger.debug('[CONV-COMP] ------ 4: initializeChatManager ------ ');</span>
2941
+ //this.initializeChatManager();
2942
+ &nbsp;
2943
+ // sponziello, commentato
2944
+ // this.logger.debug('[CONV-COMP] ------ 5: setAvailableAgentsStatus ------ ');
2945
+ // this.setAvailableAgentsStatus();
2946
+ &nbsp;
2947
+ // this.logger.debug('[CONV-COMP] ------ 5: updateConversationbage ------ ');
2948
+ // this.updateConversationBadge();
2949
+ &nbsp;
2950
+ <span class="cstat-no" title="statement not covered" > this.logger.debug('[CONV-COMP] ------ 6: getConversationDetail ------ ', this.conversationId);</span>
2951
+ <span class="cstat-no" title="statement not covered" > this.getConversationDetail(<span class="fstat-no" title="function not covered" >(i</span>sConversationArchived) =&gt; {</span>
2952
+ <span class="cstat-no" title="statement not covered" > this.logger.debug('[CONV-COMP] ------ 6: updateConversationbage ------ ');</span>
2953
+ <span class="cstat-no" title="statement not covered" > this.updateConversationBadge();</span>
2954
+ <span class="cstat-no" title="statement not covered" > return;</span>
2955
+ }) //check if conv is archived or not
2956
+ // this.checkListMessages();
2957
+ &nbsp;
2958
+ <span class="cstat-no" title="statement not covered" > if(this.g.customAttributes){</span>
2959
+ <span class="cstat-no" title="statement not covered" > this.updateUserInfo(this.g.customAttributes)</span>
2960
+ }
2961
+ &nbsp;
2962
+ <span class="cstat-no" title="statement not covered" > this.logger.debug('[CONV-COMP] ------ 7: initializeTyping()', this.conversationId)</span>
2963
+ <span class="cstat-no" title="statement not covered" > this.initializeTyping();</span>
2964
+ }
2965
+ &nbsp;
2966
+ /**
2967
+ * @description get detail of conversation by uid and then return callback with conversation status
2968
+ * @param callback
2969
+ * @returns isConversationArchived (status conversation archived: boolean)
2970
+ */
2971
+ <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" > getConversationDetail(</span></span>callback:(isConversationArchived: boolean)=&gt;void){
2972
+ // if(!this.isConversationArchived){
2973
+ //get conversation from 'conversations' firebase node
2974
+ <span class="cstat-no" title="statement not covered" > this.logger.debug('[CONV-COMP] getConversationDetail: isConversationArchived???', this.isConversationArchived, this.conversationWith)</span>
2975
+ <span class="cstat-no" title="statement not covered" > this.conversationsHandlerService.getConversationDetail(this.conversationWith, <span class="fstat-no" title="function not covered" >(c</span>onv)=&gt;{</span>
2976
+ <span class="cstat-no" title="statement not covered" > this.logger.debug('[CONV-COMP] getConversationDetail: conversationsHandlerService ', this.conversationWith, conv, this.isConversationArchived)</span>
2977
+ <span class="cstat-no" title="statement not covered" > if(conv){</span>
2978
+ <span class="cstat-no" title="statement not covered" > this.conversation = conv;</span>
2979
+ // let duration = getDateDifference(new Date(+this.conversation.timestamp * 1000) , new Date(1661439632 * 1000))
2980
+ <span class="cstat-no" title="statement not covered" > this.isConversationArchived = false;</span>
2981
+ <span class="cstat-no" title="statement not covered" > callback(this.isConversationArchived)</span>
2982
+ }
2983
+ <span class="cstat-no" title="statement not covered" > if(!conv){</span>
2984
+ //get conversation from 'archivedconversations' firebase node
2985
+ <span class="cstat-no" title="statement not covered" > this.logger.debug('[CONV-COMP] getConversationDetail: conv not exist --&gt; search in archived list', this.isConversationArchived, this.conversationWith)</span>
2986
+ <span class="cstat-no" title="statement not covered" > this.archivedConversationsHandlerService.getConversationDetail(this.conversationWith, <span class="fstat-no" title="function not covered" >(c</span>onv)=&gt;{</span>
2987
+ <span class="cstat-no" title="statement not covered" > this.logger.debug('[CONV-COMP] getConversationDetail: archivedConversationsHandlerService', this.conversationWith, conv, this.isConversationArchived)</span>
2988
+ <span class="cstat-no" title="statement not covered" > if(conv){</span>
2989
+ <span class="cstat-no" title="statement not covered" > this.conversation = conv;</span>
2990
+ <span class="cstat-no" title="statement not covered" > this.isConversationArchived = true;</span>
2991
+ /**calc time difference between now and last conversation timestamp to allow "Continue" button */
2992
+ let duration = <span class="cstat-no" title="statement not covered" >getDateDifference(this.conversation.timestamp, Date.now())</span>
2993
+ <span class="cstat-no" title="statement not covered" > duration.hours &lt; this.g.continueConversationBeforeTime? this.showContinueConversationButton = true: this.showContinueConversationButton = false</span>
2994
+ <span class="cstat-no" title="statement not covered" > callback(this.isConversationArchived)</span>
2995
+ }else <span class="cstat-no" title="statement not covered" >if(!conv) {</span>
2996
+ <span class="cstat-no" title="statement not covered" > callback(null);</span>
2997
+ }
2998
+ })
2999
+ }
3000
+ });
3001
+ // } else { //get conversation from 'conversations' firebase node
3002
+ // this.archivedConversationsHandlerService.getConversationDetail(this.conversationId, (conv)=&gt;{
3003
+ // this.logger.debug('[CONV-COMP] archivedConversationsHandlerService getConversationDetail', this.conversationId, conv, this.isConversationArchived)
3004
+ // if(conv){
3005
+ // this.conversation = conv;
3006
+ // this.isConversationArchived = true;
3007
+ // callback(this.isConversationArchived)
3008
+ // }
3009
+ // if(!conv){
3010
+ // this.conversationsHandlerService.getConversationDetail(this.conversationId, (conv)=&gt;{
3011
+ // this.logger.debug('[CONV-COMP] conversationsHandlerService getConversationDetail', this.conversationId, conv, this.isConversationArchived)
3012
+ // conv? this.isConversationArchived = false : null
3013
+ // this.conversation = conv;
3014
+ // callback(this.isConversationArchived)
3015
+ // })
3016
+ // }
3017
+ // })
3018
+ // }
3019
+
3020
+ // if(!this.isConversationArchived){ //get conversation from 'conversations' firebase node
3021
+ // this.conversationsHandlerService.getConversationDetail(this.conversationId, (conv)=&gt;{
3022
+ // this.logger.debug('[CONV-COMP] conversationsHandlerService getConversationDetail', this.conversationId, conv)
3023
+ // this.conversation = conv;
3024
+ // callback(this.isConversationArchived)
3025
+ // })
3026
+ // }else { //get conversation from 'conversations' firebase node
3027
+ // this.archivedConversationsHandlerService.getConversationDetail(this.conversationId, (conv)=&gt;{
3028
+ // this.logger.debug('[CONV-COMP] archivedConversationsHandlerService getConversationDetail', this.conversationId, conv)
3029
+ // this.conversation = conv;
3030
+ // callback(this.isConversationArchived)
3031
+ // })
3032
+ // }
3033
+ // this.updateConversationBadge()
3034
+ }
3035
+ &nbsp;
3036
+ /**
3037
+ * this.g.recipientId:
3038
+ * this.g.senderId:
3039
+ * this.g.channelType:
3040
+ * this.g.tenant
3041
+ * 1 - setto channelTypeTEMP ( group / direct )
3042
+ * a seconda che recipientId contenga o meno 'group'
3043
+ * 2 - setto conversationWith
3044
+ * 2 - setto conversationWith
3045
+ * uguale a recipientId se esiste
3046
+ * uguale al senderId nel this.storageService se esiste
3047
+ * generateUidConversation
3048
+ */
3049
+ <span class="fstat-no" title="function not covered" > private s</span>etConversation() {
3050
+ const recipientId = <span class="cstat-no" title="statement not covered" >this.g.recipientId;</span>
3051
+ const channelType = <span class="cstat-no" title="statement not covered" >this.g.channelType;</span>
3052
+ <span class="cstat-no" title="statement not covered" > this.logger.debug('[CONV-COMP] setConversation recipientId::: ', recipientId, channelType);</span>
3053
+ <span class="cstat-no" title="statement not covered" > if ( !recipientId ) { <span class="cstat-no" title="statement not covered" >this.g.setParameter('recipientId', this.setRecipientId()); </span>}</span>
3054
+ <span class="cstat-no" title="statement not covered" > if ( !channelType ) { <span class="cstat-no" title="statement not covered" >this.g.setParameter('channelType', this.setChannelType()); </span>}</span>
3055
+ <span class="cstat-no" title="statement not covered" > this.conversationWith = recipientId as string;</span>
3056
+ <span class="cstat-no" title="statement not covered" > this.logger.debug('[CONV-COMP] setConversation conversation::: ', this.conversation);</span>
3057
+ <span class="cstat-no" title="statement not covered" > if (!this.conversation) {</span>
3058
+ // this.conversation = new ConversationModel(
3059
+ // recipientId,
3060
+ // {},
3061
+ // channelType,
3062
+ // true,
3063
+ // '',
3064
+ // recipientId,
3065
+ // this.g.recipientFullname,
3066
+ // this.senderId,
3067
+ // this.g.userFullname,
3068
+ // '0',
3069
+ // 0,
3070
+ // TYPE_MSG_TEXT,
3071
+ // '',
3072
+ // '',
3073
+ // '',
3074
+ // '',
3075
+ // 0,
3076
+ // false
3077
+ // );
3078
+ <span class="cstat-no" title="statement not covered" > this.conversation = new ConversationModel(</span>
3079
+ recipientId,
3080
+ this.g.attributes,
3081
+ channelType,
3082
+ this.g.recipientFullname,
3083
+ this.conversationWith,
3084
+ recipientId,
3085
+ this.g.recipientFullname,
3086
+ '',
3087
+ true,
3088
+ '',
3089
+ '',
3090
+ this.senderId,
3091
+ '',
3092
+ this.g.userFullname,
3093
+ '0',
3094
+ '',
3095
+ true,
3096
+ '',
3097
+ '',
3098
+ false,
3099
+ 'text')
3100
+ }
3101
+ }
3102
+ &nbsp;
3103
+ &nbsp;
3104
+ /**
3105
+ *
3106
+ */
3107
+ <span class="fstat-no" title="function not covered" > private s</span>etRecipientId() {
3108
+ let recipientIdTEMP: string;
3109
+ const senderId = <span class="cstat-no" title="statement not covered" >this.senderId;</span>
3110
+ <span class="cstat-no" title="statement not covered" > recipientIdTEMP = this.appStorageService.getItem(senderId);</span>
3111
+ <span class="cstat-no" title="statement not covered" > if (!recipientIdTEMP) {</span>
3112
+ // questa deve essere sincrona!!!!
3113
+ // recipientIdTEMP = UID_SUPPORT_GROUP_MESSAGES + uuidv4(); &gt;&gt;&gt;&gt;&gt;OLD
3114
+ <span class="cstat-no" title="statement not covered" > recipientIdTEMP = UID_SUPPORT_GROUP_MESSAGES + this.g.projectid + '-' + uuidv4().replace(/-/g, '');</span>
3115
+ <span class="cstat-no" title="statement not covered" > this.logger.debug('[CONV-COMP] recipitent', recipientIdTEMP)</span>
3116
+ //recipientIdTEMP = this.messagingService.generateUidConversation(senderId);
3117
+ }
3118
+ <span class="cstat-no" title="statement not covered" > return recipientIdTEMP;</span>
3119
+ }
3120
+ &nbsp;
3121
+ /**
3122
+ *
3123
+ */
3124
+ <span class="fstat-no" title="function not covered" > private s</span>etChannelType() {
3125
+ let channelTypeTEMP = <span class="cstat-no" title="statement not covered" >CHANNEL_TYPE_GROUP;</span>
3126
+ const projectid = <span class="cstat-no" title="statement not covered" >this.g.projectid;</span>
3127
+ <span class="cstat-no" title="statement not covered" > if (this.g.recipientId &amp;&amp; this.g.recipientId.indexOf('group') !== -1) {</span>
3128
+ <span class="cstat-no" title="statement not covered" > channelTypeTEMP = CHANNEL_TYPE_GROUP;</span>
3129
+ } else <span class="cstat-no" title="statement not covered" >if (!projectid) {</span>
3130
+ <span class="cstat-no" title="statement not covered" > channelTypeTEMP = CHANNEL_TYPE_DIRECT;</span>
3131
+ }
3132
+ <span class="cstat-no" title="statement not covered" > return channelTypeTEMP;</span>
3133
+ }
3134
+ &nbsp;
3135
+ &nbsp;
3136
+ /**
3137
+ * recupero da chatManager l'handler
3138
+ * se NON ESISTE creo un handler e mi connetto e lo memorizzo nel chatmanager
3139
+ * se ESISTE mi connetto
3140
+ * carico messaggi
3141
+ * attendo x sec se nn arrivano messaggi visualizzo msg welcome
3142
+ */
3143
+ <span class="fstat-no" title="function not covered" > initConversationHandler(</span>) {
3144
+ const tenant = <span class="cstat-no" title="statement not covered" >this.g.tenant;</span>
3145
+ <span class="cstat-no" title="statement not covered" > this.messages = [];</span>
3146
+ //TODO-GAB: da sistemare loggedUser in firebase-conversation-handler.service
3147
+ const loggedUser = <span class="cstat-no" title="statement not covered" >{ uid: this.senderId}</span>
3148
+ const conversationWithFullname = <span class="cstat-no" title="statement not covered" >this.g.recipientFullname;</span> // TODO-GAB: risulta null a questo punto
3149
+ <span class="cstat-no" title="statement not covered" > this.logger.debug('[CONV-COMP] initconversation NEWWW', loggedUser, conversationWithFullname, tenant)</span>
3150
+ <span class="cstat-no" title="statement not covered" > this.showMessageWelcome = false;</span>
3151
+ const handler: ConversationHandlerService = <span class="cstat-no" title="statement not covered" >this.chatManager.getConversationHandlerByConversationId(this.conversationWith);</span>
3152
+ <span class="cstat-no" title="statement not covered" > this.logger.debug('[CONV-COMP] DETTAGLIO CONV - handler **************', handler, this.conversationWith);</span>
3153
+ <span class="cstat-no" title="statement not covered" > if (!handler) {</span>
3154
+ <span class="cstat-no" title="statement not covered" > this.conversationHandlerService = this.conversationHandlerBuilderService.build();</span>
3155
+ <span class="cstat-no" title="statement not covered" > this.conversationHandlerService.initialize(</span>
3156
+ this.conversationWith,
3157
+ conversationWithFullname,
3158
+ loggedUser,
3159
+ tenant,
3160
+ this.translationMapContent,
3161
+ this.g.showInfoMessage
3162
+ );
3163
+ <span class="cstat-no" title="statement not covered" > this.conversationHandlerService.connect();</span>
3164
+ <span class="cstat-no" title="statement not covered" > this.logger.debug('[CONV-COMP] DETTAGLIO CONV - NEW handler **************', this.conversationHandlerService);</span>
3165
+ <span class="cstat-no" title="statement not covered" > this.messages = this.conversationHandlerService.messages;</span>
3166
+
3167
+ /* SEND FIRST MESSAGE if preChatForm has 'firstMessage' key */
3168
+ <span class="cstat-no" title="statement not covered" > this.sendFirstMessagePreChatForm()</span>
3169
+
3170
+ <span class="cstat-no" title="statement not covered" > this.logger.debug('[CONV-COMP] DETTAGLIO CONV - messages **************', this.messages);</span>
3171
+ <span class="cstat-no" title="statement not covered" > this.chatManager.addConversationHandler(this.conversationHandlerService);</span>
3172
+ &nbsp;
3173
+ // attendo un secondo e poi visualizzo il messaggio se nn ci sono messaggi
3174
+ const that = <span class="cstat-no" title="statement not covered" >this;</span>
3175
+ <span class="cstat-no" title="statement not covered" > setTimeout( <span class="fstat-no" title="function not covered" >() =&gt; {</span></span>
3176
+ <span class="cstat-no" title="statement not covered" > if (!that.messages || that.messages.length === 0) {</span>
3177
+ //this.showIonContent = true;
3178
+ <span class="cstat-no" title="statement not covered" > that.showMessageWelcome = true;</span>
3179
+ // that.sendFirstMessage()
3180
+ <span class="cstat-no" title="statement not covered" > that.logger.debug('[CONV-COMP] setTimeout ***', that.showMessageWelcome);</span>
3181
+ }
3182
+ }, 8000);
3183
+ &nbsp;
3184
+ } else {
3185
+ <span class="cstat-no" title="statement not covered" > this.logger.debug('[CONV-COMP] NON ENTRO ***', this.conversationHandlerService, handler);</span>
3186
+ <span class="cstat-no" title="statement not covered" > this.conversationHandlerService = handler;</span>
3187
+ <span class="cstat-no" title="statement not covered" > this.messages = this.conversationHandlerService.messages;</span>
3188
+ // sicuramente ci sono messaggi
3189
+ // la conversazione l'ho già caricata precedentemente
3190
+ // mi arriva sempre notifica dell'ultimo msg (tramite BehaviorSubject)
3191
+ // scrollo al bottom della pagina
3192
+ }
3193
+ <span class="cstat-no" title="statement not covered" > this.logger.debug('[CONV-COMP] CONVERSATION MESSAGES ' + this.messages );</span>
3194
+ &nbsp;
3195
+ //retrive active and archived conversations-handler service
3196
+ <span class="cstat-no" title="statement not covered" > this.conversationsHandlerService = this.chatManager.conversationsHandlerService</span>
3197
+ <span class="cstat-no" title="statement not covered" > this.archivedConversationsHandlerService = this.chatManager.archivedConversationsService</span>
3198
+ &nbsp;
3199
+ }
3200
+ &nbsp;
3201
+ /**
3202
+ * se nel preChatForm c'è una chiave 'firstMessage'
3203
+ * e la conversazione non ha altri messaggi, invio il firstMessage
3204
+ * del preChatForm appena compilato
3205
+ */
3206
+ <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" > sendFirstMessagePreChatForm(</span></span>){
3207
+ <span class="cstat-no" title="statement not covered" > setTimeout(<span class="fstat-no" title="function not covered" >() =&gt; {</span></span>
3208
+ <span class="cstat-no" title="statement not covered" > if(this.messages &amp;&amp; this.messages.length === 0){</span>
3209
+ <span class="cstat-no" title="statement not covered" > this.logger.debug('[CONV-COMP] sendFirstMessage: messages + attributes ',this.messages, this.g.attributes)</span>
3210
+ <span class="cstat-no" title="statement not covered" > if(this.g.attributes &amp;&amp; this.g.attributes.preChatForm &amp;&amp; this.g.attributes.preChatForm.firstMessage){</span>
3211
+ const firstMessage = <span class="cstat-no" title="statement not covered" >this.g.attributes.preChatForm.firstMessage</span>
3212
+ <span class="cstat-no" title="statement not covered" > this.conversationFooter.sendMessage(firstMessage, TYPE_MSG_TEXT, this.g.attributes) </span>
3213
+ }
3214
+ }
3215
+ }, 1000);
3216
+ }
3217
+ &nbsp;
3218
+ &nbsp;
3219
+ <span class="fstat-no" title="function not covered" > initializeTyping(</span>) {
3220
+ <span class="cstat-no" title="statement not covered" > this.logger.debug('[CONV-COMP] membersconversation', this.membersConversation)</span>
3221
+ <span class="cstat-no" title="statement not covered" > this.membersConversation.push(this.senderId)</span>
3222
+ //this.setSubscriptions();
3223
+ <span class="cstat-no" title="statement not covered" > this.typingService.isTyping(this.conversationId, this.senderId, this.isDirect);</span>
3224
+
3225
+ }
3226
+ &nbsp;
3227
+ /** */
3228
+ <span class="fstat-no" title="function not covered" > subscribeTypings(</span>data: any) {
3229
+ const that = <span class="cstat-no" title="statement not covered" >this;</span>
3230
+ <span class="cstat-no" title="statement not covered" > try {</span>
3231
+ const key = <span class="cstat-no" title="statement not covered" >data.uidUserTypingNow;</span>
3232
+ const waitTime = <span class="cstat-no" title="statement not covered" >data.waitTime</span>
3233
+ <span class="cstat-no" title="statement not covered" > this.nameUserTypingNow = null;</span>
3234
+ <span class="cstat-no" title="statement not covered" > this.idUserTypingNow = null;</span>
3235
+ &nbsp;
3236
+ <span class="cstat-no" title="statement not covered" > if (data.nameUserTypingNow) {</span>
3237
+ <span class="cstat-no" title="statement not covered" > this.nameUserTypingNow = data.nameUserTypingNow;</span>
3238
+ }
3239
+ <span class="cstat-no" title="statement not covered" > if (data.uidUserTypingNow){</span>
3240
+ <span class="cstat-no" title="statement not covered" > this.idUserTypingNow = data.uidUserTypingNow</span>
3241
+ }
3242
+ <span class="cstat-no" title="statement not covered" > this.logger.debug('[CONV-COMP] subscribeTypings data:', data);</span>
3243
+ const userTyping = <span class="cstat-no" title="statement not covered" >this.membersConversation.includes(key);</span>
3244
+ <span class="cstat-no" title="statement not covered" > if ( !userTyping &amp;&amp; key) {</span>
3245
+ <span class="cstat-no" title="statement not covered" > this.isTypings = true;</span>
3246
+ <span class="cstat-no" title="statement not covered" > setTimeout(<span class="fstat-no" title="function not covered" >function () {</span></span>
3247
+ <span class="cstat-no" title="statement not covered" > that.conversationContent.scrollToBottom();</span>
3248
+ }, 0);
3249
+ // clearTimeout(this.setTimeoutWritingMessages);
3250
+ <span class="cstat-no" title="statement not covered" > this.setTimeoutWritingMessages = setTimeout(<span class="fstat-no" title="function not covered" >() =&gt; {</span></span>
3251
+ <span class="cstat-no" title="statement not covered" > that.isTypings = false;</span>
3252
+ }, waitTime);
3253
+ // this.initiTimeout(waitTime)
3254
+ }
3255
+ } catch (error) {
3256
+ <span class="cstat-no" title="statement not covered" > this.logger.error('[CONV-COMP] error: ', error);</span>
3257
+ }
3258
+ &nbsp;
3259
+ }
3260
+ &nbsp;
3261
+ <span class="fstat-no" title="function not covered" > initiTimeout(</span>waitTime){
3262
+ const that = <span class="cstat-no" title="statement not covered" >this;</span>
3263
+ <span class="cstat-no" title="statement not covered" > this.setTimeoutWritingMessages = setTimeout(<span class="fstat-no" title="function not covered" >() =&gt; {</span></span>
3264
+ <span class="cstat-no" title="statement not covered" > that.isTypings = false;</span>
3265
+ }, waitTime);
3266
+ }
3267
+ &nbsp;
3268
+ <span class="fstat-no" title="function not covered" > resetTimeout(</span>){
3269
+ <span class="cstat-no" title="statement not covered" > this.isTypings = false</span>
3270
+ <span class="cstat-no" title="statement not covered" > this.setTimeoutWritingMessages = null;</span>
3271
+ <span class="cstat-no" title="statement not covered" > clearTimeout(this.setTimeoutWritingMessages)</span>
3272
+ }
3273
+ &nbsp;
3274
+ /**
3275
+ * imposto le sottoscrizioni
3276
+ * 1 - conversazione chiusa (CHAT CHIUSA)
3277
+ * 2 - nuovo messaggio
3278
+ */
3279
+ <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" > setSubscriptions(</span></span>) {
3280
+ const that = <span class="cstat-no" title="statement not covered" >this;</span>
3281
+ let subscribtion: any;
3282
+ let subscribtionKey: string;
3283
+ &nbsp;
3284
+ <span class="cstat-no" title="statement not covered" > subscribtionKey = 'starRating';</span>
3285
+ <span class="cstat-no" title="statement not covered" > subscribtion = this.subscriptions.find(<span class="fstat-no" title="function not covered" >item </span>=&gt; <span class="cstat-no" title="statement not covered" >item.key === subscribtionKey);</span></span>
3286
+ <span class="cstat-no" title="statement not covered" > if (!subscribtion) {</span>
3287
+ <span class="cstat-no" title="statement not covered" > this.starRatingWidgetService.setOsservable(false);</span>
3288
+ // CHIUSURA CONVERSAZIONE (ELIMINAZIONE UTENTE DAL GRUPPO)
3289
+ // tslint:disable-next-line:max-line-length
3290
+ <span class="cstat-no" title="statement not covered" > this.logger.debug('[CONV-COMP] setSubscriptions!!!! StartRating', this.starRatingWidgetService.obsCloseConversation.value);</span>
3291
+ <span class="cstat-no" title="statement not covered" > subscribtion = this.starRatingWidgetService.obsCloseConversation.pipe(takeUntil(this.unsubscribe$)).subscribe(<span class="fstat-no" title="function not covered" >isOpenStartRating </span>=&gt; {</span>
3292
+ <span class="cstat-no" title="statement not covered" > this.logger.debug('[CONV-COMP] startratingggg', isOpenStartRating)</span>
3293
+ <span class="cstat-no" title="statement not covered" > that.g.setParameter('isOpenStartRating', isOpenStartRating);</span>
3294
+ <span class="cstat-no" title="statement not covered" > if (isOpenStartRating === false) {</span>
3295
+ <span class="cstat-no" title="statement not covered" > this.logger.debug('[CONV-COMP] NOT OPEN StartRating **');</span>
3296
+ } else <span class="cstat-no" title="statement not covered" >if (isOpenStartRating === true) {</span>
3297
+ <span class="cstat-no" title="statement not covered" > this.logger.debug('[CONV-COMP] OPEN StartRating **');</span>
3298
+ }
3299
+ });
3300
+ const subscribe = <span class="cstat-no" title="statement not covered" >{key: subscribtionKey, value: subscribtion };</span>
3301
+ <span class="cstat-no" title="statement not covered" > this.subscriptions.push(subscribe);</span>
3302
+ }
3303
+ &nbsp;
3304
+ &nbsp;
3305
+ <span class="cstat-no" title="statement not covered" > subscribtionKey = 'messageAdded';</span>
3306
+ <span class="cstat-no" title="statement not covered" > subscribtion = this.subscriptions.find(<span class="fstat-no" title="function not covered" >item </span>=&gt; <span class="cstat-no" title="statement not covered" >item.key === subscribtionKey);</span></span>
3307
+ <span class="cstat-no" title="statement not covered" > if (!subscribtion) {</span>
3308
+ <span class="cstat-no" title="statement not covered" > this.logger.debug('[CONV-COMP] ***** add messageAdded *****', this.conversationHandlerService);</span>
3309
+ <span class="cstat-no" title="statement not covered" > subscribtion = this.conversationHandlerService.messageAdded.pipe(takeUntil(this.unsubscribe$)).subscribe(<span class="fstat-no" title="function not covered" >(m</span>sg: MessageModel) =&gt; {</span>
3310
+ <span class="cstat-no" title="statement not covered" > this.logger.debug('[CONV-COMP] ***** DETAIL messageAdded *****', msg);</span>
3311
+ <span class="cstat-no" title="statement not covered" > if (msg) {</span>
3312
+ <span class="cstat-no" title="statement not covered" > that.newMessageAdded(msg);</span>
3313
+ <span class="cstat-no" title="statement not covered" > this.onNewMessageCreated.emit(msg)</span>
3314
+ <span class="cstat-no" title="statement not covered" > this.checkMessagesLegntForTranscriptDownloadMenuOption();</span>
3315
+ <span class="cstat-no" title="statement not covered" > this.resetTimeout();</span>
3316
+ }
3317
+ });
3318
+ const subscribe = <span class="cstat-no" title="statement not covered" >{key: subscribtionKey, value: subscribtion };</span>
3319
+ <span class="cstat-no" title="statement not covered" > this.subscriptions.push(subscribe);</span>
3320
+ }
3321
+ &nbsp;
3322
+ <span class="cstat-no" title="statement not covered" > subscribtionKey = 'conversationsRemoved';</span>
3323
+ <span class="cstat-no" title="statement not covered" > subscribtion = this.subscriptions.find(<span class="fstat-no" title="function not covered" >item </span>=&gt; <span class="cstat-no" title="statement not covered" >item.key === subscribtionKey);</span></span>
3324
+ <span class="cstat-no" title="statement not covered" > if(!subscribtion){</span>
3325
+ &nbsp;
3326
+ <span class="cstat-no" title="statement not covered" > subscribtion = this.chatManager.conversationsHandlerService.conversationRemoved.pipe(takeUntil(this.unsubscribe$)).subscribe(<span class="fstat-no" title="function not covered" >(c</span>onversation) =&gt; {</span>
3327
+ <span class="cstat-no" title="statement not covered" > this.logger.debug('[CONV-COMP] ***** DATAIL conversationsRemoved *****', conversation, this.conversationWith, this.isConversationArchived);</span>
3328
+ <span class="cstat-no" title="statement not covered" > if(conversation &amp;&amp; conversation.uid === this.conversationWith){</span>
3329
+ <span class="cstat-no" title="statement not covered" > this.isConversationArchived = true;</span>
3330
+ <span class="cstat-no" title="statement not covered" > this.g.nativeRating? this.starRatingWidgetService.setOsservable(true): null; </span>//if nativeRating is true, open starRatingComponent, otherwize do nothing
3331
+ <span class="cstat-no" title="statement not covered" > this.g.nativeRating? null: this.onConversationClosed.emit(conversation.uid) /</span>/if nativeRating is false, when conversation in archived -&gt; manually back to home
3332
+ }
3333
+ });
3334
+ const subscribe = <span class="cstat-no" title="statement not covered" >{key: subscribtionKey, value: subscribtion };</span>
3335
+ <span class="cstat-no" title="statement not covered" > this.subscriptions.push(subscribe);</span>
3336
+ }
3337
+ &nbsp;
3338
+ <span class="cstat-no" title="statement not covered" > subscribtionKey = 'conversationsChanged';</span>
3339
+ <span class="cstat-no" title="statement not covered" > subscribtion = this.subscriptions.find(<span class="fstat-no" title="function not covered" >item </span>=&gt; <span class="cstat-no" title="statement not covered" >item.key === subscribtionKey);</span></span>
3340
+ <span class="cstat-no" title="statement not covered" > if(!subscribtion){</span>
3341
+ &nbsp;
3342
+ <span class="cstat-no" title="statement not covered" > subscribtion = this.chatManager.conversationsHandlerService.conversationChanged.pipe(takeUntil(this.unsubscribe$)).subscribe(<span class="fstat-no" title="function not covered" >(c</span>onversation) =&gt; {</span>
3343
+ <span class="cstat-no" title="statement not covered" > this.logger.debug('[CONV-COMP] ***** DATAIL conversationsChanged *****', conversation, this.conversationWith, this.isConversationArchived);</span>
3344
+ <span class="cstat-no" title="statement not covered" > if(conversation &amp;&amp; conversation.recipient === this.g.senderId &amp;&amp; isUserBanned(conversation)){</span>
3345
+ <span class="cstat-no" title="statement not covered" > return;</span>
3346
+ }
3347
+ <span class="cstat-no" title="statement not covered" > if(conversation &amp;&amp; conversation.sender !== this.senderId){</span>
3348
+ const checkContentScrollPosition = <span class="cstat-no" title="statement not covered" >that.conversationContent.checkContentScrollPosition();</span>
3349
+ <span class="cstat-no" title="statement not covered" > if(checkContentScrollPosition &amp;&amp; conversation.is_new){ //update conversation if scroolToBottom is to the end</span>
3350
+ <span class="cstat-no" title="statement not covered" > this.logger.debug('[CONV-COMP] updateConversationBadge...')</span>
3351
+ <span class="cstat-no" title="statement not covered" > that.updateConversationBadge();</span>
3352
+ }
3353
+ }
3354
+ });
3355
+ const subscribe = <span class="cstat-no" title="statement not covered" >{key: subscribtionKey, value: subscribtion };</span>
3356
+ <span class="cstat-no" title="statement not covered" > this.subscriptions.push(subscribe);</span>
3357
+ }
3358
+ &nbsp;
3359
+ <span class="cstat-no" title="statement not covered" > subscribtionKey = 'messageWait';</span>
3360
+ <span class="cstat-no" title="statement not covered" > subscribtion = this.subscriptions.find(<span class="fstat-no" title="function not covered" >item </span>=&gt; <span class="cstat-no" title="statement not covered" >item.key === subscribtionKey);</span></span>
3361
+ <span class="cstat-no" title="statement not covered" > if (!subscribtion) {</span>
3362
+ <span class="cstat-no" title="statement not covered" > this.logger.debug('[CONV-COMP] ***** add messageWait *****', this.conversationHandlerService);</span>
3363
+ <span class="cstat-no" title="statement not covered" > subscribtion = this.conversationHandlerService.messageWait.pipe(takeUntil(this.unsubscribe$)).subscribe(<span class="fstat-no" title="function not covered" >(d</span>ata: any) =&gt; {</span>
3364
+ <span class="cstat-no" title="statement not covered" > this.logger.debug('[CONV-COMP] ***** DETAIL messageWait *****', data);</span>
3365
+ <span class="cstat-no" title="statement not covered" > if (data &amp;&amp; data.waitTime &amp;&amp; data.waitTime !== 0) {</span>
3366
+ const isTypingUid = <span class="cstat-no" title="statement not covered" >data.uid;</span> //support-group-...
3367
+ <span class="cstat-no" title="statement not covered" > if (this.conversationId === isTypingUid) {</span>
3368
+ <span class="cstat-no" title="statement not covered" > that.subscribeTypings(data);</span>
3369
+ }
3370
+ }
3371
+ });
3372
+ const subscribe = <span class="cstat-no" title="statement not covered" >{key: subscribtionKey, value: subscribtion };</span>
3373
+ <span class="cstat-no" title="statement not covered" > this.subscriptions.push(subscribe);</span>
3374
+ }
3375
+ &nbsp;
3376
+ <span class="cstat-no" title="statement not covered" > subscribtionKey = 'messageInfo';</span>
3377
+ <span class="cstat-no" title="statement not covered" > subscribtion = this.subscriptions.find(<span class="fstat-no" title="function not covered" >item </span>=&gt; <span class="cstat-no" title="statement not covered" >item.key === subscribtionKey);</span></span>
3378
+ <span class="cstat-no" title="statement not covered" > if (!subscribtion) {</span>
3379
+ <span class="cstat-no" title="statement not covered" > this.logger.debug('[CONV-COMP] ***** add messageInfo *****', this.conversationHandlerService);</span>
3380
+ <span class="cstat-no" title="statement not covered" > subscribtion = this.conversationHandlerService.messageInfo.pipe(takeUntil(this.unsubscribe$)).subscribe(<span class="fstat-no" title="function not covered" >(d</span>ata: any) =&gt; {</span>
3381
+ <span class="cstat-no" title="statement not covered" > this.logger.debug('[CONV-COMP] ***** DETAIL messageInfo *****', data);</span>
3382
+ <span class="cstat-no" title="statement not covered" > if(data){</span>
3383
+ <span class="cstat-no" title="statement not covered" > this.updateLeadInfo(data)</span>
3384
+ }
3385
+ });
3386
+ const subscribe = <span class="cstat-no" title="statement not covered" >{key: subscribtionKey, value: subscribtion };</span>
3387
+ <span class="cstat-no" title="statement not covered" > this.subscriptions.push(subscribe);</span>
3388
+ }
3389
+ &nbsp;
3390
+ <span class="cstat-no" title="statement not covered" > subscribtionKey = 'conversationTyping';</span>
3391
+ <span class="cstat-no" title="statement not covered" > subscribtion = this.subscriptions.find(<span class="fstat-no" title="function not covered" >item </span>=&gt; <span class="cstat-no" title="statement not covered" >item.key === subscribtionKey);</span></span>
3392
+ <span class="cstat-no" title="statement not covered" > if (!subscribtion) {</span>
3393
+ <span class="cstat-no" title="statement not covered" > subscribtion = this.typingService.BSIsTyping.pipe(takeUntil(this.unsubscribe$)).subscribe(<span class="fstat-no" title="function not covered" >(d</span>ata: any) =&gt; {</span>
3394
+ <span class="cstat-no" title="statement not covered" > this.logger.debug('[CONV-COMP] ***** BSIsTyping *****', data);</span>
3395
+ <span class="cstat-no" title="statement not covered" > if (data) {</span>
3396
+ const isTypingUid = <span class="cstat-no" title="statement not covered" >data.uid;</span> //support-group-...
3397
+ <span class="cstat-no" title="statement not covered" > if (this.conversationId === isTypingUid) {</span>
3398
+ <span class="cstat-no" title="statement not covered" > that.subscribeTypings(data);</span>
3399
+ }
3400
+ }
3401
+ });
3402
+ const subscribe = <span class="cstat-no" title="statement not covered" >{key: subscribtionKey, value: subscribtion };</span>
3403
+ <span class="cstat-no" title="statement not covered" > this.subscriptions.push(subscribe);</span>
3404
+ }
3405
+ &nbsp;
3406
+ }
3407
+ &nbsp;
3408
+ <span class="fstat-no" title="function not covered" > checkMessagesLegntForTranscriptDownloadMenuOption(</span>){
3409
+ <span class="cstat-no" title="statement not covered" > if(this.messages.length &gt; 1 &amp;&amp; this.g.allowTranscriptDownload){</span>
3410
+ <span class="cstat-no" title="statement not covered" > this.isTrascriptDownloadEnabled = true</span>
3411
+ }
3412
+ }
3413
+ // NUOVO MESSAGGIO!!
3414
+ /**
3415
+ * se: non sto già scrollando oppure il messaggio l'ho inviato io -&gt; scrollToBottom
3416
+ * altrimenti: se esiste scrollMe (div da scrollare) verifico la posizione
3417
+ * se: sono alla fine della pagina scrollo alla fine
3418
+ * altrimenti: aumento il badge
3419
+ */
3420
+ <span class="fstat-no" title="function not covered" > newMessageAdded(</span>msg){
3421
+ const that = <span class="cstat-no" title="statement not covered" >this;</span>
3422
+ const senderId = <span class="cstat-no" title="statement not covered" >that.senderId;</span>
3423
+ <span class="cstat-no" title="statement not covered" > if (msg.sender === senderId) { //caso in cui sender manda msg</span>
3424
+ <span class="cstat-no" title="statement not covered" > that.logger.debug('[CONV-COMP] *A1-------');</span>
3425
+ <span class="cstat-no" title="statement not covered" > setTimeout(<span class="fstat-no" title="function not covered" >function () {</span></span>
3426
+ <span class="cstat-no" title="statement not covered" > that.conversationContent.scrollToBottom();</span>
3427
+ }, 200);
3428
+ } else <span class="cstat-no" title="statement not covered" >if (msg.sender !== senderId) { //caso in cui operatore manda msg</span>
3429
+ const checkContentScrollPosition = <span class="cstat-no" title="statement not covered" >that.conversationContent.checkContentScrollPosition();</span>
3430
+ <span class="cstat-no" title="statement not covered" > if (checkContentScrollPosition) {</span>
3431
+ <span class="cstat-no" title="statement not covered" > that.logger.debug('[CONV-COMP] *A2-------');</span>
3432
+ // https://developer.mozilla.org/it/docs/Web/API/Element/scrollHeight
3433
+ <span class="cstat-no" title="statement not covered" > setTimeout(<span class="fstat-no" title="function not covered" >function () {</span></span>
3434
+ <span class="cstat-no" title="statement not covered" > that.conversationContent.scrollToBottom();</span>
3435
+ }, 200);
3436
+ } else {
3437
+ <span class="cstat-no" title="statement not covered" > that.logger.debug('[CONV-COMP] *A3-------');</span>
3438
+ <span class="cstat-no" title="statement not covered" > that.messagesBadgeCount++;</span>
3439
+ // that.soundMessage(msg.timestamp);
3440
+ }
3441
+ &nbsp;
3442
+ // check if sender can reply --&gt; set footer active/disabled
3443
+ <span class="cstat-no" title="statement not covered" > if(msg.attributes &amp;&amp; msg.attributes['disableInputMessage']){</span>
3444
+ <span class="cstat-no" title="statement not covered" > this.hideFooterTextReply = msg.attributes['disableInputMessage']</span>
3445
+
3446
+ } else <span class="cstat-no" title="statement not covered" >if (msg.attributes &amp;&amp; !msg.attributes['disableInputMessage']) {</span>
3447
+ <span class="cstat-no" title="statement not covered" > this.hideFooterTextReply = false</span>
3448
+ }
3449
+ &nbsp;
3450
+ // check if footer text placebolder exist --&gt; set new footer text placeholder
3451
+ <span class="cstat-no" title="statement not covered" > if(msg.attributes &amp;&amp; msg.attributes['inputMessagePlaceholder']) {</span>
3452
+ <span class="cstat-no" title="statement not covered" > this.footerMessagePlaceholder = msg.attributes['inputMessagePlaceholder']</span>
3453
+ }else {
3454
+ <span class="cstat-no" title="statement not covered" > this.footerMessagePlaceholder = '';</span>
3455
+ }
3456
+ }
3457
+ &nbsp;
3458
+ }
3459
+ &nbsp;
3460
+ <span class="fstat-no" title="function not covered" > updateLeadInfo(</span>msg){
3461
+ //check if user has changed userFullname and userEmail
3462
+ <span class="cstat-no" title="statement not covered" > if (msg.attributes &amp;&amp; msg.attributes['updateUserFullname']) {</span>
3463
+ const userFullname = <span class="cstat-no" title="statement not covered" >msg.attributes['updateUserFullname'];</span>
3464
+ <span class="cstat-no" title="statement not covered" > this.logger.debug('[CONV-COMP] newMessageAdded --&gt; updateUserFullname', userFullname)</span>
3465
+ <span class="cstat-no" title="statement not covered" > this.g.setAttributeParameter('userFullname', userFullname);</span>
3466
+ <span class="cstat-no" title="statement not covered" > this.g.setParameter('userFullname', userFullname);</span>
3467
+ <span class="cstat-no" title="statement not covered" > this.appStorageService.setItem('attributes', JSON.stringify(this.g.attributes));</span>
3468
+ }
3469
+ <span class="cstat-no" title="statement not covered" > if (msg.attributes &amp;&amp; msg.attributes['updateUserEmail']) {</span>
3470
+ const userEmail = <span class="cstat-no" title="statement not covered" >msg.attributes['updateUserEmail'];</span>
3471
+ <span class="cstat-no" title="statement not covered" > this.logger.debug('[CONV-COMP] newMessageAdded --&gt; userEmail', userEmail)</span>
3472
+ <span class="cstat-no" title="statement not covered" > this.g.setAttributeParameter('userEmail', userEmail);</span>
3473
+ <span class="cstat-no" title="statement not covered" > this.g.setParameter('userEmail', userEmail);</span>
3474
+ <span class="cstat-no" title="statement not covered" > this.appStorageService.setItem('attributes', JSON.stringify(this.g.attributes));</span>
3475
+ }
3476
+ }
3477
+ &nbsp;
3478
+ <span class="fstat-no" title="function not covered" > updateUserInfo(</span>customAttributes){
3479
+ <span class="cstat-no" title="statement not covered" > if (customAttributes &amp;&amp; customAttributes['userFullname']) {</span>
3480
+ const userFullname = <span class="cstat-no" title="statement not covered" >customAttributes['userFullname'];</span>
3481
+ <span class="cstat-no" title="statement not covered" > this.logger.debug('[CONV-COMP] updateUserInfo --&gt; userFullname', userFullname)</span>
3482
+ <span class="cstat-no" title="statement not covered" > this.g.setAttributeParameter('userFullname', userFullname);</span>
3483
+ <span class="cstat-no" title="statement not covered" > this.g.setParameter('userFullname', userFullname);</span>
3484
+ }
3485
+ <span class="cstat-no" title="statement not covered" > if (customAttributes &amp;&amp; customAttributes['userEmail']) {</span>
3486
+ const userEmail = <span class="cstat-no" title="statement not covered" >customAttributes['userEmail'];</span>
3487
+ <span class="cstat-no" title="statement not covered" > this.logger.debug('[CONV-COMP] updateUserInfo --&gt; userEmail', userEmail)</span>
3488
+ <span class="cstat-no" title="statement not covered" > this.g.setAttributeParameter('userEmail', userEmail);</span>
3489
+ <span class="cstat-no" title="statement not covered" > this.g.setParameter('userEmail', userEmail);</span>
3490
+ }
3491
+ <span class="cstat-no" title="statement not covered" > this.appStorageService.setItem('attributes', JSON.stringify(this.g.attributes));</span>
3492
+ }
3493
+ &nbsp;
3494
+ <span class="fstat-no" title="function not covered" > scrollToBottom(</span>) {
3495
+ <span class="cstat-no" title="statement not covered" > this.conversationContent.scrollToBottom();</span>
3496
+ // const that = this;
3497
+ // try {
3498
+ // that.isScrolling = true;
3499
+ // const objDiv = document.getElementById(that.idDivScroll) as HTMLElement;
3500
+ // console.log('divto scrool', objDiv);
3501
+ // // const element = objDiv[0] as HTMLElement;
3502
+ // setTimeout(function () {
3503
+ &nbsp;
3504
+ // if (that.isIE === true || withoutAnimation === true || that.firstScroll === true) {
3505
+ // objDiv.parentElement.classList.add('withoutAnimation');
3506
+ // } else {
3507
+ // objDiv.parentElement.classList.remove('withoutAnimation');
3508
+ // }
3509
+ // objDiv.parentElement.scrollTop = objDiv.scrollHeight;
3510
+ // objDiv.style.opacity = '1';
3511
+ // that.firstScroll = false;
3512
+ // }, 0);
3513
+ // } catch (err) {
3514
+ // that.g.wdLog(['&gt; Error :' + err]);
3515
+ // }
3516
+ // that.isScrolling = false;
3517
+ }
3518
+ &nbsp;
3519
+ // ========= end:: functions scroll position ======= //
3520
+ &nbsp;
3521
+ &nbsp;
3522
+ // =========== BEGIN: event emitter function ====== //
3523
+ /** CALLED BY: conv-header component */
3524
+ <span class="fstat-no" title="function not covered" > onBackHomeFN(</span>) {
3525
+ //this.storageService.removeItem('activeConversation');
3526
+ //this.g.setParameter('activeConversation', null, false);
3527
+ <span class="cstat-no" title="statement not covered" > this.onBackHome.emit();</span>
3528
+ }
3529
+ /** CALLED BY: conv-header component */
3530
+ <span class="fstat-no" title="function not covered" > onCloseWidgetFN(</span>) {
3531
+ //this.g.setParameter('activeConversation', null, false);
3532
+ <span class="cstat-no" title="statement not covered" > this.onCloseWidget.emit();</span>
3533
+ }
3534
+ /** CALLED BY: conv-header component */
3535
+ <span class="fstat-no" title="function not covered" > onSoundChangeFN(</span>soundEnabled){
3536
+ <span class="cstat-no" title="statement not covered" > this.onSoundChange.emit(soundEnabled)</span>
3537
+ }
3538
+ /** CALLED BY: conv-header component */
3539
+ <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" > onCloseChat(</span></span>event){
3540
+ <span class="cstat-no" title="statement not covered" > this.logger.debug('[CONV-COMP] close chat with uid ', this.conversation.uid)</span>
3541
+ <span class="cstat-no" title="statement not covered" > this.tiledeskRequestService.closeSupportGroup(this.conversation.uid).then(<span class="fstat-no" title="function not covered" >data </span>=&gt; {</span>
3542
+ <span class="cstat-no" title="statement not covered" > if(data === 'closed'){</span>
3543
+ <span class="cstat-no" title="statement not covered" > this.isMenuShow = false</span>
3544
+ <span class="cstat-no" title="statement not covered" > this.logger.debug('[CONV-COMP] chat closed successfully with uid ', this.conversation.uid)</span>
3545
+ }
3546
+ }).catch(<span class="fstat-no" title="function not covered" >error </span>=&gt; {
3547
+ <span class="cstat-no" title="statement not covered" > this.logger.error('[CONV-COMP] ERROR while closing chat with id: ', this.conversation.uid, error)</span>
3548
+ })
3549
+ }
3550
+ /** CALLED BY: conv-header component */
3551
+ <span class="fstat-no" title="function not covered" > onRestartChat(</span>event){
3552
+ <span class="cstat-no" title="statement not covered" > this.hideTextAreaContent = true</span>
3553
+ }
3554
+ /** CALLED BY: conv-header component */
3555
+ <span class="fstat-no" title="function not covered" > onWidgetHeightChange(</span>mode){
3556
+ var tiledeskDiv = <span class="cstat-no" title="statement not covered" >this.g.windowContext.window.document.getElementById('tiledeskdiv') </span>
3557
+ <span class="cstat-no" title="statement not covered" > if(mode==='max'){</span>
3558
+ <span class="cstat-no" title="statement not covered" > tiledeskDiv.style.maxHeight = 'unset'</span>
3559
+ }else <span class="cstat-no" title="statement not covered" >if(mode==='min'){</span>
3560
+ <span class="cstat-no" title="statement not covered" > tiledeskDiv.style.maxHeight = '620px'</span>
3561
+ }
3562
+ <span class="cstat-no" title="statement not covered" > this.isMenuShow = false;</span>
3563
+ }
3564
+ /** CALLED BY: conv-header component */
3565
+ <span class="fstat-no" title="function not covered" > onSignOutFN(</span>event){
3566
+ <span class="cstat-no" title="statement not covered" > this.onSignOut.emit(true)</span>
3567
+ }
3568
+ /** CALLED BY: conv-header conv-content component */
3569
+ <span class="fstat-no" title="function not covered" > onMenuOption(</span>event:boolean){
3570
+ <span class="cstat-no" title="statement not covered" > this.isMenuShow = event;</span>
3571
+ <span class="cstat-no" title="statement not covered" > this.conversationFooter.removeFocusOnId('chat21-main-message-context')</span>
3572
+ }
3573
+ &nbsp;
3574
+ /** CALLED BY: conv-content component */
3575
+ <span class="fstat-no" title="function not covered" > onBeforeMessageRenderFN(</span>event){
3576
+ <span class="cstat-no" title="statement not covered" > this.onBeforeMessageRender.emit(event)</span>
3577
+ }
3578
+ /** CALLED BY: conv-content component */
3579
+ <span class="fstat-no" title="function not covered" > onAfterMessageRenderFN(</span>event){
3580
+ <span class="cstat-no" title="statement not covered" > this.onAfterMessageRender.emit(event)</span>
3581
+ }
3582
+ /** CALLED BY: conv-content component */
3583
+ <span class="fstat-no" title="function not covered" > onAttachmentButtonClicked(</span>event: any) {
3584
+ <span class="cstat-no" title="statement not covered" > this.logger.debug('[CONV-COMP] eventbutton', event)</span>
3585
+ <span class="cstat-no" title="statement not covered" > if (!event || !event.target.type) {</span>
3586
+ <span class="cstat-no" title="statement not covered" > return;</span>
3587
+ }
3588
+ <span class="cstat-no" title="statement not covered" > switch (event.target.type) {</span>
3589
+ case 'url':
3590
+ <span class="cstat-no" title="statement not covered" > try {</span>
3591
+ <span class="cstat-no" title="statement not covered" > this.openLink(event.target.button);</span>
3592
+ } catch (err) {
3593
+ <span class="cstat-no" title="statement not covered" > this.logger.error('[CONV-COMP] url &gt; Error :' + err);</span>
3594
+ }
3595
+ <span class="cstat-no" title="statement not covered" > return;</span>
3596
+ case 'action':
3597
+ <span class="cstat-no" title="statement not covered" > try {</span>
3598
+ <span class="cstat-no" title="statement not covered" > this.actionButton(event.target.button);</span>
3599
+ } catch (err) {
3600
+ <span class="cstat-no" title="statement not covered" > this.logger.error('[CONV-COMP] action &gt; Error :' + err);</span>
3601
+ }
3602
+ <span class="cstat-no" title="statement not covered" > return false;</span>
3603
+ case 'text':
3604
+ <span class="cstat-no" title="statement not covered" > try{</span>
3605
+ const text = <span class="cstat-no" title="statement not covered" >event.target.button.value</span>
3606
+ const metadata = <span class="cstat-no" title="statement not covered" >{ 'button': true };</span>
3607
+ <span class="cstat-no" title="statement not covered" > this.conversationFooter.sendMessage(text, TYPE_MSG_TEXT, metadata);</span>
3608
+ }catch(err){
3609
+ <span class="cstat-no" title="statement not covered" > this.logger.error('[CONV-COMP] text &gt; Error :' + err);</span>
3610
+ }
3611
+ default: <span class="cstat-no" title="statement not covered" >return;</span>
3612
+ }
3613
+ }
3614
+ &nbsp;
3615
+ /** CALLED BY: conv-content component */
3616
+ <span class="fstat-no" title="function not covered" > onScrollContent(</span>event: boolean){
3617
+ <span class="cstat-no" title="statement not covered" > this.showBadgeScroollToBottom = !event;</span>
3618
+ <span class="cstat-no" title="statement not covered" > this.logger.debug('[CONV-COMP] scroool eventtt', event)</span>
3619
+ //se sono alla fine (showBadgeScroollBottom === true) allora imposto messageBadgeCount a 0
3620
+ <span class="cstat-no" title="statement not covered" > if(!this.showBadgeScroollToBottom){</span>
3621
+ <span class="cstat-no" title="statement not covered" > this.messagesBadgeCount = 0;</span>
3622
+ <span class="cstat-no" title="statement not covered" > this.updateConversationBadge();</span>
3623
+ }
3624
+
3625
+ }
3626
+ &nbsp;
3627
+ /** CALLED BY: conv-internal-frame component */
3628
+ <span class="fstat-no" title="function not covered" > onOpenExternalFrame(</span>event){
3629
+ <span class="cstat-no" title="statement not covered" > window.open(event.link, '_blank');</span>
3630
+ }
3631
+ /** CALLED BY: conv-internal-frame component */
3632
+ <span class="fstat-no" title="function not covered" > onCloseInternalFrame(</span>event){
3633
+ <span class="cstat-no" title="statement not covered" > this.isButtonUrl = false</span>
3634
+ <span class="cstat-no" title="statement not covered" > this.buttonClicked = null;</span>
3635
+ <span class="cstat-no" title="statement not covered" > this.restoreDefaultWidgetSize();</span>
3636
+ }
3637
+ &nbsp;
3638
+ /** CALLED BY: conv-preview component */
3639
+ <span class="fstat-no" title="function not covered" > onSendAttachment(</span>messageText: string){
3640
+ <span class="cstat-no" title="statement not covered" > this.isOpenAttachmentPreview = false</span>
3641
+ <span class="cstat-no" title="statement not covered" > this.conversationFooter.uploadSingle(this.attachments[0].metadata, this.attachments[0].file, messageText)</span>
3642
+ // send message to footer-component
3643
+ }
3644
+ /** CALLED BY: conv-preview component */
3645
+ <span class="fstat-no" title="function not covered" > onCloseModalPreview(</span>){
3646
+ <span class="cstat-no" title="statement not covered" > this.isOpenAttachmentPreview = false</span>
3647
+ <span class="cstat-no" title="statement not covered" > this.conversationFooter.isFilePendingToUpload = false;</span>
3648
+ <span class="cstat-no" title="statement not covered" > this.logger.debug('[CONV-COMP] onCloseModalPreview::::', this.isOpenAttachmentPreview, this.conversationFooter)</span>
3649
+ }
3650
+
3651
+ /** CALLED BY: conv-footer conv-content component */
3652
+ <span class="fstat-no" title="function not covered" > onEmojiiPickerShow(</span>event:boolean){
3653
+ <span class="cstat-no" title="statement not covered" > this.isEmojiiPickerShow = event</span>
3654
+ }
3655
+ /** CALLED BY: conv-footer component */
3656
+ <span class="fstat-no" title="function not covered" > onBeforeMessangeSentFN(</span>messageModel){
3657
+ <span class="cstat-no" title="statement not covered" > this.onBeforeMessageSent.emit(messageModel)</span>
3658
+ }
3659
+ /** CALLED BY: conv-footer component */
3660
+ <span class="fstat-no" title="function not covered" > onAfterSendMessageFN(</span>message: MessageModel){
3661
+ <span class="cstat-no" title="statement not covered" > this.onAfterSendMessage.emit(message)</span>
3662
+ }
3663
+ /** CALLED BY: conv-footer component */
3664
+ <span class="fstat-no" title="function not covered" > onChangeTextArea(</span>event){
3665
+ <span class="cstat-no" title="statement not covered" > if(event &amp;&amp; event.textAreaEl){</span>
3666
+ const scrollDiv = <span class="cstat-no" title="statement not covered" >this.conversationContent.scrollMe</span>
3667
+ const height = <span class="cstat-no" title="statement not covered" >+event.textAreaEl.style.height.substring(0, event.textAreaEl.style.height.length - 2);</span>
3668
+ <span class="cstat-no" title="statement not covered" > if(height &gt; 20 &amp;&amp; height &lt; 110){</span>
3669
+ <span class="cstat-no" title="statement not covered" > scrollDiv.nativeElement.style.height = 'calc(100% - ' + (height - 20)+'px'</span>
3670
+ // document.getElementById('chat21-button-send').style.right = '18px'
3671
+ <span class="cstat-no" title="statement not covered" > this.scrollToBottom()</span>
3672
+ } else <span class="cstat-no" title="statement not covered" >if(height &lt;= 20) {</span>
3673
+ <span class="cstat-no" title="statement not covered" > scrollDiv.nativeElement.style.height = '100%'</span>
3674
+ } else <span class="cstat-no" title="statement not covered" >if(height &gt; 110){</span>
3675
+ // document.getElementById('chat21-button-send').style.right = '18px'
3676
+ }
3677
+ }
3678
+ }
3679
+ /** CALLED BY: conv-footer component */
3680
+ <span class="fstat-no" title="function not covered" > onAttachmentFileButtonClicked(</span>event: any){
3681
+ <span class="cstat-no" title="statement not covered" > this.logger.debug('[CONV-COMP] onAttachmentButtonClicked::::', event)</span>
3682
+ <span class="cstat-no" title="statement not covered" > this.attachments = event.attachments</span>
3683
+ <span class="cstat-no" title="statement not covered" > this.textInputTextArea= event.message</span>
3684
+ <span class="cstat-no" title="statement not covered" > this.logger.debug('[CONV-COMP] onAttachmentButtonClicked::::', this.textInputTextArea)</span>
3685
+ <span class="cstat-no" title="statement not covered" > this.isOpenAttachmentPreview = true</span>
3686
+ }
3687
+ /** CALLED BY: conv-footer floating-button component */
3688
+ <span class="fstat-no" title="function not covered" > onNewConversationButtonClickedFN(</span>event){
3689
+ <span class="cstat-no" title="statement not covered" > this.logger.debug('[CONV-COMP] floating onNewConversationButtonClicked')</span>
3690
+ <span class="cstat-no" title="statement not covered" > this.onNewConversationButtonClicked.emit()</span>
3691
+ }
3692
+ /** CALLED BY: conv-footer floating-button component */
3693
+ <span class="fstat-no" title="function not covered" > onBackButton(</span>event: boolean){
3694
+ <span class="cstat-no" title="statement not covered" > this.hideTextAreaContent = event;</span>
3695
+ <span class="cstat-no" title="statement not covered" > try{</span>
3696
+ const tiledeskDiv = <span class="cstat-no" title="statement not covered" >document.getElementById('chat21-footer')</span>
3697
+ <span class="cstat-no" title="statement not covered" > tiledeskDiv.classList.remove('maximize-width')</span>
3698
+ // tiledeskDiv.style.width = '376px'
3699
+ // tiledeskDiv.style.maxHeight = '620px'
3700
+ }catch(e){
3701
+ <span class="cstat-no" title="statement not covered" > this.logger.error('[CONV-COMP] onBackButton &gt; Error :' + e);</span>
3702
+ }
3703
+ &nbsp;
3704
+ }
3705
+ // =========== END: event emitter function ====== //
3706
+ &nbsp;
3707
+ &nbsp;
3708
+ <span class="fstat-no" title="function not covered" > openInputFiles(</span>) {
3709
+ <span class="cstat-no" title="statement not covered" > alert('ok');</span>
3710
+ <span class="cstat-no" title="statement not covered" > if (document.getElementById('chat21-file')) {</span>
3711
+ const docInput = <span class="cstat-no" title="statement not covered" >document.getElementById('chat21-file');</span>
3712
+ <span class="cstat-no" title="statement not covered" > docInput.style.display = 'block';</span>
3713
+ }
3714
+ }
3715
+ &nbsp;
3716
+ &nbsp;
3717
+ &nbsp;
3718
+ // ========= begin:: DESTROY ALL SUBSCRIPTIONS ============//
3719
+ /** elimino tutte le sottoscrizioni */
3720
+ ngOnDestroy() {
3721
+ this.logger.debug('[CONV-COMP] ngOnDestroy ------------------&gt; this.subscriptions', this.subscriptions);
3722
+ //this.storageService.removeItem('activeConversation');
3723
+ this.isConversationArchived = false;
3724
+ this.hideTextAreaContent = false;
3725
+ this.conversationFooter.textInputTextArea='';
3726
+ <span class="cstat-no" title="statement not covered" > this.hideFooterTextReply = false;</span>
3727
+ <span class="cstat-no" title="statement not covered" > this.footerMessagePlaceholder = '';</span>
3728
+ <span class="cstat-no" title="statement not covered" > this.unsubscribe();</span>
3729
+ }
3730
+ &nbsp;
3731
+ /** */
3732
+ <span class="fstat-no" title="function not covered" > unsubscribe(</span>) {
3733
+ <span class="cstat-no" title="statement not covered" > this.logger.debug('[CONV-COMP] ******* unsubscribe *******');</span>
3734
+ <span class="cstat-no" title="statement not covered" > this.unsubscribe$.next();</span>
3735
+ <span class="cstat-no" title="statement not covered" > this.unsubscribe$.complete();</span>
3736
+ <span class="cstat-no" title="statement not covered" > this.chatManager.conversationsHandlerService.conversationRemoved.next(null)</span>
3737
+ <span class="cstat-no" title="statement not covered" > this.conversationHandlerService.messageWait.next(null)</span>
3738
+ <span class="cstat-no" title="statement not covered" > this.typingService.BSIsTyping.next(null)</span>
3739
+ &nbsp;
3740
+ // TODO-GAB: da verificare se eliminarlo
3741
+ <span class="cstat-no" title="statement not covered" > this.subscriptions.forEach(<span class="fstat-no" title="function not covered" >function (s</span>ubscription) {</span>
3742
+ <span class="cstat-no" title="statement not covered" > subscription.value.unsubscribe();</span>
3743
+ });
3744
+ <span class="cstat-no" title="statement not covered" > this.subscriptions = [];</span>
3745
+ <span class="cstat-no" title="statement not covered" > this.subscriptions.length = 0;</span>
3746
+ //this.messagingService.unsubscribeAllReferences();
3747
+ <span class="cstat-no" title="statement not covered" > this.logger.debug('[CONV-COMP]this.subscriptions', this.subscriptions);</span>
3748
+ }
3749
+ // ========= end:: DESTROY ALL SUBSCRIPTIONS ============//
3750
+ &nbsp;
3751
+ &nbsp;
3752
+ &nbsp;
3753
+ /**
3754
+ * regola sound message:
3755
+ * se lo invio io -&gt; NO SOUND
3756
+ * se non sono nella conversazione -&gt; SOUND
3757
+ * se sono nella conversazione in fondo alla pagina -&gt; NO SOUND
3758
+ * altrimenti -&gt; SOUND
3759
+ */
3760
+ // soundMessage(timestamp?) {
3761
+ // if (!isJustRecived(this.g.startedAt.getTime(), timestamp)) {
3762
+ // return;
3763
+ // }
3764
+ // const soundEnabled = this.g.soundEnabled;
3765
+ // const baseLocation = this.g.baseLocation;
3766
+ // if ( soundEnabled ) {
3767
+ // const that = this;
3768
+ // this.audio = new Audio();
3769
+ // this.audio.src = baseLocation + '/assets/sounds/justsaying.mp3';
3770
+ // this.audio.load();
3771
+ // // console.log('conversation play');
3772
+ // clearTimeout(this.setTimeoutSound);
3773
+ // this.setTimeoutSound = setTimeout(function () {
3774
+ // that.audio.play();
3775
+ // that.logger.debug('[CONV-COMP] ****** soundMessage 1 *****', that.audio.src);
3776
+ // }, 1000);
3777
+ // }
3778
+ // }
3779
+ <span class="fstat-no" title="function not covered" > private o</span>nIncreaseWith(){
3780
+ <span class="cstat-no" title="statement not covered" > try{</span>
3781
+ const tiledeskDiv = <span class="cstat-no" title="statement not covered" >this.g.windowContext.window.document.getElementById('tiledeskdiv') </span>
3782
+ <span class="cstat-no" title="statement not covered" > tiledeskDiv.classList.add('increaseSize')</span>
3783
+ const chat21conversations = <span class="cstat-no" title="statement not covered" >document.getElementById('chat21-conversations')</span>
3784
+ <span class="cstat-no" title="statement not covered" > chat21conversations.style.borderRadius = '16px'</span>
3785
+ // tiledeskDiv.style.width = '696px'
3786
+ // tiledeskDiv.style.maxHeight = '712px'
3787
+ }catch(e){
3788
+ <span class="cstat-no" title="statement not covered" > this.logger.error('[CONV-COMP] onIncreaseWith &gt; Error :' + e);</span>
3789
+ }
3790
+ }
3791
+ &nbsp;
3792
+ <span class="fstat-no" title="function not covered" > private r</span>estoreDefaultWidgetSize(){
3793
+ <span class="cstat-no" title="statement not covered" > try{</span>
3794
+ const tiledeskDiv = <span class="cstat-no" title="statement not covered" >this.g.windowContext.window.document.getElementById('tiledeskdiv') </span>
3795
+ <span class="cstat-no" title="statement not covered" > tiledeskDiv.classList.remove('increaseSize')</span>
3796
+ <span class="cstat-no" title="statement not covered" > tiledeskDiv.classList.remove('decreaseSize')</span>
3797
+ // tiledeskDiv.style.width = '376px'
3798
+ // tiledeskDiv.style.maxHeight = '620px'
3799
+ }catch(e){
3800
+ <span class="cstat-no" title="statement not covered" > this.logger.error('[CONV-COMP] restoreDefaultWidgetSize &gt; Error :' + e);</span>
3801
+ }
3802
+ }
3803
+
3804
+ &nbsp;
3805
+ /** */
3806
+ <span class="fstat-no" title="function not covered" > private o</span>penLink(event: any) {
3807
+ const link = <span class="cstat-no" title="statement not covered" >event.link ? event.link : '';</span>
3808
+ const target = <span class="cstat-no" title="statement not covered" >event.target ? event.target : '';</span>
3809
+ // this.onIncreaseWith()
3810
+ <span class="cstat-no" title="statement not covered" > if (target === 'self') {</span>
3811
+ // window.open(link, '_self');
3812
+ <span class="cstat-no" title="statement not covered" > this.isButtonUrl= true;</span>
3813
+ <span class="cstat-no" title="statement not covered" > this.buttonClicked = event</span>
3814
+
3815
+ } else <span class="cstat-no" title="statement not covered" >if (target === 'parent') {</span>
3816
+ <span class="cstat-no" title="statement not covered" > window.open(link, '_parent');</span>
3817
+ } else {
3818
+ <span class="cstat-no" title="statement not covered" > window.open(link, '_blank');</span>
3819
+ }
3820
+ }
3821
+ &nbsp;
3822
+ /** */
3823
+ <span class="fstat-no" title="function not covered" > private a</span>ctionButton(event: any) {
3824
+ // console.log(event);
3825
+ const action = <span class="cstat-no" title="statement not covered" >event.action ? event.action : '';</span>
3826
+ const message = <span class="cstat-no" title="statement not covered" >event.value ? event.value : '';</span>
3827
+ const subtype = <span class="cstat-no" title="statement not covered" >event.show_echo ? '' : 'info';</span>
3828
+ &nbsp;
3829
+ const attributes = <span class="cstat-no" title="statement not covered" >{</span>
3830
+ action: action,
3831
+ subtype: subtype
3832
+ };
3833
+ <span class="cstat-no" title="statement not covered" > this.conversationFooter.sendMessage(message, TYPE_MSG_TEXT, null, attributes);</span>
3834
+ <span class="cstat-no" title="statement not covered" > this.logger.debug('[CONV-COMP] &gt; action :');</span>
3835
+ }
3836
+ &nbsp;
3837
+ &nbsp;
3838
+ // ========= START:: TRIGGER FUNCTIONS ============//
3839
+ <span class="fstat-no" title="function not covered" > private o</span>nNewConversationComponentInit() {
3840
+ <span class="cstat-no" title="statement not covered" > this.logger.debug('[CONV-COMP] ------- onNewConversationComponentInit ------- ');</span>
3841
+ <span class="cstat-no" title="statement not covered" > this.setConversation();</span>
3842
+ // this.connectConversation();
3843
+ const newConvId = <span class="cstat-no" title="statement not covered" >this.conversationWith;</span>
3844
+ const default_settings = <span class="cstat-no" title="statement not covered" >this.g.default_settings;</span>
3845
+ const appConfigs = <span class="cstat-no" title="statement not covered" >this.appConfigService.getConfig();</span>
3846
+ &nbsp;
3847
+ <span class="cstat-no" title="statement not covered" > this.onNewConversationInit.emit({ global: this.g, default_settings: default_settings, newConvId: newConvId, appConfigs: appConfigs })</span>
3848
+ }
3849
+ // ========= END:: TRIGGER FUNCTIONS ============//
3850
+ &nbsp;
3851
+ }
3852
+ &nbsp;</pre></td></tr></table></pre>
3853
+
3854
+ <div class='push'></div><!-- for sticky footer -->
3855
+ </div><!-- /wrapper -->
3856
+ <div class='footer quiet pad2 space-top1 center small'>
3857
+ Code coverage generated by
3858
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
3859
+ at Tue Nov 29 2022 09:13:07 GMT+0100 (Ora standard dell’Europa centrale)
3860
+ </div>
3861
+ <script src="../../../../../prettify.js"></script>
3862
+ <script>
3863
+ window.onload = function () {
3864
+ prettyPrint();
3865
+ };
3866
+ </script>
3867
+ <script src="../../../../../sorter.js"></script>
3868
+ <script src="../../../../../block-navigation.js"></script>
3869
+ </body>
3870
+ </html>
3871
+