@rabbitio/ui-kit 1.0.0-beta.83 → 1.0.0-beta.85

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 (216) hide show
  1. package/coverage/base.css +224 -0
  2. package/coverage/block-navigation.js +87 -0
  3. package/coverage/clover.xml +15720 -0
  4. package/coverage/coverage-final.json +112 -0
  5. package/coverage/favicon.png +0 -0
  6. package/coverage/index.html +986 -0
  7. package/coverage/prettify.css +1 -0
  8. package/coverage/prettify.js +2 -0
  9. package/coverage/rabbit-ui-kit/index.html +116 -0
  10. package/coverage/rabbit-ui-kit/index.js.html +88 -0
  11. package/coverage/rabbit-ui-kit/src/common-apis/adapters/analyticsAdapters/googleAnalyticsAdapter.js.html +148 -0
  12. package/coverage/rabbit-ui-kit/src/common-apis/adapters/analyticsAdapters/index.html +131 -0
  13. package/coverage/rabbit-ui-kit/src/common-apis/adapters/analyticsAdapters/mixpanelAdapter.js.html +199 -0
  14. package/coverage/rabbit-ui-kit/src/common-apis/adapters/axiosAdapter.js.html +190 -0
  15. package/coverage/rabbit-ui-kit/src/common-apis/adapters/index.html +131 -0
  16. package/coverage/rabbit-ui-kit/src/common-apis/adapters/qrUtils.js.html +139 -0
  17. package/coverage/rabbit-ui-kit/src/common-apis/amountUtils.js.html +1162 -0
  18. package/coverage/rabbit-ui-kit/src/common-apis/errorUtils.js.html +211 -0
  19. package/coverage/rabbit-ui-kit/src/common-apis/external-apis/apiGroups.js.html +250 -0
  20. package/coverage/rabbit-ui-kit/src/common-apis/external-apis/index.html +131 -0
  21. package/coverage/rabbit-ui-kit/src/common-apis/external-apis/ipAddressProviders.js.html +352 -0
  22. package/coverage/rabbit-ui-kit/src/common-apis/fiatCurrenciesService.js.html +544 -0
  23. package/coverage/rabbit-ui-kit/src/common-apis/globalConstants.jsx.html +94 -0
  24. package/coverage/rabbit-ui-kit/src/common-apis/index.html +161 -0
  25. package/coverage/rabbit-ui-kit/src/common-apis/models/blockchain.js.html +115 -0
  26. package/coverage/rabbit-ui-kit/src/common-apis/models/coin.js.html +544 -0
  27. package/coverage/rabbit-ui-kit/src/common-apis/models/index.html +146 -0
  28. package/coverage/rabbit-ui-kit/src/common-apis/models/protocol.js.html +100 -0
  29. package/coverage/rabbit-ui-kit/src/common-apis/utils/cache.js.html +811 -0
  30. package/coverage/rabbit-ui-kit/src/common-apis/utils/emailAPI.js.html +133 -0
  31. package/coverage/rabbit-ui-kit/src/common-apis/utils/index.html +161 -0
  32. package/coverage/rabbit-ui-kit/src/common-apis/utils/logging/index.html +131 -0
  33. package/coverage/rabbit-ui-kit/src/common-apis/utils/logging/logger.js.html +208 -0
  34. package/coverage/rabbit-ui-kit/src/common-apis/utils/logging/logsStorage.js.html +268 -0
  35. package/coverage/rabbit-ui-kit/src/common-apis/utils/postponeExecution.js.html +118 -0
  36. package/coverage/rabbit-ui-kit/src/common-apis/utils/safeStringify.js.html +235 -0
  37. package/coverage/rabbit-ui-kit/src/index.html +116 -0
  38. package/coverage/rabbit-ui-kit/src/index.js.html +358 -0
  39. package/coverage/rabbit-ui-kit/src/robust-api-caller/cacheAndConcurrentRequestsResolver.js.html +1570 -0
  40. package/coverage/rabbit-ui-kit/src/robust-api-caller/cachedRobustExternalApiCallerService.js.html +526 -0
  41. package/coverage/rabbit-ui-kit/src/robust-api-caller/cancelProcessing.js.html +172 -0
  42. package/coverage/rabbit-ui-kit/src/robust-api-caller/concurrentCalculationsMetadataHolder.js.html +310 -0
  43. package/coverage/rabbit-ui-kit/src/robust-api-caller/externalApiProvider.js.html +553 -0
  44. package/coverage/rabbit-ui-kit/src/robust-api-caller/externalServicesStatsCollector.js.html +319 -0
  45. package/coverage/rabbit-ui-kit/src/robust-api-caller/index.html +206 -0
  46. package/coverage/rabbit-ui-kit/src/robust-api-caller/robustExternalAPICallerService.js.html +997 -0
  47. package/coverage/rabbit-ui-kit/src/swaps-lib/external-apis/index.html +146 -0
  48. package/coverage/rabbit-ui-kit/src/swaps-lib/external-apis/letsExchangeSwapProvider.js.html +1543 -0
  49. package/coverage/rabbit-ui-kit/src/swaps-lib/external-apis/swapProvider.js.html +1705 -0
  50. package/coverage/rabbit-ui-kit/src/swaps-lib/external-apis/swapspaceSwapProvider.js.html +1801 -0
  51. package/coverage/rabbit-ui-kit/src/swaps-lib/models/baseSwapCreationInfo.js.html +223 -0
  52. package/coverage/rabbit-ui-kit/src/swaps-lib/models/existingSwap.js.html +304 -0
  53. package/coverage/rabbit-ui-kit/src/swaps-lib/models/existingSwapWithFiatData.js.html +469 -0
  54. package/coverage/rabbit-ui-kit/src/swaps-lib/models/index.html +176 -0
  55. package/coverage/rabbit-ui-kit/src/swaps-lib/models/partner.js.html +106 -0
  56. package/coverage/rabbit-ui-kit/src/swaps-lib/models/swapProviderCoinInfo.js.html +193 -0
  57. package/coverage/rabbit-ui-kit/src/swaps-lib/services/index.html +116 -0
  58. package/coverage/rabbit-ui-kit/src/swaps-lib/services/publicSwapService.js.html +2161 -0
  59. package/coverage/rabbit-ui-kit/src/swaps-lib/utils/index.html +116 -0
  60. package/coverage/rabbit-ui-kit/src/swaps-lib/utils/swapUtils.js.html +670 -0
  61. package/coverage/rabbit-ui-kit/src/ui-kit/assets/wrappedImages/arrowIcon.jsx.html +124 -0
  62. package/coverage/rabbit-ui-kit/src/ui-kit/assets/wrappedImages/arrowTosca.jsx.html +127 -0
  63. package/coverage/rabbit-ui-kit/src/ui-kit/assets/wrappedImages/arrowWhite.jsx.html +127 -0
  64. package/coverage/rabbit-ui-kit/src/ui-kit/assets/wrappedImages/darkRectangle.jsx.html +106 -0
  65. package/coverage/rabbit-ui-kit/src/ui-kit/assets/wrappedImages/determinedError.jsx.html +439 -0
  66. package/coverage/rabbit-ui-kit/src/ui-kit/assets/wrappedImages/failedValidationIcon.jsx.html +202 -0
  67. package/coverage/rabbit-ui-kit/src/ui-kit/assets/wrappedImages/index.html +281 -0
  68. package/coverage/rabbit-ui-kit/src/ui-kit/assets/wrappedImages/infoIcon.jsx.html +133 -0
  69. package/coverage/rabbit-ui-kit/src/ui-kit/assets/wrappedImages/messageIcon.jsx.html +346 -0
  70. package/coverage/rabbit-ui-kit/src/ui-kit/assets/wrappedImages/noticeQuestionIcon.jsx.html +247 -0
  71. package/coverage/rabbit-ui-kit/src/ui-kit/assets/wrappedImages/successfulValidationIcon.jsx.html +163 -0
  72. package/coverage/rabbit-ui-kit/src/ui-kit/assets/wrappedImages/supportDialogImage.jsx.html +268 -0
  73. package/coverage/rabbit-ui-kit/src/ui-kit/assets/wrappedImages/walletIcon.jsx.html +151 -0
  74. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/AssetIcon/AssetIcon.jsx.html +256 -0
  75. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/AssetIcon/index.html +116 -0
  76. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/AssetSelection/AssetSelection.jsx.html +289 -0
  77. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/AssetSelection/index.html +116 -0
  78. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/BackgroundTitle/BackgroundTitle.jsx.html +187 -0
  79. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/BackgroundTitle/index.html +116 -0
  80. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/InformationMessage/InformationMessage.jsx.html +238 -0
  81. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/InformationMessage/index.html +116 -0
  82. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/Input/Input.jsx.html +634 -0
  83. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/Input/index.html +116 -0
  84. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/LoadingDots/LoadingDots.jsx.html +196 -0
  85. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/LoadingDots/index.html +116 -0
  86. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/NoticeIcon/NoticeIcon.jsx.html +277 -0
  87. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/NoticeIcon/index.html +116 -0
  88. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/QrCode/QrCode.jsx.html +217 -0
  89. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/QrCode/index.html +116 -0
  90. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/RateSelector/RateSelector.jsx.html +175 -0
  91. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/RateSelector/index.html +116 -0
  92. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/SupportChat/SupportChat.jsx.html +217 -0
  93. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/SupportChat/index.html +116 -0
  94. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/Textarea/Textarea.jsx.html +529 -0
  95. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/Textarea/index.html +116 -0
  96. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/TitleBox/TitleBox.jsx.html +508 -0
  97. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/TitleBox/index.html +116 -0
  98. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/Tooltip/Tooltip.jsx.html +316 -0
  99. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/Tooltip/index.html +116 -0
  100. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/TwoLinesOfText/LinesOfText.jsx.html +313 -0
  101. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/TwoLinesOfText/index.html +116 -0
  102. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/Validation/Validation.jsx.html +202 -0
  103. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/Validation/index.html +116 -0
  104. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/buttons/Button/Button.jsx.html +712 -0
  105. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/buttons/Button/index.html +116 -0
  106. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/buttons/Close/Close.jsx.html +259 -0
  107. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/buttons/Close/index.html +116 -0
  108. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/buttons/LinkButton/LinkButton.jsx.html +421 -0
  109. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/buttons/LinkButton/index.html +116 -0
  110. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/buttons/RadioButtonWithText/RadioButtonWithText.jsx.html +415 -0
  111. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/buttons/RadioButtonWithText/index.html +116 -0
  112. package/coverage/rabbit-ui-kit/src/ui-kit/components/molecules/AmountInput/AmountInput.jsx.html +1087 -0
  113. package/coverage/rabbit-ui-kit/src/ui-kit/components/molecules/AmountInput/index.html +116 -0
  114. package/coverage/rabbit-ui-kit/src/ui-kit/components/molecules/CoinPicker/CoinPicker.jsx.html +1474 -0
  115. package/coverage/rabbit-ui-kit/src/ui-kit/components/molecules/CoinPicker/index.html +116 -0
  116. package/coverage/rabbit-ui-kit/src/ui-kit/components/molecules/ColoredNotice/ColoredNotice.jsx.html +211 -0
  117. package/coverage/rabbit-ui-kit/src/ui-kit/components/molecules/ColoredNotice/index.html +116 -0
  118. package/coverage/rabbit-ui-kit/src/ui-kit/components/molecules/LineWithIconLink/LineWithIconLink.jsx.html +190 -0
  119. package/coverage/rabbit-ui-kit/src/ui-kit/components/molecules/LineWithIconLink/index.html +116 -0
  120. package/coverage/rabbit-ui-kit/src/ui-kit/components/molecules/LogoCarousel/LogoCarousel.jsx.html +283 -0
  121. package/coverage/rabbit-ui-kit/src/ui-kit/components/molecules/LogoCarousel/index.html +116 -0
  122. package/coverage/rabbit-ui-kit/src/ui-kit/components/molecules/SearchableCoinsList/SearchableCoinsList.jsx.html +496 -0
  123. package/coverage/rabbit-ui-kit/src/ui-kit/components/molecules/SearchableCoinsList/index.html +116 -0
  124. package/coverage/rabbit-ui-kit/src/ui-kit/components/molecules/TitledLineWithIconLink/TitledLineWithIconLink.jsx.html +181 -0
  125. package/coverage/rabbit-ui-kit/src/ui-kit/components/molecules/TitledLineWithIconLink/index.html +116 -0
  126. package/coverage/rabbit-ui-kit/src/ui-kit/components/organisms/CoinPickerDialogStep/CoinPickerDialogStep.jsx.html +283 -0
  127. package/coverage/rabbit-ui-kit/src/ui-kit/components/organisms/CoinPickerDialogStep/index.html +116 -0
  128. package/coverage/rabbit-ui-kit/src/ui-kit/components/organisms/Dialog/Dialog.jsx.html +1567 -0
  129. package/coverage/rabbit-ui-kit/src/ui-kit/components/organisms/Dialog/DialogButtons/DialogButtons.jsx.html +481 -0
  130. package/coverage/rabbit-ui-kit/src/ui-kit/components/organisms/Dialog/DialogButtons/index.html +116 -0
  131. package/coverage/rabbit-ui-kit/src/ui-kit/components/organisms/Dialog/DialogStep/DialogStep.jsx.html +1747 -0
  132. package/coverage/rabbit-ui-kit/src/ui-kit/components/organisms/Dialog/DialogStep/index.html +116 -0
  133. package/coverage/rabbit-ui-kit/src/ui-kit/components/organisms/Dialog/index.html +116 -0
  134. package/coverage/rabbit-ui-kit/src/ui-kit/components/organisms/SwapForm/SwapForm.jsx.html +4168 -0
  135. package/coverage/rabbit-ui-kit/src/ui-kit/components/organisms/SwapForm/index.html +116 -0
  136. package/coverage/rabbit-ui-kit/src/ui-kit/components/organisms/WaitlistSubscription/WaitlistSubscription.jsx.html +559 -0
  137. package/coverage/rabbit-ui-kit/src/ui-kit/components/organisms/WaitlistSubscription/index.html +116 -0
  138. package/coverage/rabbit-ui-kit/src/ui-kit/components/templates/DeterminedErrorDialogStep/DeterminedErrorDialogStep.jsx.html +316 -0
  139. package/coverage/rabbit-ui-kit/src/ui-kit/components/templates/DeterminedErrorDialogStep/index.html +116 -0
  140. package/coverage/rabbit-ui-kit/src/ui-kit/hooks/index.html +146 -0
  141. package/coverage/rabbit-ui-kit/src/ui-kit/hooks/useCallHandlingErrors.js.html +151 -0
  142. package/coverage/rabbit-ui-kit/src/ui-kit/hooks/useIsHydrated.js.html +121 -0
  143. package/coverage/rabbit-ui-kit/src/ui-kit/hooks/useReferredState.js.html +157 -0
  144. package/coverage/rabbit-ui-kit/src/ui-kit/utils/index.html +161 -0
  145. package/coverage/rabbit-ui-kit/src/ui-kit/utils/inputValueProviders.js.html +235 -0
  146. package/coverage/rabbit-ui-kit/src/ui-kit/utils/textUtils.js.html +139 -0
  147. package/coverage/rabbit-ui-kit/src/ui-kit/utils/uiUtils.js.html +121 -0
  148. package/coverage/rabbit-ui-kit/src/ui-kit/utils/urlQueryUtils.js.html +271 -0
  149. package/coverage/rabbit-ui-kit/stories/atoms/BackgroundTitle.stories.jsx.html +202 -0
  150. package/coverage/rabbit-ui-kit/stories/atoms/LinesOfText.stories.jsx.html +283 -0
  151. package/coverage/rabbit-ui-kit/stories/atoms/LoadingDots.stories.jsx.html +226 -0
  152. package/coverage/rabbit-ui-kit/stories/atoms/QrCode.stories.jsx.html +175 -0
  153. package/coverage/rabbit-ui-kit/stories/atoms/RateSelector.stories.jsx.html +136 -0
  154. package/coverage/rabbit-ui-kit/stories/atoms/Validation.stories.jsx.html +178 -0
  155. package/coverage/rabbit-ui-kit/stories/atoms/buttons/Button.stories.jsx.html +883 -0
  156. package/coverage/rabbit-ui-kit/stories/atoms/buttons/Close.stories.jsx.html +211 -0
  157. package/coverage/rabbit-ui-kit/stories/atoms/buttons/LinkButton.stories.jsx.html +301 -0
  158. package/coverage/rabbit-ui-kit/stories/atoms/buttons/index.html +146 -0
  159. package/coverage/rabbit-ui-kit/stories/atoms/index.html +191 -0
  160. package/coverage/rabbit-ui-kit/stories/molecules/CoinPicker.stories.jsx.html +322 -0
  161. package/coverage/rabbit-ui-kit/stories/molecules/ColoredNotice.stories.jsx.html +178 -0
  162. package/coverage/rabbit-ui-kit/stories/molecules/LineWithIconLink.stories.jsx.html +154 -0
  163. package/coverage/rabbit-ui-kit/stories/molecules/LogoCarousel.stories.jsx.html +160 -0
  164. package/coverage/rabbit-ui-kit/stories/molecules/TitledLineWithIconLink.stories.jsx.html +160 -0
  165. package/coverage/rabbit-ui-kit/stories/molecules/index.html +176 -0
  166. package/coverage/rabbit-ui-kit/stories/organisms/Dialog/Dialog.stories.jsx.html +523 -0
  167. package/coverage/rabbit-ui-kit/stories/organisms/Dialog/DialogButtons/DialogButtons.stories.jsx.html +328 -0
  168. package/coverage/rabbit-ui-kit/stories/organisms/Dialog/DialogButtons/index.html +116 -0
  169. package/coverage/rabbit-ui-kit/stories/organisms/Dialog/DialogStep/DialogStep.stories.jsx.html +337 -0
  170. package/coverage/rabbit-ui-kit/stories/organisms/Dialog/DialogStep/index.html +116 -0
  171. package/coverage/rabbit-ui-kit/stories/organisms/Dialog/index.html +116 -0
  172. package/coverage/rabbit-ui-kit/stories/organisms/WaitlistSubscription.stories.jsx.html +151 -0
  173. package/coverage/rabbit-ui-kit/stories/organisms/index.html +116 -0
  174. package/coverage/rabbit-ui-kit/stories/stubs/coins.jsx.html +6880 -0
  175. package/coverage/rabbit-ui-kit/stories/stubs/exampleContent.jsx.html +145 -0
  176. package/coverage/rabbit-ui-kit/stories/stubs/index.html +131 -0
  177. package/coverage/rabbit-ui-kit/stories/templates/DeterminedErrorDialogStep.stories.jsx.html +190 -0
  178. package/coverage/rabbit-ui-kit/stories/templates/index.html +116 -0
  179. package/coverage/sort-arrow-sprite.png +0 -0
  180. package/coverage/sorter.js +196 -0
  181. package/dist/global.css.map +1 -1
  182. package/dist/index.cjs +1139 -496
  183. package/dist/index.cjs.map +1 -1
  184. package/dist/index.css +111 -0
  185. package/dist/index.css.map +1 -1
  186. package/dist/index.modern.js +950 -420
  187. package/dist/index.modern.js.map +1 -1
  188. package/dist/index.module.js +1136 -497
  189. package/dist/index.module.js.map +1 -1
  190. package/dist/index.umd.js +1139 -496
  191. package/dist/index.umd.js.map +1 -1
  192. package/package.json +1 -1
  193. package/src/index.js +4 -0
  194. package/src/swaps-lib/external-apis/letsExchangeSwapProvider.js +11 -0
  195. package/src/swaps-lib/external-apis/swapProvider.js +8 -0
  196. package/src/swaps-lib/external-apis/swapspaceSwapProvider.js +20 -1
  197. package/src/swaps-lib/models/partner.js +7 -0
  198. package/src/swaps-lib/services/publicSwapService.js +17 -0
  199. package/src/ui-kit/assets/styles/global.scss +4 -7
  200. package/src/ui-kit/assets/wrappedImages/messageIcon.jsx +87 -0
  201. package/src/ui-kit/assets/wrappedImages/supportDialogImage.jsx +61 -0
  202. package/src/ui-kit/components/atoms/RateSelector/RateSelector.jsx +2 -2
  203. package/src/ui-kit/components/atoms/Validation/Validation.jsx +7 -9
  204. package/src/ui-kit/components/atoms/Validation/validation.module.scss +4 -0
  205. package/src/ui-kit/components/molecules/AmountInput/AmountInput.jsx +57 -48
  206. package/src/ui-kit/components/molecules/AmountInput/amount-input.module.scss +34 -0
  207. package/src/ui-kit/components/molecules/CoinPicker/CoinPicker.jsx +84 -132
  208. package/src/ui-kit/components/molecules/ColoredNotice/ColoredNotice.jsx +42 -0
  209. package/src/ui-kit/components/molecules/ColoredNotice/colored-notice.module.scss +20 -0
  210. package/src/ui-kit/components/molecules/LogoCarousel/LogoCarousel.jsx +66 -0
  211. package/src/ui-kit/components/molecules/LogoCarousel/logo-carousel.module.scss +87 -0
  212. package/src/ui-kit/components/molecules/SearchableCoinsList/SearchableCoinsList.jsx +137 -0
  213. package/src/ui-kit/components/organisms/Dialog/DialogButtons/DialogButtons.jsx +10 -0
  214. package/src/ui-kit/components/organisms/Dialog/DialogStep/DialogStep.jsx +16 -0
  215. package/src/ui-kit/components/organisms/SwapForm/SwapForm.jsx +35 -12
  216. package/src/ui-kit/components/organisms/WaitlistSubscription/WaitlistSubscription.jsx +158 -0
@@ -0,0 +1,4168 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for rabbit-ui-kit/src/ui-kit/components/organisms/SwapForm/SwapForm.jsx</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">rabbit-ui-kit/src/ui-kit/components/organisms/SwapForm</a> SwapForm.jsx</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">0% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>0/1361</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/1</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">0% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>0/1</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">0% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>0/1361</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>
1329
+ <a name='L1264'></a><a href='#L1264'>1264</a>
1330
+ <a name='L1265'></a><a href='#L1265'>1265</a>
1331
+ <a name='L1266'></a><a href='#L1266'>1266</a>
1332
+ <a name='L1267'></a><a href='#L1267'>1267</a>
1333
+ <a name='L1268'></a><a href='#L1268'>1268</a>
1334
+ <a name='L1269'></a><a href='#L1269'>1269</a>
1335
+ <a name='L1270'></a><a href='#L1270'>1270</a>
1336
+ <a name='L1271'></a><a href='#L1271'>1271</a>
1337
+ <a name='L1272'></a><a href='#L1272'>1272</a>
1338
+ <a name='L1273'></a><a href='#L1273'>1273</a>
1339
+ <a name='L1274'></a><a href='#L1274'>1274</a>
1340
+ <a name='L1275'></a><a href='#L1275'>1275</a>
1341
+ <a name='L1276'></a><a href='#L1276'>1276</a>
1342
+ <a name='L1277'></a><a href='#L1277'>1277</a>
1343
+ <a name='L1278'></a><a href='#L1278'>1278</a>
1344
+ <a name='L1279'></a><a href='#L1279'>1279</a>
1345
+ <a name='L1280'></a><a href='#L1280'>1280</a>
1346
+ <a name='L1281'></a><a href='#L1281'>1281</a>
1347
+ <a name='L1282'></a><a href='#L1282'>1282</a>
1348
+ <a name='L1283'></a><a href='#L1283'>1283</a>
1349
+ <a name='L1284'></a><a href='#L1284'>1284</a>
1350
+ <a name='L1285'></a><a href='#L1285'>1285</a>
1351
+ <a name='L1286'></a><a href='#L1286'>1286</a>
1352
+ <a name='L1287'></a><a href='#L1287'>1287</a>
1353
+ <a name='L1288'></a><a href='#L1288'>1288</a>
1354
+ <a name='L1289'></a><a href='#L1289'>1289</a>
1355
+ <a name='L1290'></a><a href='#L1290'>1290</a>
1356
+ <a name='L1291'></a><a href='#L1291'>1291</a>
1357
+ <a name='L1292'></a><a href='#L1292'>1292</a>
1358
+ <a name='L1293'></a><a href='#L1293'>1293</a>
1359
+ <a name='L1294'></a><a href='#L1294'>1294</a>
1360
+ <a name='L1295'></a><a href='#L1295'>1295</a>
1361
+ <a name='L1296'></a><a href='#L1296'>1296</a>
1362
+ <a name='L1297'></a><a href='#L1297'>1297</a>
1363
+ <a name='L1298'></a><a href='#L1298'>1298</a>
1364
+ <a name='L1299'></a><a href='#L1299'>1299</a>
1365
+ <a name='L1300'></a><a href='#L1300'>1300</a>
1366
+ <a name='L1301'></a><a href='#L1301'>1301</a>
1367
+ <a name='L1302'></a><a href='#L1302'>1302</a>
1368
+ <a name='L1303'></a><a href='#L1303'>1303</a>
1369
+ <a name='L1304'></a><a href='#L1304'>1304</a>
1370
+ <a name='L1305'></a><a href='#L1305'>1305</a>
1371
+ <a name='L1306'></a><a href='#L1306'>1306</a>
1372
+ <a name='L1307'></a><a href='#L1307'>1307</a>
1373
+ <a name='L1308'></a><a href='#L1308'>1308</a>
1374
+ <a name='L1309'></a><a href='#L1309'>1309</a>
1375
+ <a name='L1310'></a><a href='#L1310'>1310</a>
1376
+ <a name='L1311'></a><a href='#L1311'>1311</a>
1377
+ <a name='L1312'></a><a href='#L1312'>1312</a>
1378
+ <a name='L1313'></a><a href='#L1313'>1313</a>
1379
+ <a name='L1314'></a><a href='#L1314'>1314</a>
1380
+ <a name='L1315'></a><a href='#L1315'>1315</a>
1381
+ <a name='L1316'></a><a href='#L1316'>1316</a>
1382
+ <a name='L1317'></a><a href='#L1317'>1317</a>
1383
+ <a name='L1318'></a><a href='#L1318'>1318</a>
1384
+ <a name='L1319'></a><a href='#L1319'>1319</a>
1385
+ <a name='L1320'></a><a href='#L1320'>1320</a>
1386
+ <a name='L1321'></a><a href='#L1321'>1321</a>
1387
+ <a name='L1322'></a><a href='#L1322'>1322</a>
1388
+ <a name='L1323'></a><a href='#L1323'>1323</a>
1389
+ <a name='L1324'></a><a href='#L1324'>1324</a>
1390
+ <a name='L1325'></a><a href='#L1325'>1325</a>
1391
+ <a name='L1326'></a><a href='#L1326'>1326</a>
1392
+ <a name='L1327'></a><a href='#L1327'>1327</a>
1393
+ <a name='L1328'></a><a href='#L1328'>1328</a>
1394
+ <a name='L1329'></a><a href='#L1329'>1329</a>
1395
+ <a name='L1330'></a><a href='#L1330'>1330</a>
1396
+ <a name='L1331'></a><a href='#L1331'>1331</a>
1397
+ <a name='L1332'></a><a href='#L1332'>1332</a>
1398
+ <a name='L1333'></a><a href='#L1333'>1333</a>
1399
+ <a name='L1334'></a><a href='#L1334'>1334</a>
1400
+ <a name='L1335'></a><a href='#L1335'>1335</a>
1401
+ <a name='L1336'></a><a href='#L1336'>1336</a>
1402
+ <a name='L1337'></a><a href='#L1337'>1337</a>
1403
+ <a name='L1338'></a><a href='#L1338'>1338</a>
1404
+ <a name='L1339'></a><a href='#L1339'>1339</a>
1405
+ <a name='L1340'></a><a href='#L1340'>1340</a>
1406
+ <a name='L1341'></a><a href='#L1341'>1341</a>
1407
+ <a name='L1342'></a><a href='#L1342'>1342</a>
1408
+ <a name='L1343'></a><a href='#L1343'>1343</a>
1409
+ <a name='L1344'></a><a href='#L1344'>1344</a>
1410
+ <a name='L1345'></a><a href='#L1345'>1345</a>
1411
+ <a name='L1346'></a><a href='#L1346'>1346</a>
1412
+ <a name='L1347'></a><a href='#L1347'>1347</a>
1413
+ <a name='L1348'></a><a href='#L1348'>1348</a>
1414
+ <a name='L1349'></a><a href='#L1349'>1349</a>
1415
+ <a name='L1350'></a><a href='#L1350'>1350</a>
1416
+ <a name='L1351'></a><a href='#L1351'>1351</a>
1417
+ <a name='L1352'></a><a href='#L1352'>1352</a>
1418
+ <a name='L1353'></a><a href='#L1353'>1353</a>
1419
+ <a name='L1354'></a><a href='#L1354'>1354</a>
1420
+ <a name='L1355'></a><a href='#L1355'>1355</a>
1421
+ <a name='L1356'></a><a href='#L1356'>1356</a>
1422
+ <a name='L1357'></a><a href='#L1357'>1357</a>
1423
+ <a name='L1358'></a><a href='#L1358'>1358</a>
1424
+ <a name='L1359'></a><a href='#L1359'>1359</a>
1425
+ <a name='L1360'></a><a href='#L1360'>1360</a>
1426
+ <a name='L1361'></a><a href='#L1361'>1361</a>
1427
+ <a name='L1362'></a><a href='#L1362'>1362</a></td><td class="line-coverage quiet"><span class="cline-any cline-no">&nbsp;</span>
1428
+ <span class="cline-any cline-no">&nbsp;</span>
1429
+ <span class="cline-any cline-no">&nbsp;</span>
1430
+ <span class="cline-any cline-no">&nbsp;</span>
1431
+ <span class="cline-any cline-no">&nbsp;</span>
1432
+ <span class="cline-any cline-no">&nbsp;</span>
1433
+ <span class="cline-any cline-no">&nbsp;</span>
1434
+ <span class="cline-any cline-no">&nbsp;</span>
1435
+ <span class="cline-any cline-no">&nbsp;</span>
1436
+ <span class="cline-any cline-no">&nbsp;</span>
1437
+ <span class="cline-any cline-no">&nbsp;</span>
1438
+ <span class="cline-any cline-no">&nbsp;</span>
1439
+ <span class="cline-any cline-no">&nbsp;</span>
1440
+ <span class="cline-any cline-no">&nbsp;</span>
1441
+ <span class="cline-any cline-no">&nbsp;</span>
1442
+ <span class="cline-any cline-no">&nbsp;</span>
1443
+ <span class="cline-any cline-no">&nbsp;</span>
1444
+ <span class="cline-any cline-no">&nbsp;</span>
1445
+ <span class="cline-any cline-no">&nbsp;</span>
1446
+ <span class="cline-any cline-no">&nbsp;</span>
1447
+ <span class="cline-any cline-no">&nbsp;</span>
1448
+ <span class="cline-any cline-no">&nbsp;</span>
1449
+ <span class="cline-any cline-no">&nbsp;</span>
1450
+ <span class="cline-any cline-no">&nbsp;</span>
1451
+ <span class="cline-any cline-no">&nbsp;</span>
1452
+ <span class="cline-any cline-no">&nbsp;</span>
1453
+ <span class="cline-any cline-no">&nbsp;</span>
1454
+ <span class="cline-any cline-no">&nbsp;</span>
1455
+ <span class="cline-any cline-no">&nbsp;</span>
1456
+ <span class="cline-any cline-no">&nbsp;</span>
1457
+ <span class="cline-any cline-no">&nbsp;</span>
1458
+ <span class="cline-any cline-no">&nbsp;</span>
1459
+ <span class="cline-any cline-no">&nbsp;</span>
1460
+ <span class="cline-any cline-no">&nbsp;</span>
1461
+ <span class="cline-any cline-no">&nbsp;</span>
1462
+ <span class="cline-any cline-no">&nbsp;</span>
1463
+ <span class="cline-any cline-no">&nbsp;</span>
1464
+ <span class="cline-any cline-no">&nbsp;</span>
1465
+ <span class="cline-any cline-no">&nbsp;</span>
1466
+ <span class="cline-any cline-no">&nbsp;</span>
1467
+ <span class="cline-any cline-no">&nbsp;</span>
1468
+ <span class="cline-any cline-no">&nbsp;</span>
1469
+ <span class="cline-any cline-no">&nbsp;</span>
1470
+ <span class="cline-any cline-no">&nbsp;</span>
1471
+ <span class="cline-any cline-no">&nbsp;</span>
1472
+ <span class="cline-any cline-no">&nbsp;</span>
1473
+ <span class="cline-any cline-no">&nbsp;</span>
1474
+ <span class="cline-any cline-no">&nbsp;</span>
1475
+ <span class="cline-any cline-no">&nbsp;</span>
1476
+ <span class="cline-any cline-no">&nbsp;</span>
1477
+ <span class="cline-any cline-no">&nbsp;</span>
1478
+ <span class="cline-any cline-no">&nbsp;</span>
1479
+ <span class="cline-any cline-no">&nbsp;</span>
1480
+ <span class="cline-any cline-no">&nbsp;</span>
1481
+ <span class="cline-any cline-no">&nbsp;</span>
1482
+ <span class="cline-any cline-no">&nbsp;</span>
1483
+ <span class="cline-any cline-no">&nbsp;</span>
1484
+ <span class="cline-any cline-no">&nbsp;</span>
1485
+ <span class="cline-any cline-no">&nbsp;</span>
1486
+ <span class="cline-any cline-no">&nbsp;</span>
1487
+ <span class="cline-any cline-no">&nbsp;</span>
1488
+ <span class="cline-any cline-no">&nbsp;</span>
1489
+ <span class="cline-any cline-no">&nbsp;</span>
1490
+ <span class="cline-any cline-no">&nbsp;</span>
1491
+ <span class="cline-any cline-no">&nbsp;</span>
1492
+ <span class="cline-any cline-no">&nbsp;</span>
1493
+ <span class="cline-any cline-no">&nbsp;</span>
1494
+ <span class="cline-any cline-no">&nbsp;</span>
1495
+ <span class="cline-any cline-no">&nbsp;</span>
1496
+ <span class="cline-any cline-no">&nbsp;</span>
1497
+ <span class="cline-any cline-no">&nbsp;</span>
1498
+ <span class="cline-any cline-no">&nbsp;</span>
1499
+ <span class="cline-any cline-no">&nbsp;</span>
1500
+ <span class="cline-any cline-no">&nbsp;</span>
1501
+ <span class="cline-any cline-no">&nbsp;</span>
1502
+ <span class="cline-any cline-no">&nbsp;</span>
1503
+ <span class="cline-any cline-no">&nbsp;</span>
1504
+ <span class="cline-any cline-no">&nbsp;</span>
1505
+ <span class="cline-any cline-no">&nbsp;</span>
1506
+ <span class="cline-any cline-no">&nbsp;</span>
1507
+ <span class="cline-any cline-no">&nbsp;</span>
1508
+ <span class="cline-any cline-no">&nbsp;</span>
1509
+ <span class="cline-any cline-no">&nbsp;</span>
1510
+ <span class="cline-any cline-no">&nbsp;</span>
1511
+ <span class="cline-any cline-no">&nbsp;</span>
1512
+ <span class="cline-any cline-no">&nbsp;</span>
1513
+ <span class="cline-any cline-no">&nbsp;</span>
1514
+ <span class="cline-any cline-no">&nbsp;</span>
1515
+ <span class="cline-any cline-no">&nbsp;</span>
1516
+ <span class="cline-any cline-no">&nbsp;</span>
1517
+ <span class="cline-any cline-no">&nbsp;</span>
1518
+ <span class="cline-any cline-no">&nbsp;</span>
1519
+ <span class="cline-any cline-no">&nbsp;</span>
1520
+ <span class="cline-any cline-no">&nbsp;</span>
1521
+ <span class="cline-any cline-no">&nbsp;</span>
1522
+ <span class="cline-any cline-no">&nbsp;</span>
1523
+ <span class="cline-any cline-no">&nbsp;</span>
1524
+ <span class="cline-any cline-no">&nbsp;</span>
1525
+ <span class="cline-any cline-no">&nbsp;</span>
1526
+ <span class="cline-any cline-no">&nbsp;</span>
1527
+ <span class="cline-any cline-no">&nbsp;</span>
1528
+ <span class="cline-any cline-no">&nbsp;</span>
1529
+ <span class="cline-any cline-no">&nbsp;</span>
1530
+ <span class="cline-any cline-no">&nbsp;</span>
1531
+ <span class="cline-any cline-no">&nbsp;</span>
1532
+ <span class="cline-any cline-no">&nbsp;</span>
1533
+ <span class="cline-any cline-no">&nbsp;</span>
1534
+ <span class="cline-any cline-no">&nbsp;</span>
1535
+ <span class="cline-any cline-no">&nbsp;</span>
1536
+ <span class="cline-any cline-no">&nbsp;</span>
1537
+ <span class="cline-any cline-no">&nbsp;</span>
1538
+ <span class="cline-any cline-no">&nbsp;</span>
1539
+ <span class="cline-any cline-no">&nbsp;</span>
1540
+ <span class="cline-any cline-no">&nbsp;</span>
1541
+ <span class="cline-any cline-no">&nbsp;</span>
1542
+ <span class="cline-any cline-no">&nbsp;</span>
1543
+ <span class="cline-any cline-no">&nbsp;</span>
1544
+ <span class="cline-any cline-no">&nbsp;</span>
1545
+ <span class="cline-any cline-no">&nbsp;</span>
1546
+ <span class="cline-any cline-no">&nbsp;</span>
1547
+ <span class="cline-any cline-no">&nbsp;</span>
1548
+ <span class="cline-any cline-no">&nbsp;</span>
1549
+ <span class="cline-any cline-no">&nbsp;</span>
1550
+ <span class="cline-any cline-no">&nbsp;</span>
1551
+ <span class="cline-any cline-no">&nbsp;</span>
1552
+ <span class="cline-any cline-no">&nbsp;</span>
1553
+ <span class="cline-any cline-no">&nbsp;</span>
1554
+ <span class="cline-any cline-no">&nbsp;</span>
1555
+ <span class="cline-any cline-no">&nbsp;</span>
1556
+ <span class="cline-any cline-no">&nbsp;</span>
1557
+ <span class="cline-any cline-no">&nbsp;</span>
1558
+ <span class="cline-any cline-no">&nbsp;</span>
1559
+ <span class="cline-any cline-no">&nbsp;</span>
1560
+ <span class="cline-any cline-no">&nbsp;</span>
1561
+ <span class="cline-any cline-no">&nbsp;</span>
1562
+ <span class="cline-any cline-no">&nbsp;</span>
1563
+ <span class="cline-any cline-no">&nbsp;</span>
1564
+ <span class="cline-any cline-no">&nbsp;</span>
1565
+ <span class="cline-any cline-no">&nbsp;</span>
1566
+ <span class="cline-any cline-no">&nbsp;</span>
1567
+ <span class="cline-any cline-no">&nbsp;</span>
1568
+ <span class="cline-any cline-no">&nbsp;</span>
1569
+ <span class="cline-any cline-no">&nbsp;</span>
1570
+ <span class="cline-any cline-no">&nbsp;</span>
1571
+ <span class="cline-any cline-no">&nbsp;</span>
1572
+ <span class="cline-any cline-no">&nbsp;</span>
1573
+ <span class="cline-any cline-no">&nbsp;</span>
1574
+ <span class="cline-any cline-no">&nbsp;</span>
1575
+ <span class="cline-any cline-no">&nbsp;</span>
1576
+ <span class="cline-any cline-no">&nbsp;</span>
1577
+ <span class="cline-any cline-no">&nbsp;</span>
1578
+ <span class="cline-any cline-no">&nbsp;</span>
1579
+ <span class="cline-any cline-no">&nbsp;</span>
1580
+ <span class="cline-any cline-no">&nbsp;</span>
1581
+ <span class="cline-any cline-no">&nbsp;</span>
1582
+ <span class="cline-any cline-no">&nbsp;</span>
1583
+ <span class="cline-any cline-no">&nbsp;</span>
1584
+ <span class="cline-any cline-no">&nbsp;</span>
1585
+ <span class="cline-any cline-no">&nbsp;</span>
1586
+ <span class="cline-any cline-no">&nbsp;</span>
1587
+ <span class="cline-any cline-no">&nbsp;</span>
1588
+ <span class="cline-any cline-no">&nbsp;</span>
1589
+ <span class="cline-any cline-no">&nbsp;</span>
1590
+ <span class="cline-any cline-no">&nbsp;</span>
1591
+ <span class="cline-any cline-no">&nbsp;</span>
1592
+ <span class="cline-any cline-no">&nbsp;</span>
1593
+ <span class="cline-any cline-no">&nbsp;</span>
1594
+ <span class="cline-any cline-no">&nbsp;</span>
1595
+ <span class="cline-any cline-no">&nbsp;</span>
1596
+ <span class="cline-any cline-no">&nbsp;</span>
1597
+ <span class="cline-any cline-no">&nbsp;</span>
1598
+ <span class="cline-any cline-no">&nbsp;</span>
1599
+ <span class="cline-any cline-no">&nbsp;</span>
1600
+ <span class="cline-any cline-no">&nbsp;</span>
1601
+ <span class="cline-any cline-no">&nbsp;</span>
1602
+ <span class="cline-any cline-no">&nbsp;</span>
1603
+ <span class="cline-any cline-no">&nbsp;</span>
1604
+ <span class="cline-any cline-no">&nbsp;</span>
1605
+ <span class="cline-any cline-no">&nbsp;</span>
1606
+ <span class="cline-any cline-no">&nbsp;</span>
1607
+ <span class="cline-any cline-no">&nbsp;</span>
1608
+ <span class="cline-any cline-no">&nbsp;</span>
1609
+ <span class="cline-any cline-no">&nbsp;</span>
1610
+ <span class="cline-any cline-no">&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-no">&nbsp;</span>
1614
+ <span class="cline-any cline-no">&nbsp;</span>
1615
+ <span class="cline-any cline-no">&nbsp;</span>
1616
+ <span class="cline-any cline-no">&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-no">&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-no">&nbsp;</span>
1625
+ <span class="cline-any cline-no">&nbsp;</span>
1626
+ <span class="cline-any cline-no">&nbsp;</span>
1627
+ <span class="cline-any cline-no">&nbsp;</span>
1628
+ <span class="cline-any cline-no">&nbsp;</span>
1629
+ <span class="cline-any cline-no">&nbsp;</span>
1630
+ <span class="cline-any cline-no">&nbsp;</span>
1631
+ <span class="cline-any cline-no">&nbsp;</span>
1632
+ <span class="cline-any cline-no">&nbsp;</span>
1633
+ <span class="cline-any cline-no">&nbsp;</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-no">&nbsp;</span>
1639
+ <span class="cline-any cline-no">&nbsp;</span>
1640
+ <span class="cline-any cline-no">&nbsp;</span>
1641
+ <span class="cline-any cline-no">&nbsp;</span>
1642
+ <span class="cline-any cline-no">&nbsp;</span>
1643
+ <span class="cline-any cline-no">&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-no">&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-no">&nbsp;</span>
1651
+ <span class="cline-any cline-no">&nbsp;</span>
1652
+ <span class="cline-any cline-no">&nbsp;</span>
1653
+ <span class="cline-any cline-no">&nbsp;</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-no">&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-no">&nbsp;</span>
1663
+ <span class="cline-any cline-no">&nbsp;</span>
1664
+ <span class="cline-any cline-no">&nbsp;</span>
1665
+ <span class="cline-any cline-no">&nbsp;</span>
1666
+ <span class="cline-any cline-no">&nbsp;</span>
1667
+ <span class="cline-any cline-no">&nbsp;</span>
1668
+ <span class="cline-any cline-no">&nbsp;</span>
1669
+ <span class="cline-any cline-no">&nbsp;</span>
1670
+ <span class="cline-any cline-no">&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-no">&nbsp;</span>
1674
+ <span class="cline-any cline-no">&nbsp;</span>
1675
+ <span class="cline-any cline-no">&nbsp;</span>
1676
+ <span class="cline-any cline-no">&nbsp;</span>
1677
+ <span class="cline-any cline-no">&nbsp;</span>
1678
+ <span class="cline-any cline-no">&nbsp;</span>
1679
+ <span class="cline-any cline-no">&nbsp;</span>
1680
+ <span class="cline-any cline-no">&nbsp;</span>
1681
+ <span class="cline-any cline-no">&nbsp;</span>
1682
+ <span class="cline-any cline-no">&nbsp;</span>
1683
+ <span class="cline-any cline-no">&nbsp;</span>
1684
+ <span class="cline-any cline-no">&nbsp;</span>
1685
+ <span class="cline-any cline-no">&nbsp;</span>
1686
+ <span class="cline-any cline-no">&nbsp;</span>
1687
+ <span class="cline-any cline-no">&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-no">&nbsp;</span>
1694
+ <span class="cline-any cline-no">&nbsp;</span>
1695
+ <span class="cline-any cline-no">&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-no">&nbsp;</span>
1699
+ <span class="cline-any cline-no">&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-no">&nbsp;</span>
1703
+ <span class="cline-any cline-no">&nbsp;</span>
1704
+ <span class="cline-any cline-no">&nbsp;</span>
1705
+ <span class="cline-any cline-no">&nbsp;</span>
1706
+ <span class="cline-any cline-no">&nbsp;</span>
1707
+ <span class="cline-any cline-no">&nbsp;</span>
1708
+ <span class="cline-any cline-no">&nbsp;</span>
1709
+ <span class="cline-any cline-no">&nbsp;</span>
1710
+ <span class="cline-any cline-no">&nbsp;</span>
1711
+ <span class="cline-any cline-no">&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-no">&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-no">&nbsp;</span>
1721
+ <span class="cline-any cline-no">&nbsp;</span>
1722
+ <span class="cline-any cline-no">&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-no">&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-no">&nbsp;</span>
1736
+ <span class="cline-any cline-no">&nbsp;</span>
1737
+ <span class="cline-any cline-no">&nbsp;</span>
1738
+ <span class="cline-any cline-no">&nbsp;</span>
1739
+ <span class="cline-any cline-no">&nbsp;</span>
1740
+ <span class="cline-any cline-no">&nbsp;</span>
1741
+ <span class="cline-any cline-no">&nbsp;</span>
1742
+ <span class="cline-any cline-no">&nbsp;</span>
1743
+ <span class="cline-any cline-no">&nbsp;</span>
1744
+ <span class="cline-any cline-no">&nbsp;</span>
1745
+ <span class="cline-any cline-no">&nbsp;</span>
1746
+ <span class="cline-any cline-no">&nbsp;</span>
1747
+ <span class="cline-any cline-no">&nbsp;</span>
1748
+ <span class="cline-any cline-no">&nbsp;</span>
1749
+ <span class="cline-any cline-no">&nbsp;</span>
1750
+ <span class="cline-any cline-no">&nbsp;</span>
1751
+ <span class="cline-any cline-no">&nbsp;</span>
1752
+ <span class="cline-any cline-no">&nbsp;</span>
1753
+ <span class="cline-any cline-no">&nbsp;</span>
1754
+ <span class="cline-any cline-no">&nbsp;</span>
1755
+ <span class="cline-any cline-no">&nbsp;</span>
1756
+ <span class="cline-any cline-no">&nbsp;</span>
1757
+ <span class="cline-any cline-no">&nbsp;</span>
1758
+ <span class="cline-any cline-no">&nbsp;</span>
1759
+ <span class="cline-any cline-no">&nbsp;</span>
1760
+ <span class="cline-any cline-no">&nbsp;</span>
1761
+ <span class="cline-any cline-no">&nbsp;</span>
1762
+ <span class="cline-any cline-no">&nbsp;</span>
1763
+ <span class="cline-any cline-no">&nbsp;</span>
1764
+ <span class="cline-any cline-no">&nbsp;</span>
1765
+ <span class="cline-any cline-no">&nbsp;</span>
1766
+ <span class="cline-any cline-no">&nbsp;</span>
1767
+ <span class="cline-any cline-no">&nbsp;</span>
1768
+ <span class="cline-any cline-no">&nbsp;</span>
1769
+ <span class="cline-any cline-no">&nbsp;</span>
1770
+ <span class="cline-any cline-no">&nbsp;</span>
1771
+ <span class="cline-any cline-no">&nbsp;</span>
1772
+ <span class="cline-any cline-no">&nbsp;</span>
1773
+ <span class="cline-any cline-no">&nbsp;</span>
1774
+ <span class="cline-any cline-no">&nbsp;</span>
1775
+ <span class="cline-any cline-no">&nbsp;</span>
1776
+ <span class="cline-any cline-no">&nbsp;</span>
1777
+ <span class="cline-any cline-no">&nbsp;</span>
1778
+ <span class="cline-any cline-no">&nbsp;</span>
1779
+ <span class="cline-any cline-no">&nbsp;</span>
1780
+ <span class="cline-any cline-no">&nbsp;</span>
1781
+ <span class="cline-any cline-no">&nbsp;</span>
1782
+ <span class="cline-any cline-no">&nbsp;</span>
1783
+ <span class="cline-any cline-no">&nbsp;</span>
1784
+ <span class="cline-any cline-no">&nbsp;</span>
1785
+ <span class="cline-any cline-no">&nbsp;</span>
1786
+ <span class="cline-any cline-no">&nbsp;</span>
1787
+ <span class="cline-any cline-no">&nbsp;</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-no">&nbsp;</span>
1797
+ <span class="cline-any cline-no">&nbsp;</span>
1798
+ <span class="cline-any cline-no">&nbsp;</span>
1799
+ <span class="cline-any cline-no">&nbsp;</span>
1800
+ <span class="cline-any cline-no">&nbsp;</span>
1801
+ <span class="cline-any cline-no">&nbsp;</span>
1802
+ <span class="cline-any cline-no">&nbsp;</span>
1803
+ <span class="cline-any cline-no">&nbsp;</span>
1804
+ <span class="cline-any cline-no">&nbsp;</span>
1805
+ <span class="cline-any cline-no">&nbsp;</span>
1806
+ <span class="cline-any cline-no">&nbsp;</span>
1807
+ <span class="cline-any cline-no">&nbsp;</span>
1808
+ <span class="cline-any cline-no">&nbsp;</span>
1809
+ <span class="cline-any cline-no">&nbsp;</span>
1810
+ <span class="cline-any cline-no">&nbsp;</span>
1811
+ <span class="cline-any cline-no">&nbsp;</span>
1812
+ <span class="cline-any cline-no">&nbsp;</span>
1813
+ <span class="cline-any cline-no">&nbsp;</span>
1814
+ <span class="cline-any cline-no">&nbsp;</span>
1815
+ <span class="cline-any cline-no">&nbsp;</span>
1816
+ <span class="cline-any cline-no">&nbsp;</span>
1817
+ <span class="cline-any cline-no">&nbsp;</span>
1818
+ <span class="cline-any cline-no">&nbsp;</span>
1819
+ <span class="cline-any cline-no">&nbsp;</span>
1820
+ <span class="cline-any cline-no">&nbsp;</span>
1821
+ <span class="cline-any cline-no">&nbsp;</span>
1822
+ <span class="cline-any cline-no">&nbsp;</span>
1823
+ <span class="cline-any cline-no">&nbsp;</span>
1824
+ <span class="cline-any cline-no">&nbsp;</span>
1825
+ <span class="cline-any cline-no">&nbsp;</span>
1826
+ <span class="cline-any cline-no">&nbsp;</span>
1827
+ <span class="cline-any cline-no">&nbsp;</span>
1828
+ <span class="cline-any cline-no">&nbsp;</span>
1829
+ <span class="cline-any cline-no">&nbsp;</span>
1830
+ <span class="cline-any cline-no">&nbsp;</span>
1831
+ <span class="cline-any cline-no">&nbsp;</span>
1832
+ <span class="cline-any cline-no">&nbsp;</span>
1833
+ <span class="cline-any cline-no">&nbsp;</span>
1834
+ <span class="cline-any cline-no">&nbsp;</span>
1835
+ <span class="cline-any cline-no">&nbsp;</span>
1836
+ <span class="cline-any cline-no">&nbsp;</span>
1837
+ <span class="cline-any cline-no">&nbsp;</span>
1838
+ <span class="cline-any cline-no">&nbsp;</span>
1839
+ <span class="cline-any cline-no">&nbsp;</span>
1840
+ <span class="cline-any cline-no">&nbsp;</span>
1841
+ <span class="cline-any cline-no">&nbsp;</span>
1842
+ <span class="cline-any cline-no">&nbsp;</span>
1843
+ <span class="cline-any cline-no">&nbsp;</span>
1844
+ <span class="cline-any cline-no">&nbsp;</span>
1845
+ <span class="cline-any cline-no">&nbsp;</span>
1846
+ <span class="cline-any cline-no">&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-no">&nbsp;</span>
1851
+ <span class="cline-any cline-no">&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-no">&nbsp;</span>
1855
+ <span class="cline-any cline-no">&nbsp;</span>
1856
+ <span class="cline-any cline-no">&nbsp;</span>
1857
+ <span class="cline-any cline-no">&nbsp;</span>
1858
+ <span class="cline-any cline-no">&nbsp;</span>
1859
+ <span class="cline-any cline-no">&nbsp;</span>
1860
+ <span class="cline-any cline-no">&nbsp;</span>
1861
+ <span class="cline-any cline-no">&nbsp;</span>
1862
+ <span class="cline-any cline-no">&nbsp;</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-no">&nbsp;</span>
1870
+ <span class="cline-any cline-no">&nbsp;</span>
1871
+ <span class="cline-any cline-no">&nbsp;</span>
1872
+ <span class="cline-any cline-no">&nbsp;</span>
1873
+ <span class="cline-any cline-no">&nbsp;</span>
1874
+ <span class="cline-any cline-no">&nbsp;</span>
1875
+ <span class="cline-any cline-no">&nbsp;</span>
1876
+ <span class="cline-any cline-no">&nbsp;</span>
1877
+ <span class="cline-any cline-no">&nbsp;</span>
1878
+ <span class="cline-any cline-no">&nbsp;</span>
1879
+ <span class="cline-any cline-no">&nbsp;</span>
1880
+ <span class="cline-any cline-no">&nbsp;</span>
1881
+ <span class="cline-any cline-no">&nbsp;</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-no">&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-no">&nbsp;</span>
1895
+ <span class="cline-any cline-no">&nbsp;</span>
1896
+ <span class="cline-any cline-no">&nbsp;</span>
1897
+ <span class="cline-any cline-no">&nbsp;</span>
1898
+ <span class="cline-any cline-no">&nbsp;</span>
1899
+ <span class="cline-any cline-no">&nbsp;</span>
1900
+ <span class="cline-any cline-no">&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-no">&nbsp;</span>
1905
+ <span class="cline-any cline-no">&nbsp;</span>
1906
+ <span class="cline-any cline-no">&nbsp;</span>
1907
+ <span class="cline-any cline-no">&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-no">&nbsp;</span>
1911
+ <span class="cline-any cline-no">&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-no">&nbsp;</span>
1916
+ <span class="cline-any cline-no">&nbsp;</span>
1917
+ <span class="cline-any cline-no">&nbsp;</span>
1918
+ <span class="cline-any cline-no">&nbsp;</span>
1919
+ <span class="cline-any cline-no">&nbsp;</span>
1920
+ <span class="cline-any cline-no">&nbsp;</span>
1921
+ <span class="cline-any cline-no">&nbsp;</span>
1922
+ <span class="cline-any cline-no">&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-no">&nbsp;</span>
1927
+ <span class="cline-any cline-no">&nbsp;</span>
1928
+ <span class="cline-any cline-no">&nbsp;</span>
1929
+ <span class="cline-any cline-no">&nbsp;</span>
1930
+ <span class="cline-any cline-no">&nbsp;</span>
1931
+ <span class="cline-any cline-no">&nbsp;</span>
1932
+ <span class="cline-any cline-no">&nbsp;</span>
1933
+ <span class="cline-any cline-no">&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-no">&nbsp;</span>
1937
+ <span class="cline-any cline-no">&nbsp;</span>
1938
+ <span class="cline-any cline-no">&nbsp;</span>
1939
+ <span class="cline-any cline-no">&nbsp;</span>
1940
+ <span class="cline-any cline-no">&nbsp;</span>
1941
+ <span class="cline-any cline-no">&nbsp;</span>
1942
+ <span class="cline-any cline-no">&nbsp;</span>
1943
+ <span class="cline-any cline-no">&nbsp;</span>
1944
+ <span class="cline-any cline-no">&nbsp;</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-no">&nbsp;</span>
1952
+ <span class="cline-any cline-no">&nbsp;</span>
1953
+ <span class="cline-any cline-no">&nbsp;</span>
1954
+ <span class="cline-any cline-no">&nbsp;</span>
1955
+ <span class="cline-any cline-no">&nbsp;</span>
1956
+ <span class="cline-any cline-no">&nbsp;</span>
1957
+ <span class="cline-any cline-no">&nbsp;</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-no">&nbsp;</span>
1961
+ <span class="cline-any cline-no">&nbsp;</span>
1962
+ <span class="cline-any cline-no">&nbsp;</span>
1963
+ <span class="cline-any cline-no">&nbsp;</span>
1964
+ <span class="cline-any cline-no">&nbsp;</span>
1965
+ <span class="cline-any cline-no">&nbsp;</span>
1966
+ <span class="cline-any cline-no">&nbsp;</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-no">&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-no">&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-no">&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-no">&nbsp;</span>
1987
+ <span class="cline-any cline-no">&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-no">&nbsp;</span>
1991
+ <span class="cline-any cline-no">&nbsp;</span>
1992
+ <span class="cline-any cline-no">&nbsp;</span>
1993
+ <span class="cline-any cline-no">&nbsp;</span>
1994
+ <span class="cline-any cline-no">&nbsp;</span>
1995
+ <span class="cline-any cline-no">&nbsp;</span>
1996
+ <span class="cline-any cline-no">&nbsp;</span>
1997
+ <span class="cline-any cline-no">&nbsp;</span>
1998
+ <span class="cline-any cline-no">&nbsp;</span>
1999
+ <span class="cline-any cline-no">&nbsp;</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-no">&nbsp;</span>
2004
+ <span class="cline-any cline-no">&nbsp;</span>
2005
+ <span class="cline-any cline-no">&nbsp;</span>
2006
+ <span class="cline-any cline-no">&nbsp;</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-no">&nbsp;</span>
2011
+ <span class="cline-any cline-no">&nbsp;</span>
2012
+ <span class="cline-any cline-no">&nbsp;</span>
2013
+ <span class="cline-any cline-no">&nbsp;</span>
2014
+ <span class="cline-any cline-no">&nbsp;</span>
2015
+ <span class="cline-any cline-no">&nbsp;</span>
2016
+ <span class="cline-any cline-no">&nbsp;</span>
2017
+ <span class="cline-any cline-no">&nbsp;</span>
2018
+ <span class="cline-any cline-no">&nbsp;</span>
2019
+ <span class="cline-any cline-no">&nbsp;</span>
2020
+ <span class="cline-any cline-no">&nbsp;</span>
2021
+ <span class="cline-any cline-no">&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-no">&nbsp;</span>
2027
+ <span class="cline-any cline-no">&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-no">&nbsp;</span>
2037
+ <span class="cline-any cline-no">&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-no">&nbsp;</span>
2041
+ <span class="cline-any cline-no">&nbsp;</span>
2042
+ <span class="cline-any cline-no">&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-no">&nbsp;</span>
2055
+ <span class="cline-any cline-no">&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-no">&nbsp;</span>
2059
+ <span class="cline-any cline-no">&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-no">&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-no">&nbsp;</span>
2071
+ <span class="cline-any cline-no">&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-no">&nbsp;</span>
2075
+ <span class="cline-any cline-no">&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-no">&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-no">&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-no">&nbsp;</span>
2091
+ <span class="cline-any cline-no">&nbsp;</span>
2092
+ <span class="cline-any cline-no">&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-no">&nbsp;</span>
2096
+ <span class="cline-any cline-no">&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-no">&nbsp;</span>
2108
+ <span class="cline-any cline-no">&nbsp;</span>
2109
+ <span class="cline-any cline-no">&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-no">&nbsp;</span>
2113
+ <span class="cline-any cline-no">&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-no">&nbsp;</span>
2123
+ <span class="cline-any cline-no">&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-no">&nbsp;</span>
2127
+ <span class="cline-any cline-no">&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-no">&nbsp;</span>
2138
+ <span class="cline-any cline-no">&nbsp;</span>
2139
+ <span class="cline-any cline-no">&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-no">&nbsp;</span>
2143
+ <span class="cline-any cline-no">&nbsp;</span>
2144
+ <span class="cline-any cline-no">&nbsp;</span>
2145
+ <span class="cline-any cline-no">&nbsp;</span>
2146
+ <span class="cline-any cline-no">&nbsp;</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-no">&nbsp;</span>
2150
+ <span class="cline-any cline-no">&nbsp;</span>
2151
+ <span class="cline-any cline-no">&nbsp;</span>
2152
+ <span class="cline-any cline-no">&nbsp;</span>
2153
+ <span class="cline-any cline-no">&nbsp;</span>
2154
+ <span class="cline-any cline-no">&nbsp;</span>
2155
+ <span class="cline-any cline-no">&nbsp;</span>
2156
+ <span class="cline-any cline-no">&nbsp;</span>
2157
+ <span class="cline-any cline-no">&nbsp;</span>
2158
+ <span class="cline-any cline-no">&nbsp;</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-no">&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-no">&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-no">&nbsp;</span>
2174
+ <span class="cline-any cline-no">&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-no">&nbsp;</span>
2178
+ <span class="cline-any cline-no">&nbsp;</span>
2179
+ <span class="cline-any cline-no">&nbsp;</span>
2180
+ <span class="cline-any cline-no">&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-no">&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-no">&nbsp;</span>
2187
+ <span class="cline-any cline-no">&nbsp;</span>
2188
+ <span class="cline-any cline-no">&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-no">&nbsp;</span>
2192
+ <span class="cline-any cline-no">&nbsp;</span>
2193
+ <span class="cline-any cline-no">&nbsp;</span>
2194
+ <span class="cline-any cline-no">&nbsp;</span>
2195
+ <span class="cline-any cline-no">&nbsp;</span>
2196
+ <span class="cline-any cline-no">&nbsp;</span>
2197
+ <span class="cline-any cline-no">&nbsp;</span>
2198
+ <span class="cline-any cline-no">&nbsp;</span>
2199
+ <span class="cline-any cline-no">&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-no">&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-no">&nbsp;</span>
2214
+ <span class="cline-any cline-no">&nbsp;</span>
2215
+ <span class="cline-any cline-no">&nbsp;</span>
2216
+ <span class="cline-any cline-no">&nbsp;</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-no">&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-no">&nbsp;</span>
2229
+ <span class="cline-any cline-no">&nbsp;</span>
2230
+ <span class="cline-any cline-no">&nbsp;</span>
2231
+ <span class="cline-any cline-no">&nbsp;</span>
2232
+ <span class="cline-any cline-no">&nbsp;</span>
2233
+ <span class="cline-any cline-no">&nbsp;</span>
2234
+ <span class="cline-any cline-no">&nbsp;</span>
2235
+ <span class="cline-any cline-no">&nbsp;</span>
2236
+ <span class="cline-any cline-no">&nbsp;</span>
2237
+ <span class="cline-any cline-no">&nbsp;</span>
2238
+ <span class="cline-any cline-no">&nbsp;</span>
2239
+ <span class="cline-any cline-no">&nbsp;</span>
2240
+ <span class="cline-any cline-no">&nbsp;</span>
2241
+ <span class="cline-any cline-no">&nbsp;</span>
2242
+ <span class="cline-any cline-no">&nbsp;</span>
2243
+ <span class="cline-any cline-no">&nbsp;</span>
2244
+ <span class="cline-any cline-no">&nbsp;</span>
2245
+ <span class="cline-any cline-no">&nbsp;</span>
2246
+ <span class="cline-any cline-no">&nbsp;</span>
2247
+ <span class="cline-any cline-no">&nbsp;</span>
2248
+ <span class="cline-any cline-no">&nbsp;</span>
2249
+ <span class="cline-any cline-no">&nbsp;</span>
2250
+ <span class="cline-any cline-no">&nbsp;</span>
2251
+ <span class="cline-any cline-no">&nbsp;</span>
2252
+ <span class="cline-any cline-no">&nbsp;</span>
2253
+ <span class="cline-any cline-no">&nbsp;</span>
2254
+ <span class="cline-any cline-no">&nbsp;</span>
2255
+ <span class="cline-any cline-no">&nbsp;</span>
2256
+ <span class="cline-any cline-no">&nbsp;</span>
2257
+ <span class="cline-any cline-no">&nbsp;</span>
2258
+ <span class="cline-any cline-no">&nbsp;</span>
2259
+ <span class="cline-any cline-no">&nbsp;</span>
2260
+ <span class="cline-any cline-no">&nbsp;</span>
2261
+ <span class="cline-any cline-no">&nbsp;</span>
2262
+ <span class="cline-any cline-no">&nbsp;</span>
2263
+ <span class="cline-any cline-no">&nbsp;</span>
2264
+ <span class="cline-any cline-no">&nbsp;</span>
2265
+ <span class="cline-any cline-no">&nbsp;</span>
2266
+ <span class="cline-any cline-no">&nbsp;</span>
2267
+ <span class="cline-any cline-no">&nbsp;</span>
2268
+ <span class="cline-any cline-no">&nbsp;</span>
2269
+ <span class="cline-any cline-no">&nbsp;</span>
2270
+ <span class="cline-any cline-no">&nbsp;</span>
2271
+ <span class="cline-any cline-no">&nbsp;</span>
2272
+ <span class="cline-any cline-no">&nbsp;</span>
2273
+ <span class="cline-any cline-no">&nbsp;</span>
2274
+ <span class="cline-any cline-no">&nbsp;</span>
2275
+ <span class="cline-any cline-no">&nbsp;</span>
2276
+ <span class="cline-any cline-no">&nbsp;</span>
2277
+ <span class="cline-any cline-no">&nbsp;</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-no">&nbsp;</span>
2284
+ <span class="cline-any cline-no">&nbsp;</span>
2285
+ <span class="cline-any cline-no">&nbsp;</span>
2286
+ <span class="cline-any cline-no">&nbsp;</span>
2287
+ <span class="cline-any cline-no">&nbsp;</span>
2288
+ <span class="cline-any cline-no">&nbsp;</span>
2289
+ <span class="cline-any cline-no">&nbsp;</span>
2290
+ <span class="cline-any cline-no">&nbsp;</span>
2291
+ <span class="cline-any cline-no">&nbsp;</span>
2292
+ <span class="cline-any cline-no">&nbsp;</span>
2293
+ <span class="cline-any cline-no">&nbsp;</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-no">&nbsp;</span>
2300
+ <span class="cline-any cline-no">&nbsp;</span>
2301
+ <span class="cline-any cline-no">&nbsp;</span>
2302
+ <span class="cline-any cline-no">&nbsp;</span>
2303
+ <span class="cline-any cline-no">&nbsp;</span>
2304
+ <span class="cline-any cline-no">&nbsp;</span>
2305
+ <span class="cline-any cline-no">&nbsp;</span>
2306
+ <span class="cline-any cline-no">&nbsp;</span>
2307
+ <span class="cline-any cline-no">&nbsp;</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-no">&nbsp;</span>
2311
+ <span class="cline-any cline-no">&nbsp;</span>
2312
+ <span class="cline-any cline-no">&nbsp;</span>
2313
+ <span class="cline-any cline-no">&nbsp;</span>
2314
+ <span class="cline-any cline-no">&nbsp;</span>
2315
+ <span class="cline-any cline-no">&nbsp;</span>
2316
+ <span class="cline-any cline-no">&nbsp;</span>
2317
+ <span class="cline-any cline-no">&nbsp;</span>
2318
+ <span class="cline-any cline-no">&nbsp;</span>
2319
+ <span class="cline-any cline-no">&nbsp;</span>
2320
+ <span class="cline-any cline-no">&nbsp;</span>
2321
+ <span class="cline-any cline-no">&nbsp;</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-no">&nbsp;</span>
2326
+ <span class="cline-any cline-no">&nbsp;</span>
2327
+ <span class="cline-any cline-no">&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-no">&nbsp;</span>
2331
+ <span class="cline-any cline-no">&nbsp;</span>
2332
+ <span class="cline-any cline-no">&nbsp;</span>
2333
+ <span class="cline-any cline-no">&nbsp;</span>
2334
+ <span class="cline-any cline-no">&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-no">&nbsp;</span>
2338
+ <span class="cline-any cline-no">&nbsp;</span>
2339
+ <span class="cline-any cline-no">&nbsp;</span>
2340
+ <span class="cline-any cline-no">&nbsp;</span>
2341
+ <span class="cline-any cline-no">&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-no">&nbsp;</span>
2347
+ <span class="cline-any cline-no">&nbsp;</span>
2348
+ <span class="cline-any cline-no">&nbsp;</span>
2349
+ <span class="cline-any cline-no">&nbsp;</span>
2350
+ <span class="cline-any cline-no">&nbsp;</span>
2351
+ <span class="cline-any cline-no">&nbsp;</span>
2352
+ <span class="cline-any cline-no">&nbsp;</span>
2353
+ <span class="cline-any cline-no">&nbsp;</span>
2354
+ <span class="cline-any cline-no">&nbsp;</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-no">&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-no">&nbsp;</span>
2362
+ <span class="cline-any cline-no">&nbsp;</span>
2363
+ <span class="cline-any cline-no">&nbsp;</span>
2364
+ <span class="cline-any cline-no">&nbsp;</span>
2365
+ <span class="cline-any cline-no">&nbsp;</span>
2366
+ <span class="cline-any cline-no">&nbsp;</span>
2367
+ <span class="cline-any cline-no">&nbsp;</span>
2368
+ <span class="cline-any cline-no">&nbsp;</span>
2369
+ <span class="cline-any cline-no">&nbsp;</span>
2370
+ <span class="cline-any cline-no">&nbsp;</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-no">&nbsp;</span>
2375
+ <span class="cline-any cline-no">&nbsp;</span>
2376
+ <span class="cline-any cline-no">&nbsp;</span>
2377
+ <span class="cline-any cline-no">&nbsp;</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-no">&nbsp;</span>
2381
+ <span class="cline-any cline-no">&nbsp;</span>
2382
+ <span class="cline-any cline-no">&nbsp;</span>
2383
+ <span class="cline-any cline-no">&nbsp;</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-no">&nbsp;</span>
2388
+ <span class="cline-any cline-no">&nbsp;</span>
2389
+ <span class="cline-any cline-no">&nbsp;</span>
2390
+ <span class="cline-any cline-no">&nbsp;</span>
2391
+ <span class="cline-any cline-no">&nbsp;</span>
2392
+ <span class="cline-any cline-no">&nbsp;</span>
2393
+ <span class="cline-any cline-no">&nbsp;</span>
2394
+ <span class="cline-any cline-no">&nbsp;</span>
2395
+ <span class="cline-any cline-no">&nbsp;</span>
2396
+ <span class="cline-any cline-no">&nbsp;</span>
2397
+ <span class="cline-any cline-no">&nbsp;</span>
2398
+ <span class="cline-any cline-no">&nbsp;</span>
2399
+ <span class="cline-any cline-no">&nbsp;</span>
2400
+ <span class="cline-any cline-no">&nbsp;</span>
2401
+ <span class="cline-any cline-no">&nbsp;</span>
2402
+ <span class="cline-any cline-no">&nbsp;</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-no">&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-no">&nbsp;</span>
2414
+ <span class="cline-any cline-no">&nbsp;</span>
2415
+ <span class="cline-any cline-no">&nbsp;</span>
2416
+ <span class="cline-any cline-no">&nbsp;</span>
2417
+ <span class="cline-any cline-no">&nbsp;</span>
2418
+ <span class="cline-any cline-no">&nbsp;</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-no">&nbsp;</span>
2425
+ <span class="cline-any cline-no">&nbsp;</span>
2426
+ <span class="cline-any cline-no">&nbsp;</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-no">&nbsp;</span>
2430
+ <span class="cline-any cline-no">&nbsp;</span>
2431
+ <span class="cline-any cline-no">&nbsp;</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-no">&nbsp;</span>
2437
+ <span class="cline-any cline-no">&nbsp;</span>
2438
+ <span class="cline-any cline-no">&nbsp;</span>
2439
+ <span class="cline-any cline-no">&nbsp;</span>
2440
+ <span class="cline-any cline-no">&nbsp;</span>
2441
+ <span class="cline-any cline-no">&nbsp;</span>
2442
+ <span class="cline-any cline-no">&nbsp;</span>
2443
+ <span class="cline-any cline-no">&nbsp;</span>
2444
+ <span class="cline-any cline-no">&nbsp;</span>
2445
+ <span class="cline-any cline-no">&nbsp;</span>
2446
+ <span class="cline-any cline-no">&nbsp;</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-no">&nbsp;</span>
2452
+ <span class="cline-any cline-no">&nbsp;</span>
2453
+ <span class="cline-any cline-no">&nbsp;</span>
2454
+ <span class="cline-any cline-no">&nbsp;</span>
2455
+ <span class="cline-any cline-no">&nbsp;</span>
2456
+ <span class="cline-any cline-no">&nbsp;</span>
2457
+ <span class="cline-any cline-no">&nbsp;</span>
2458
+ <span class="cline-any cline-no">&nbsp;</span>
2459
+ <span class="cline-any cline-no">&nbsp;</span>
2460
+ <span class="cline-any cline-no">&nbsp;</span>
2461
+ <span class="cline-any cline-no">&nbsp;</span>
2462
+ <span class="cline-any cline-no">&nbsp;</span>
2463
+ <span class="cline-any cline-no">&nbsp;</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-no">&nbsp;</span>
2468
+ <span class="cline-any cline-no">&nbsp;</span>
2469
+ <span class="cline-any cline-no">&nbsp;</span>
2470
+ <span class="cline-any cline-no">&nbsp;</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-no">&nbsp;</span>
2478
+ <span class="cline-any cline-no">&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-no">&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-no">&nbsp;</span>
2485
+ <span class="cline-any cline-no">&nbsp;</span>
2486
+ <span class="cline-any cline-no">&nbsp;</span>
2487
+ <span class="cline-any cline-no">&nbsp;</span>
2488
+ <span class="cline-any cline-no">&nbsp;</span>
2489
+ <span class="cline-any cline-no">&nbsp;</span>
2490
+ <span class="cline-any cline-no">&nbsp;</span>
2491
+ <span class="cline-any cline-no">&nbsp;</span>
2492
+ <span class="cline-any cline-no">&nbsp;</span>
2493
+ <span class="cline-any cline-no">&nbsp;</span>
2494
+ <span class="cline-any cline-no">&nbsp;</span>
2495
+ <span class="cline-any cline-no">&nbsp;</span>
2496
+ <span class="cline-any cline-no">&nbsp;</span>
2497
+ <span class="cline-any cline-no">&nbsp;</span>
2498
+ <span class="cline-any cline-no">&nbsp;</span>
2499
+ <span class="cline-any cline-no">&nbsp;</span>
2500
+ <span class="cline-any cline-no">&nbsp;</span>
2501
+ <span class="cline-any cline-no">&nbsp;</span>
2502
+ <span class="cline-any cline-no">&nbsp;</span>
2503
+ <span class="cline-any cline-no">&nbsp;</span>
2504
+ <span class="cline-any cline-no">&nbsp;</span>
2505
+ <span class="cline-any cline-no">&nbsp;</span>
2506
+ <span class="cline-any cline-no">&nbsp;</span>
2507
+ <span class="cline-any cline-no">&nbsp;</span>
2508
+ <span class="cline-any cline-no">&nbsp;</span>
2509
+ <span class="cline-any cline-no">&nbsp;</span>
2510
+ <span class="cline-any cline-no">&nbsp;</span>
2511
+ <span class="cline-any cline-no">&nbsp;</span>
2512
+ <span class="cline-any cline-no">&nbsp;</span>
2513
+ <span class="cline-any cline-no">&nbsp;</span>
2514
+ <span class="cline-any cline-no">&nbsp;</span>
2515
+ <span class="cline-any cline-no">&nbsp;</span>
2516
+ <span class="cline-any cline-no">&nbsp;</span>
2517
+ <span class="cline-any cline-no">&nbsp;</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-no">&nbsp;</span>
2524
+ <span class="cline-any cline-no">&nbsp;</span>
2525
+ <span class="cline-any cline-no">&nbsp;</span>
2526
+ <span class="cline-any cline-no">&nbsp;</span>
2527
+ <span class="cline-any cline-no">&nbsp;</span>
2528
+ <span class="cline-any cline-no">&nbsp;</span>
2529
+ <span class="cline-any cline-no">&nbsp;</span>
2530
+ <span class="cline-any cline-no">&nbsp;</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-no">&nbsp;</span>
2536
+ <span class="cline-any cline-no">&nbsp;</span>
2537
+ <span class="cline-any cline-no">&nbsp;</span>
2538
+ <span class="cline-any cline-no">&nbsp;</span>
2539
+ <span class="cline-any cline-no">&nbsp;</span>
2540
+ <span class="cline-any cline-no">&nbsp;</span>
2541
+ <span class="cline-any cline-no">&nbsp;</span>
2542
+ <span class="cline-any cline-no">&nbsp;</span>
2543
+ <span class="cline-any cline-no">&nbsp;</span>
2544
+ <span class="cline-any cline-no">&nbsp;</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-no">&nbsp;</span>
2548
+ <span class="cline-any cline-no">&nbsp;</span>
2549
+ <span class="cline-any cline-no">&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-no">&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-no">&nbsp;</span>
2556
+ <span class="cline-any cline-no">&nbsp;</span>
2557
+ <span class="cline-any cline-no">&nbsp;</span>
2558
+ <span class="cline-any cline-no">&nbsp;</span>
2559
+ <span class="cline-any cline-no">&nbsp;</span>
2560
+ <span class="cline-any cline-no">&nbsp;</span>
2561
+ <span class="cline-any cline-no">&nbsp;</span>
2562
+ <span class="cline-any cline-no">&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-no">&nbsp;</span>
2567
+ <span class="cline-any cline-no">&nbsp;</span>
2568
+ <span class="cline-any cline-no">&nbsp;</span>
2569
+ <span class="cline-any cline-no">&nbsp;</span>
2570
+ <span class="cline-any cline-no">&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-no">&nbsp;</span>
2574
+ <span class="cline-any cline-no">&nbsp;</span>
2575
+ <span class="cline-any cline-no">&nbsp;</span>
2576
+ <span class="cline-any cline-no">&nbsp;</span>
2577
+ <span class="cline-any cline-no">&nbsp;</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-no">&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-no">&nbsp;</span>
2585
+ <span class="cline-any cline-no">&nbsp;</span>
2586
+ <span class="cline-any cline-no">&nbsp;</span>
2587
+ <span class="cline-any cline-no">&nbsp;</span>
2588
+ <span class="cline-any cline-no">&nbsp;</span>
2589
+ <span class="cline-any cline-no">&nbsp;</span>
2590
+ <span class="cline-any cline-no">&nbsp;</span>
2591
+ <span class="cline-any cline-no">&nbsp;</span>
2592
+ <span class="cline-any cline-no">&nbsp;</span>
2593
+ <span class="cline-any cline-no">&nbsp;</span>
2594
+ <span class="cline-any cline-no">&nbsp;</span>
2595
+ <span class="cline-any cline-no">&nbsp;</span>
2596
+ <span class="cline-any cline-no">&nbsp;</span>
2597
+ <span class="cline-any cline-no">&nbsp;</span>
2598
+ <span class="cline-any cline-no">&nbsp;</span>
2599
+ <span class="cline-any cline-no">&nbsp;</span>
2600
+ <span class="cline-any cline-no">&nbsp;</span>
2601
+ <span class="cline-any cline-no">&nbsp;</span>
2602
+ <span class="cline-any cline-no">&nbsp;</span>
2603
+ <span class="cline-any cline-no">&nbsp;</span>
2604
+ <span class="cline-any cline-no">&nbsp;</span>
2605
+ <span class="cline-any cline-no">&nbsp;</span>
2606
+ <span class="cline-any cline-no">&nbsp;</span>
2607
+ <span class="cline-any cline-no">&nbsp;</span>
2608
+ <span class="cline-any cline-no">&nbsp;</span>
2609
+ <span class="cline-any cline-no">&nbsp;</span>
2610
+ <span class="cline-any cline-no">&nbsp;</span>
2611
+ <span class="cline-any cline-no">&nbsp;</span>
2612
+ <span class="cline-any cline-no">&nbsp;</span>
2613
+ <span class="cline-any cline-no">&nbsp;</span>
2614
+ <span class="cline-any cline-no">&nbsp;</span>
2615
+ <span class="cline-any cline-no">&nbsp;</span>
2616
+ <span class="cline-any cline-no">&nbsp;</span>
2617
+ <span class="cline-any cline-no">&nbsp;</span>
2618
+ <span class="cline-any cline-no">&nbsp;</span>
2619
+ <span class="cline-any cline-no">&nbsp;</span>
2620
+ <span class="cline-any cline-no">&nbsp;</span>
2621
+ <span class="cline-any cline-no">&nbsp;</span>
2622
+ <span class="cline-any cline-no">&nbsp;</span>
2623
+ <span class="cline-any cline-no">&nbsp;</span>
2624
+ <span class="cline-any cline-no">&nbsp;</span>
2625
+ <span class="cline-any cline-no">&nbsp;</span>
2626
+ <span class="cline-any cline-no">&nbsp;</span>
2627
+ <span class="cline-any cline-no">&nbsp;</span>
2628
+ <span class="cline-any cline-no">&nbsp;</span>
2629
+ <span class="cline-any cline-no">&nbsp;</span>
2630
+ <span class="cline-any cline-no">&nbsp;</span>
2631
+ <span class="cline-any cline-no">&nbsp;</span>
2632
+ <span class="cline-any cline-no">&nbsp;</span>
2633
+ <span class="cline-any cline-no">&nbsp;</span>
2634
+ <span class="cline-any cline-no">&nbsp;</span>
2635
+ <span class="cline-any cline-no">&nbsp;</span>
2636
+ <span class="cline-any cline-no">&nbsp;</span>
2637
+ <span class="cline-any cline-no">&nbsp;</span>
2638
+ <span class="cline-any cline-no">&nbsp;</span>
2639
+ <span class="cline-any cline-no">&nbsp;</span>
2640
+ <span class="cline-any cline-no">&nbsp;</span>
2641
+ <span class="cline-any cline-no">&nbsp;</span>
2642
+ <span class="cline-any cline-no">&nbsp;</span>
2643
+ <span class="cline-any cline-no">&nbsp;</span>
2644
+ <span class="cline-any cline-no">&nbsp;</span>
2645
+ <span class="cline-any cline-no">&nbsp;</span>
2646
+ <span class="cline-any cline-no">&nbsp;</span>
2647
+ <span class="cline-any cline-no">&nbsp;</span>
2648
+ <span class="cline-any cline-no">&nbsp;</span>
2649
+ <span class="cline-any cline-no">&nbsp;</span>
2650
+ <span class="cline-any cline-no">&nbsp;</span>
2651
+ <span class="cline-any cline-no">&nbsp;</span>
2652
+ <span class="cline-any cline-no">&nbsp;</span>
2653
+ <span class="cline-any cline-no">&nbsp;</span>
2654
+ <span class="cline-any cline-no">&nbsp;</span>
2655
+ <span class="cline-any cline-no">&nbsp;</span>
2656
+ <span class="cline-any cline-no">&nbsp;</span>
2657
+ <span class="cline-any cline-no">&nbsp;</span>
2658
+ <span class="cline-any cline-no">&nbsp;</span>
2659
+ <span class="cline-any cline-no">&nbsp;</span>
2660
+ <span class="cline-any cline-no">&nbsp;</span>
2661
+ <span class="cline-any cline-no">&nbsp;</span>
2662
+ <span class="cline-any cline-no">&nbsp;</span>
2663
+ <span class="cline-any cline-no">&nbsp;</span>
2664
+ <span class="cline-any cline-no">&nbsp;</span>
2665
+ <span class="cline-any cline-no">&nbsp;</span>
2666
+ <span class="cline-any cline-no">&nbsp;</span>
2667
+ <span class="cline-any cline-no">&nbsp;</span>
2668
+ <span class="cline-any cline-no">&nbsp;</span>
2669
+ <span class="cline-any cline-no">&nbsp;</span>
2670
+ <span class="cline-any cline-no">&nbsp;</span>
2671
+ <span class="cline-any cline-no">&nbsp;</span>
2672
+ <span class="cline-any cline-no">&nbsp;</span>
2673
+ <span class="cline-any cline-no">&nbsp;</span>
2674
+ <span class="cline-any cline-no">&nbsp;</span>
2675
+ <span class="cline-any cline-no">&nbsp;</span>
2676
+ <span class="cline-any cline-no">&nbsp;</span>
2677
+ <span class="cline-any cline-no">&nbsp;</span>
2678
+ <span class="cline-any cline-no">&nbsp;</span>
2679
+ <span class="cline-any cline-no">&nbsp;</span>
2680
+ <span class="cline-any cline-no">&nbsp;</span>
2681
+ <span class="cline-any cline-no">&nbsp;</span>
2682
+ <span class="cline-any cline-no">&nbsp;</span>
2683
+ <span class="cline-any cline-no">&nbsp;</span>
2684
+ <span class="cline-any cline-no">&nbsp;</span>
2685
+ <span class="cline-any cline-no">&nbsp;</span>
2686
+ <span class="cline-any cline-no">&nbsp;</span>
2687
+ <span class="cline-any cline-no">&nbsp;</span>
2688
+ <span class="cline-any cline-no">&nbsp;</span>
2689
+ <span class="cline-any cline-no">&nbsp;</span>
2690
+ <span class="cline-any cline-no">&nbsp;</span>
2691
+ <span class="cline-any cline-no">&nbsp;</span>
2692
+ <span class="cline-any cline-no">&nbsp;</span>
2693
+ <span class="cline-any cline-no">&nbsp;</span>
2694
+ <span class="cline-any cline-no">&nbsp;</span>
2695
+ <span class="cline-any cline-no">&nbsp;</span>
2696
+ <span class="cline-any cline-no">&nbsp;</span>
2697
+ <span class="cline-any cline-no">&nbsp;</span>
2698
+ <span class="cline-any cline-no">&nbsp;</span>
2699
+ <span class="cline-any cline-no">&nbsp;</span>
2700
+ <span class="cline-any cline-no">&nbsp;</span>
2701
+ <span class="cline-any cline-no">&nbsp;</span>
2702
+ <span class="cline-any cline-no">&nbsp;</span>
2703
+ <span class="cline-any cline-no">&nbsp;</span>
2704
+ <span class="cline-any cline-no">&nbsp;</span>
2705
+ <span class="cline-any cline-no">&nbsp;</span>
2706
+ <span class="cline-any cline-no">&nbsp;</span>
2707
+ <span class="cline-any cline-no">&nbsp;</span>
2708
+ <span class="cline-any cline-no">&nbsp;</span>
2709
+ <span class="cline-any cline-no">&nbsp;</span>
2710
+ <span class="cline-any cline-no">&nbsp;</span>
2711
+ <span class="cline-any cline-no">&nbsp;</span>
2712
+ <span class="cline-any cline-no">&nbsp;</span>
2713
+ <span class="cline-any cline-no">&nbsp;</span>
2714
+ <span class="cline-any cline-no">&nbsp;</span>
2715
+ <span class="cline-any cline-no">&nbsp;</span>
2716
+ <span class="cline-any cline-no">&nbsp;</span>
2717
+ <span class="cline-any cline-no">&nbsp;</span>
2718
+ <span class="cline-any cline-no">&nbsp;</span>
2719
+ <span class="cline-any cline-no">&nbsp;</span>
2720
+ <span class="cline-any cline-no">&nbsp;</span>
2721
+ <span class="cline-any cline-no">&nbsp;</span>
2722
+ <span class="cline-any cline-no">&nbsp;</span>
2723
+ <span class="cline-any cline-no">&nbsp;</span>
2724
+ <span class="cline-any cline-no">&nbsp;</span>
2725
+ <span class="cline-any cline-no">&nbsp;</span>
2726
+ <span class="cline-any cline-no">&nbsp;</span>
2727
+ <span class="cline-any cline-no">&nbsp;</span>
2728
+ <span class="cline-any cline-no">&nbsp;</span>
2729
+ <span class="cline-any cline-no">&nbsp;</span>
2730
+ <span class="cline-any cline-no">&nbsp;</span>
2731
+ <span class="cline-any cline-no">&nbsp;</span>
2732
+ <span class="cline-any cline-no">&nbsp;</span>
2733
+ <span class="cline-any cline-no">&nbsp;</span>
2734
+ <span class="cline-any cline-no">&nbsp;</span>
2735
+ <span class="cline-any cline-no">&nbsp;</span>
2736
+ <span class="cline-any cline-no">&nbsp;</span>
2737
+ <span class="cline-any cline-no">&nbsp;</span>
2738
+ <span class="cline-any cline-no">&nbsp;</span>
2739
+ <span class="cline-any cline-no">&nbsp;</span>
2740
+ <span class="cline-any cline-no">&nbsp;</span>
2741
+ <span class="cline-any cline-no">&nbsp;</span>
2742
+ <span class="cline-any cline-no">&nbsp;</span>
2743
+ <span class="cline-any cline-no">&nbsp;</span>
2744
+ <span class="cline-any cline-no">&nbsp;</span>
2745
+ <span class="cline-any cline-no">&nbsp;</span>
2746
+ <span class="cline-any cline-no">&nbsp;</span>
2747
+ <span class="cline-any cline-no">&nbsp;</span>
2748
+ <span class="cline-any cline-no">&nbsp;</span>
2749
+ <span class="cline-any cline-no">&nbsp;</span>
2750
+ <span class="cline-any cline-no">&nbsp;</span>
2751
+ <span class="cline-any cline-no">&nbsp;</span>
2752
+ <span class="cline-any cline-no">&nbsp;</span>
2753
+ <span class="cline-any cline-no">&nbsp;</span>
2754
+ <span class="cline-any cline-no">&nbsp;</span>
2755
+ <span class="cline-any cline-no">&nbsp;</span>
2756
+ <span class="cline-any cline-no">&nbsp;</span>
2757
+ <span class="cline-any cline-no">&nbsp;</span>
2758
+ <span class="cline-any cline-no">&nbsp;</span>
2759
+ <span class="cline-any cline-no">&nbsp;</span>
2760
+ <span class="cline-any cline-no">&nbsp;</span>
2761
+ <span class="cline-any cline-no">&nbsp;</span>
2762
+ <span class="cline-any cline-no">&nbsp;</span>
2763
+ <span class="cline-any cline-no">&nbsp;</span>
2764
+ <span class="cline-any cline-no">&nbsp;</span>
2765
+ <span class="cline-any cline-no">&nbsp;</span>
2766
+ <span class="cline-any cline-no">&nbsp;</span>
2767
+ <span class="cline-any cline-no">&nbsp;</span>
2768
+ <span class="cline-any cline-no">&nbsp;</span>
2769
+ <span class="cline-any cline-no">&nbsp;</span>
2770
+ <span class="cline-any cline-no">&nbsp;</span>
2771
+ <span class="cline-any cline-no">&nbsp;</span>
2772
+ <span class="cline-any cline-no">&nbsp;</span>
2773
+ <span class="cline-any cline-no">&nbsp;</span>
2774
+ <span class="cline-any cline-no">&nbsp;</span>
2775
+ <span class="cline-any cline-no">&nbsp;</span>
2776
+ <span class="cline-any cline-no">&nbsp;</span>
2777
+ <span class="cline-any cline-no">&nbsp;</span>
2778
+ <span class="cline-any cline-no">&nbsp;</span>
2779
+ <span class="cline-any cline-no">&nbsp;</span>
2780
+ <span class="cline-any cline-no">&nbsp;</span>
2781
+ <span class="cline-any cline-no">&nbsp;</span>
2782
+ <span class="cline-any cline-no">&nbsp;</span>
2783
+ <span class="cline-any cline-no">&nbsp;</span>
2784
+ <span class="cline-any cline-no">&nbsp;</span>
2785
+ <span class="cline-any cline-no">&nbsp;</span>
2786
+ <span class="cline-any cline-no">&nbsp;</span>
2787
+ <span class="cline-any cline-no">&nbsp;</span>
2788
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js"><span class="cstat-no" title="statement not covered" >import { BigNumber } from "bignumber.js";<span class="fstat-no" title="function not covered" ><span class="branch-0 cbranch-no" title="branch not covered" ></span></span></span>
2789
+ <span class="cstat-no" title="statement not covered" >import React, { useEffect, useState } from "react";</span>
2790
+ <span class="cstat-no" title="statement not covered" >import PropTypes from "prop-types";</span>
2791
+ <span class="cstat-no" title="statement not covered" ></span>
2792
+ <span class="cstat-no" title="statement not covered" >import s from "./swap-form.module.scss";</span>
2793
+ <span class="cstat-no" title="statement not covered" ></span>
2794
+ <span class="cstat-no" title="statement not covered" >import { useReferredState } from "../../../hooks/useReferredState.js";</span>
2795
+ <span class="cstat-no" title="statement not covered" >import { useCallHandlingErrors } from "../../../hooks/useCallHandlingErrors.js";</span>
2796
+ <span class="cstat-no" title="statement not covered" ></span>
2797
+ <span class="cstat-no" title="statement not covered" >import { AmountUtils } from "../../../../common-apis/amountUtils.js";</span>
2798
+ <span class="cstat-no" title="statement not covered" >import { TitleBox } from "../../atoms/TitleBox/TitleBox.jsx";</span>
2799
+ <span class="cstat-no" title="statement not covered" >import { AmountInput } from "../../molecules/AmountInput/AmountInput.jsx";</span>
2800
+ <span class="cstat-no" title="statement not covered" >import { Validation } from "../../atoms/Validation/Validation.jsx";</span>
2801
+ <span class="cstat-no" title="statement not covered" >import { Button } from "../../atoms/buttons/Button/Button.jsx";</span>
2802
+ <span class="cstat-no" title="statement not covered" >import { Textarea } from "../../atoms/Textarea/Textarea.jsx";</span>
2803
+ <span class="cstat-no" title="statement not covered" >import { RateSelector } from "../../atoms/RateSelector/RateSelector.jsx";</span>
2804
+ <span class="cstat-no" title="statement not covered" >import { TOOLTIP_POSITIONS } from "../../atoms/Tooltip/Tooltip.jsx";</span>
2805
+ <span class="cstat-no" title="statement not covered" >import { useIsHydrated } from "../../../hooks/useIsHydrated.js";</span>
2806
+ <span class="cstat-no" title="statement not covered" ></span>
2807
+ <span class="cstat-no" title="statement not covered" >/**</span>
2808
+ <span class="cstat-no" title="statement not covered" > * This is the type definition of a function used inside SwapForm to compose the URL for the hero button.</span>
2809
+ <span class="cstat-no" title="statement not covered" > *</span>
2810
+ <span class="cstat-no" title="statement not covered" > * @function</span>
2811
+ <span class="cstat-no" title="statement not covered" > * @name composeConfirmButtonTo</span>
2812
+ <span class="cstat-no" title="statement not covered" > * @param {string} [fromTicker] - Ticker symbol of the asset being sent.</span>
2813
+ <span class="cstat-no" title="statement not covered" > * @param {string} [toTicker] - Ticker symbol of the asset being received.</span>
2814
+ <span class="cstat-no" title="statement not covered" > * @param {string} [fromAmount] - Amount of the asset being sent.</span>
2815
+ <span class="cstat-no" title="statement not covered" > * @return {string} Full URL or relative URL that can be used for &lt;a href="..." /&gt;.</span>
2816
+ <span class="cstat-no" title="statement not covered" > */</span>
2817
+ <span class="cstat-no" title="statement not covered" ></span>
2818
+ <span class="cstat-no" title="statement not covered" >/**</span>
2819
+ <span class="cstat-no" title="statement not covered" > * Common click handler without parameters and return value, just your logic execution.</span>
2820
+ <span class="cstat-no" title="statement not covered" > *</span>
2821
+ <span class="cstat-no" title="statement not covered" > * @function</span>
2822
+ <span class="cstat-no" title="statement not covered" > * @name handleClick</span>
2823
+ <span class="cstat-no" title="statement not covered" > * @return {void}</span>
2824
+ <span class="cstat-no" title="statement not covered" > */</span>
2825
+ <span class="cstat-no" title="statement not covered" ></span>
2826
+ <span class="cstat-no" title="statement not covered" >/**</span>
2827
+ <span class="cstat-no" title="statement not covered" > * Form executes this function when swap creation info retrieval is finished successfully.</span>
2828
+ <span class="cstat-no" title="statement not covered" > *</span>
2829
+ <span class="cstat-no" title="statement not covered" > * @function</span>
2830
+ <span class="cstat-no" title="statement not covered" > * @name setSwapCreationEstimation</span>
2831
+ <span class="cstat-no" title="statement not covered" > * @param {BaseSwapCreationInfo} details - Details of the swap creation estimation.</span>
2832
+ <span class="cstat-no" title="statement not covered" > * @return {void}</span>
2833
+ <span class="cstat-no" title="statement not covered" > */</span>
2834
+ <span class="cstat-no" title="statement not covered" ></span>
2835
+ <span class="cstat-no" title="statement not covered" >/**</span>
2836
+ <span class="cstat-no" title="statement not covered" > * Error handler for unexpected errors.</span>
2837
+ <span class="cstat-no" title="statement not covered" > *</span>
2838
+ <span class="cstat-no" title="statement not covered" > * @function</span>
2839
+ <span class="cstat-no" title="statement not covered" > * @name handleUnexpectedError</span>
2840
+ <span class="cstat-no" title="statement not covered" > * @param {Error} error - The unexpected error encountered.</span>
2841
+ <span class="cstat-no" title="statement not covered" > * @return {void}</span>
2842
+ <span class="cstat-no" title="statement not covered" > */</span>
2843
+ <span class="cstat-no" title="statement not covered" ></span>
2844
+ <span class="cstat-no" title="statement not covered" >/**</span>
2845
+ <span class="cstat-no" title="statement not covered" > * Should implement the logic with rotating assets (if you want "to" to become "from" and "from" to become "to").</span>
2846
+ <span class="cstat-no" title="statement not covered" > *</span>
2847
+ <span class="cstat-no" title="statement not covered" > * @function</span>
2848
+ <span class="cstat-no" title="statement not covered" > * @name rotateAssets</span>
2849
+ <span class="cstat-no" title="statement not covered" > * @param {string} sendingAssetTicker - Ticker symbol of the asset being sent.</span>
2850
+ <span class="cstat-no" title="statement not covered" > * @param {string} receivingAssetTicker - Ticker symbol of the asset being received.</span>
2851
+ <span class="cstat-no" title="statement not covered" > * @return {void}</span>
2852
+ <span class="cstat-no" title="statement not covered" > */</span>
2853
+ <span class="cstat-no" title="statement not covered" ></span>
2854
+ <span class="cstat-no" title="statement not covered" >/**</span>
2855
+ <span class="cstat-no" title="statement not covered" > * Error handler for standard errors that we can recognize.</span>
2856
+ <span class="cstat-no" title="statement not covered" > *</span>
2857
+ <span class="cstat-no" title="statement not covered" > * @function</span>
2858
+ <span class="cstat-no" title="statement not covered" > * @name handleSwapServiceError</span>
2859
+ <span class="cstat-no" title="statement not covered" > * @param {string} errorCode - Error code returned as "reason" from your handlers.</span>
2860
+ <span class="cstat-no" title="statement not covered" > * @param {function} setValidationContent - Function to set the validation error message on the form.</span>
2861
+ <span class="cstat-no" title="statement not covered" > * @param {function} setBalanceValid - Function to set the balance validity, accepts a boolean.</span>
2862
+ <span class="cstat-no" title="statement not covered" > * @param {function} setMinimalAmountValid - Function to set the minimal amount validity, accepts a boolean.</span>
2863
+ <span class="cstat-no" title="statement not covered" > * @param {function} setMaximumAmountValid - Function to set the maximum amount validity, accepts a boolean.</span>
2864
+ <span class="cstat-no" title="statement not covered" > * @param {function} setIsPairSupported - Function to set the pair support status, accepts a boolean.</span>
2865
+ <span class="cstat-no" title="statement not covered" > * @param {function} setIsSameCoins - Function to set the status if the same coins are used, accepts a boolean.</span>
2866
+ <span class="cstat-no" title="statement not covered" > * @return {void}</span>
2867
+ <span class="cstat-no" title="statement not covered" > */</span>
2868
+ <span class="cstat-no" title="statement not covered" ></span>
2869
+ <span class="cstat-no" title="statement not covered" >/**</span>
2870
+ <span class="cstat-no" title="statement not covered" > * Handler for the confirm button click. You should implement error handling inside it.</span>
2871
+ <span class="cstat-no" title="statement not covered" > *</span>
2872
+ <span class="cstat-no" title="statement not covered" > * @function</span>
2873
+ <span class="cstat-no" title="statement not covered" > * @name handleConfirmButtonClick</span>
2874
+ <span class="cstat-no" title="statement not covered" > * @param {function} resetButtonLoader - Callback for resetting the confirm button loader.</span>
2875
+ <span class="cstat-no" title="statement not covered" > * @param {function} setValidationContent - Function to set the validation error message on the form.</span>
2876
+ <span class="cstat-no" title="statement not covered" > * @param {function} setBalanceValid - Function to set the balance validity, accepts a boolean.</span>
2877
+ <span class="cstat-no" title="statement not covered" > * @param {function} setMinimalAmountValid - Function to set the minimal amount validity, accepts a boolean.</span>
2878
+ <span class="cstat-no" title="statement not covered" > * @param {function} setMaximumAmountValid - Function to set the maximum amount validity, accepts a boolean.</span>
2879
+ <span class="cstat-no" title="statement not covered" > * @param {function} setIsPairSupported - Function to set the pair support status, accepts a boolean.</span>
2880
+ <span class="cstat-no" title="statement not covered" > * @param {function} setIsSameCoins - Function to set the status if the same coins are used, accepts a boolean.</span>
2881
+ <span class="cstat-no" title="statement not covered" > * @param {string} recipientAddress - The address of the recipient.</span>
2882
+ <span class="cstat-no" title="statement not covered" > * @param {string} recipientAddressExtraId - Additional identifier for the recipient address.</span>
2883
+ <span class="cstat-no" title="statement not covered" > * @param {string} refundAddress - The address for refund.</span>
2884
+ <span class="cstat-no" title="statement not covered" > * @param {string} refundAddressExtraId - Additional identifier for the refund address.</span>
2885
+ <span class="cstat-no" title="statement not covered" > * @return {void}</span>
2886
+ <span class="cstat-no" title="statement not covered" > */</span>
2887
+ <span class="cstat-no" title="statement not covered" ></span>
2888
+ <span class="cstat-no" title="statement not covered" >/**</span>
2889
+ <span class="cstat-no" title="statement not covered" > * Async function that retrieves swap creation info by given params.</span>
2890
+ <span class="cstat-no" title="statement not covered" > *</span>
2891
+ <span class="cstat-no" title="statement not covered" > * @function</span>
2892
+ <span class="cstat-no" title="statement not covered" > * @name retrieveSwapDetails</span>
2893
+ <span class="cstat-no" title="statement not covered" > * @param {string} sendingAssetTicker - Ticker symbol of the asset being sent.</span>
2894
+ <span class="cstat-no" title="statement not covered" > * @param {string} receivingAssetTicker - Ticker symbol of the asset being received.</span>
2895
+ <span class="cstat-no" title="statement not covered" > * @param {string} amount - Amount of the asset to be swapped.</span>
2896
+ <span class="cstat-no" title="statement not covered" > * @param {boolean} [isSwapAll=false] - Indicates if the swap should use all available balance.</span>
2897
+ <span class="cstat-no" title="statement not covered" > * @return {Promise&lt;{</span>
2898
+ <span class="cstat-no" title="statement not covered" > * result: false,</span>
2899
+ <span class="cstat-no" title="statement not covered" > * reason: string,</span>
2900
+ <span class="cstat-no" title="statement not covered" > * min: (string|null),</span>
2901
+ <span class="cstat-no" title="statement not covered" > * max: (string|null),</span>
2902
+ <span class="cstat-no" title="statement not covered" > * rate: (string|undefined),</span>
2903
+ <span class="cstat-no" title="statement not covered" > * fiatMin: (number|null),</span>
2904
+ <span class="cstat-no" title="statement not covered" > * fiatMax: (number|null)</span>
2905
+ <span class="cstat-no" title="statement not covered" > * }|{</span>
2906
+ <span class="cstat-no" title="statement not covered" > * result: true,</span>
2907
+ <span class="cstat-no" title="statement not covered" > * swapCreationInfo: BaseSwapCreationInfo</span>
2908
+ <span class="cstat-no" title="statement not covered" > * }&gt;}</span>
2909
+ <span class="cstat-no" title="statement not covered" > */</span>
2910
+ <span class="cstat-no" title="statement not covered" ></span>
2911
+ <span class="cstat-no" title="statement not covered" >/**</span>
2912
+ <span class="cstat-no" title="statement not covered" > * Async function that retrieves initial swap details for a pair like whether the pair is available, min/max swappable amounts, etc.</span>
2913
+ <span class="cstat-no" title="statement not covered" > *</span>
2914
+ <span class="cstat-no" title="statement not covered" > * @function</span>
2915
+ <span class="cstat-no" title="statement not covered" > * @name retrieveInitialSwapData</span>
2916
+ <span class="cstat-no" title="statement not covered" > * @param {string} sendingAssetTicker - Ticker symbol of the asset being sent.</span>
2917
+ <span class="cstat-no" title="statement not covered" > * @param {string} receivingAssetTicker - Ticker symbol of the asset being received.</span>
2918
+ <span class="cstat-no" title="statement not covered" > * @return {Promise&lt;{</span>
2919
+ <span class="cstat-no" title="statement not covered" > * result: true,</span>
2920
+ <span class="cstat-no" title="statement not covered" > * min: string,</span>
2921
+ <span class="cstat-no" title="statement not covered" > * fiatMin: (number|null),</span>
2922
+ <span class="cstat-no" title="statement not covered" > * max: string,</span>
2923
+ <span class="cstat-no" title="statement not covered" > * fiatMax: (number|null),</span>
2924
+ <span class="cstat-no" title="statement not covered" > * rate: (string|null)</span>
2925
+ <span class="cstat-no" title="statement not covered" > * }|{</span>
2926
+ <span class="cstat-no" title="statement not covered" > * result: false,</span>
2927
+ <span class="cstat-no" title="statement not covered" > * reason: string</span>
2928
+ <span class="cstat-no" title="statement not covered" > * }&gt;}</span>
2929
+ <span class="cstat-no" title="statement not covered" > */</span>
2930
+ <span class="cstat-no" title="statement not covered" ></span>
2931
+ <span class="cstat-no" title="statement not covered" >/**</span>
2932
+ <span class="cstat-no" title="statement not covered" > * Function returning extraId name for asset if present.</span>
2933
+ <span class="cstat-no" title="statement not covered" > * You must pass it if you use the form with addresses inputs.</span>
2934
+ <span class="cstat-no" title="statement not covered" > *</span>
2935
+ <span class="cstat-no" title="statement not covered" > * @function</span>
2936
+ <span class="cstat-no" title="statement not covered" > * @name getExtraIdNameByTicker</span>
2937
+ <span class="cstat-no" title="statement not covered" > * @param {string} ticker - Ticker symbol of the asset.</span>
2938
+ <span class="cstat-no" title="statement not covered" > * @return {string|null}</span>
2939
+ <span class="cstat-no" title="statement not covered" > */</span>
2940
+ <span class="cstat-no" title="statement not covered" ></span>
2941
+ <span class="cstat-no" title="statement not covered" >/**</span>
2942
+ <span class="cstat-no" title="statement not covered" > * Callback to handle isFixed flag change.</span>
2943
+ <span class="cstat-no" title="statement not covered" > *</span>
2944
+ <span class="cstat-no" title="statement not covered" > * @function</span>
2945
+ <span class="cstat-no" title="statement not covered" > * @name onIsFixedChange</span>
2946
+ <span class="cstat-no" title="statement not covered" > * @param {boolean} isFixedNewValue - new value</span>
2947
+ <span class="cstat-no" title="statement not covered" > * @return {void}</span>
2948
+ <span class="cstat-no" title="statement not covered" > */</span>
2949
+ <span class="cstat-no" title="statement not covered" ></span>
2950
+ <span class="cstat-no" title="statement not covered" >/**</span>
2951
+ <span class="cstat-no" title="statement not covered" > * Function validating addresses.</span>
2952
+ <span class="cstat-no" title="statement not covered" > * By default, will treat any addresses as valid.</span>
2953
+ <span class="cstat-no" title="statement not covered" > * You must pass it if you use the form with addresses inputs and want to validate addresses.</span>
2954
+ <span class="cstat-no" title="statement not covered" > *</span>
2955
+ <span class="cstat-no" title="statement not covered" > * @function</span>
2956
+ <span class="cstat-no" title="statement not covered" > * @name validateAddressByTicker</span>
2957
+ <span class="cstat-no" title="statement not covered" > * @param {string} ticker - Ticker symbol of the asset.</span>
2958
+ <span class="cstat-no" title="statement not covered" > * @param {string} address - Address to be validated</span>
2959
+ <span class="cstat-no" title="statement not covered" > * @param {boolean} isFixed - Is swap rate mode = fixed</span>
2960
+ <span class="cstat-no" title="statement not covered" > * @return {Promise&lt;boolean&gt;}</span>
2961
+ <span class="cstat-no" title="statement not covered" > */</span>
2962
+ <span class="cstat-no" title="statement not covered" ></span>
2963
+ <span class="cstat-no" title="statement not covered" >/**</span>
2964
+ <span class="cstat-no" title="statement not covered" > * Swap form provides basic functionality for entering to/from amounts both in crypto and fiat, switching assets,</span>
2965
+ <span class="cstat-no" title="statement not covered" > * selecting assets, showing balance for assets. It gracefully handles unavailable fiat rates and can work</span>
2966
+ <span class="cstat-no" title="statement not covered" > * both with and without a wallet environment (without balances).</span>
2967
+ <span class="cstat-no" title="statement not covered" > *</span>
2968
+ <span class="cstat-no" title="statement not covered" > * @param {object} props - Props object for SwapForm component.</span>
2969
+ <span class="cstat-no" title="statement not covered" > * @param {string} props.sendingAssetTicker - Rabbit format of the ticker symbol for the asset being sent.</span>
2970
+ <span class="cstat-no" title="statement not covered" > * @param {string} props.receivingAssetTicker - Rabbit format of the ticker symbol for the asset being received.</span>
2971
+ <span class="cstat-no" title="statement not covered" > * @param {number} [props.sendingAssetDecimalCount=AmountUtils.significantDecimalCount] - Decimal count for the sending asset.</span>
2972
+ <span class="cstat-no" title="statement not covered" > * @param {number} [props.receivingAssetDecimalCount=AmountUtils.significantDecimalCount] - Decimal count for the receiving asset.</span>
2973
+ <span class="cstat-no" title="statement not covered" > * @param {string} props.sendingAssetTickerPrintable - Standard ticker symbol for the sending asset.</span>
2974
+ <span class="cstat-no" title="statement not covered" > * @param {string} props.receivingAssetTickerPrintable - Standard ticker symbol for the receiving asset.</span>
2975
+ <span class="cstat-no" title="statement not covered" > * @param {string} [props.sendingAssetProtocol] - Protocol name to be displayed in text on the change asset button.</span>
2976
+ <span class="cstat-no" title="statement not covered" > * @param {string} [props.receivingAssetProtocol] - Protocol name to be displayed in text on the change asset button.</span>
2977
+ <span class="cstat-no" title="statement not covered" > * @param {string} props.sendingAssetIconSrc - Source URL for the sending asset icon.</span>
2978
+ <span class="cstat-no" title="statement not covered" > * @param {string} [props.sendingAssetProtocolIconSrc=null] - Optional source URL for the sending asset protocol icon.</span>
2979
+ <span class="cstat-no" title="statement not covered" > * @param {string} props.receivingAssetIconSrc - Source URL for the receiving asset icon.</span>
2980
+ <span class="cstat-no" title="statement not covered" > * @param {string} [props.receivingAssetProtocolIconSrc=null] - Optional source URL for the receiving asset protocol icon.</span>
2981
+ <span class="cstat-no" title="statement not covered" > * @param {string} [props.fallBackAssetIconSrc=null] - Optional source URL for a fallback icon used when an icon fails to load.</span>
2982
+ <span class="cstat-no" title="statement not covered" > * @param {string} [props.sendingAssetFeeCoinTickerPrintable] - Optional standard ticker symbol for the fee coin of the sending asset.</span>
2983
+ <span class="cstat-no" title="statement not covered" > * @param {string} [props.sendingAssetBalance] - Balance of the sending asset.</span>
2984
+ <span class="cstat-no" title="statement not covered" > * @param {string} [props.receivingAssetBalance] - Balance of the receiving asset.</span>
2985
+ <span class="cstat-no" title="statement not covered" > * @param {handleClick} props.handleChangeSendingAssetClick - Function to handle clicking on the change sending asset button.</span>
2986
+ <span class="cstat-no" title="statement not covered" > * @param {handleClick} props.handleChangeReceivingAssetClick - Function to handle clicking on the change receiving asset button.</span>
2987
+ <span class="cstat-no" title="statement not covered" > * @param {handleConfirmButtonClick} props.handleConfirmButtonClick - Function to handle clicking on the confirm button.</span>
2988
+ <span class="cstat-no" title="statement not covered" > * @param {composeConfirmButtonTo} props.composeConfirmButtonTo - Function to compose the URL for the confirm button.</span>
2989
+ <span class="cstat-no" title="statement not covered" > * @param {setSwapCreationEstimation} props.setSwapCreationEstimation - Function to set the swap creation estimation.</span>
2990
+ <span class="cstat-no" title="statement not covered" > * @param {handleUnexpectedError} props.handleUnexpectedError - Function to handle unexpected errors.</span>
2991
+ <span class="cstat-no" title="statement not covered" > * @param {rotateAssets} props.rotateAssets - Function to rotate the assets (swap sending and receiving assets).</span>
2992
+ <span class="cstat-no" title="statement not covered" > * @param {string} [props.preservedAmount=null] - Amount to be preserved.</span>
2993
+ <span class="cstat-no" title="statement not covered" > * @param {handleSwapServiceError} props.handleSwapServiceError - Function to handle standard errors that we can recognize.</span>
2994
+ <span class="cstat-no" title="statement not covered" > * @param {boolean} [props.formHasBalance] - Indicates if the form has balance information.</span>
2995
+ <span class="cstat-no" title="statement not covered" > * @param {retrieveSwapDetails} props.retrieveSwapDetails - Function to retrieve swap details based on the given parameters.</span>
2996
+ <span class="cstat-no" title="statement not covered" > * @param {retrieveInitialSwapData} props.retrieveInitialSwapData - Function to retrieve initial swap data for a given pair of assets.</span>
2997
+ <span class="cstat-no" title="statement not covered" > * @param {number} props.triggerDataUpdateResetting - Number to reset interval updating the data periodically.</span>
2998
+ <span class="cstat-no" title="statement not covered" > * @param {React.Ref} props.fromAssetSelectionButtonRef - Reference to the from asset selection button.</span>
2999
+ <span class="cstat-no" title="statement not covered" > * @param {React.Ref} props.toAssetSelectionButtonRef - Reference to the to asset selection button.</span>
3000
+ <span class="cstat-no" title="statement not covered" > * @param {number|string} [props.sendingAssetToFiatRate] - Rate for converting the sending asset to fiat.</span>
3001
+ <span class="cstat-no" title="statement not covered" > * @param {number|string} [props.receivingAssetToFiatRate] - Rate for converting the receiving asset to fiat.</span>
3002
+ <span class="cstat-no" title="statement not covered" > * @param {string} [props.fiatCurrencyCode] - Code for the fiat currency.</span>
3003
+ <span class="cstat-no" title="statement not covered" > * @param {number} [props.fiatCurrencyDecimals] - Decimal places for the fiat currency.</span>
3004
+ <span class="cstat-no" title="statement not covered" > * @param {boolean} [props.formHasFiat] - Indicates if the form supports fiat currency.</span>
3005
+ <span class="cstat-no" title="statement not covered" > * @param {string|null} [props.termsOfUseUrl] - Terms of use URL, shown only if both terms &amp; privacy policy passed.</span>
3006
+ <span class="cstat-no" title="statement not covered" > * @param {string|null} [props.privacyPolicyUrl] - Privacy policy of use URL, shown only if both terms &amp; privacy policy passed.</span>
3007
+ <span class="cstat-no" title="statement not covered" > * @param {object} [props.translations] - Object containing translations, default English texts will be used if omitted.</span>
3008
+ <span class="cstat-no" title="statement not covered" > * @param {string} props.swapSeparatorIconSrc - Source URL for the swap separator icon.</span>
3009
+ <span class="cstat-no" title="statement not covered" > * @param {boolean} props.swapButtonAlwaysActive - Setting that allows the form state to proceed to the next step regardless of validity.</span>
3010
+ <span class="cstat-no" title="statement not covered" > * @param {getExtraIdNameByTicker} props.getExtraIdNameByTicker - Function returning extraId name for asset</span>
3011
+ <span class="cstat-no" title="statement not covered" > * @param {validateAddressByTicker} [props.validateAddressByTicker] - Function validating address</span>
3012
+ <span class="cstat-no" title="statement not covered" > * @param {onIsFixedChange} [props.onIsFixedChange] - callback for changed isFixed</span>
3013
+ <span class="cstat-no" title="statement not covered" > * @return {JSX.Element} Rendered SwapForm component.</span>
3014
+ <span class="cstat-no" title="statement not covered" > * @constructor</span>
3015
+ <span class="cstat-no" title="statement not covered" > */</span>
3016
+ <span class="cstat-no" title="statement not covered" >export const SwapForm = ({</span>
3017
+ <span class="cstat-no" title="statement not covered" > sendingAssetTicker,</span>
3018
+ <span class="cstat-no" title="statement not covered" > receivingAssetTicker,</span>
3019
+ <span class="cstat-no" title="statement not covered" > sendingAssetDecimalCount = AmountUtils.significantDecimalCount,</span>
3020
+ <span class="cstat-no" title="statement not covered" > receivingAssetDecimalCount = AmountUtils.significantDecimalCount,</span>
3021
+ <span class="cstat-no" title="statement not covered" > sendingAssetTickerPrintable,</span>
3022
+ <span class="cstat-no" title="statement not covered" > receivingAssetTickerPrintable,</span>
3023
+ <span class="cstat-no" title="statement not covered" > sendingAssetProtocol,</span>
3024
+ <span class="cstat-no" title="statement not covered" > receivingAssetProtocol,</span>
3025
+ <span class="cstat-no" title="statement not covered" > sendingAssetIconSrc,</span>
3026
+ <span class="cstat-no" title="statement not covered" > sendingAssetProtocolIconSrc = null,</span>
3027
+ <span class="cstat-no" title="statement not covered" > receivingAssetIconSrc,</span>
3028
+ <span class="cstat-no" title="statement not covered" > receivingAssetProtocolIconSrc = null,</span>
3029
+ <span class="cstat-no" title="statement not covered" > fallBackAssetIconSrc = null,</span>
3030
+ <span class="cstat-no" title="statement not covered" > sendingAssetFeeCoinTickerPrintable,</span>
3031
+ <span class="cstat-no" title="statement not covered" > sendingAssetBalance,</span>
3032
+ <span class="cstat-no" title="statement not covered" > receivingAssetBalance,</span>
3033
+ <span class="cstat-no" title="statement not covered" > handleChangeSendingAssetClick,</span>
3034
+ <span class="cstat-no" title="statement not covered" > handleChangeReceivingAssetClick,</span>
3035
+ <span class="cstat-no" title="statement not covered" > handleConfirmButtonClick = (</span>
3036
+ <span class="cstat-no" title="statement not covered" > resetButtonLoader,</span>
3037
+ <span class="cstat-no" title="statement not covered" > setValidationContent,</span>
3038
+ <span class="cstat-no" title="statement not covered" > setBalanceValid,</span>
3039
+ <span class="cstat-no" title="statement not covered" > setMinimalAmountValid,</span>
3040
+ <span class="cstat-no" title="statement not covered" > setMaximumAmountValid,</span>
3041
+ <span class="cstat-no" title="statement not covered" > setIsPairSupported,</span>
3042
+ <span class="cstat-no" title="statement not covered" > setIsSameCoins,</span>
3043
+ <span class="cstat-no" title="statement not covered" > recipientAddress,</span>
3044
+ <span class="cstat-no" title="statement not covered" > recipientAddressExtraId,</span>
3045
+ <span class="cstat-no" title="statement not covered" > refundAddress,</span>
3046
+ <span class="cstat-no" title="statement not covered" > refundAddressExtraId</span>
3047
+ <span class="cstat-no" title="statement not covered" > ) =&gt; {},</span>
3048
+ <span class="cstat-no" title="statement not covered" > composeConfirmButtonTo = (fromTicker, toTicker, fromAmount) =&gt; "",</span>
3049
+ <span class="cstat-no" title="statement not covered" > setSwapCreationEstimation = details =&gt; {},</span>
3050
+ <span class="cstat-no" title="statement not covered" > handleUnexpectedError = error =&gt; {},</span>
3051
+ <span class="cstat-no" title="statement not covered" > rotateAssets = (fromTicker, toTicker) =&gt; {},</span>
3052
+ <span class="cstat-no" title="statement not covered" > preservedAmount = null,</span>
3053
+ <span class="cstat-no" title="statement not covered" > handleSwapServiceError = (</span>
3054
+ <span class="cstat-no" title="statement not covered" > errorCode,</span>
3055
+ <span class="cstat-no" title="statement not covered" > setValidationContent,</span>
3056
+ <span class="cstat-no" title="statement not covered" > setBalanceValid,</span>
3057
+ <span class="cstat-no" title="statement not covered" > setMinimalAmountValid,</span>
3058
+ <span class="cstat-no" title="statement not covered" > setMaximumAmountValid,</span>
3059
+ <span class="cstat-no" title="statement not covered" > setIsPairSupported,</span>
3060
+ <span class="cstat-no" title="statement not covered" > setIsSameCoins</span>
3061
+ <span class="cstat-no" title="statement not covered" > ) =&gt; {},</span>
3062
+ <span class="cstat-no" title="statement not covered" > formHasBalance = false,</span>
3063
+ <span class="cstat-no" title="statement not covered" > retrieveSwapDetails = async (</span>
3064
+ <span class="cstat-no" title="statement not covered" > sendingAssetTicker,</span>
3065
+ <span class="cstat-no" title="statement not covered" > receivingAssetTicker,</span>
3066
+ <span class="cstat-no" title="statement not covered" > amount,</span>
3067
+ <span class="cstat-no" title="statement not covered" > isSwapAll = false,</span>
3068
+ <span class="cstat-no" title="statement not covered" > isFixed = false,</span>
3069
+ <span class="cstat-no" title="statement not covered" > amountIsToReceive = false</span>
3070
+ <span class="cstat-no" title="statement not covered" > ) =&gt; {},</span>
3071
+ <span class="cstat-no" title="statement not covered" > retrieveInitialSwapData = async (sendingAssetTicker, receivingAssetTicker) =&gt; {},</span>
3072
+ <span class="cstat-no" title="statement not covered" > triggerDataUpdateResetting = 0,</span>
3073
+ <span class="cstat-no" title="statement not covered" > fromAssetSelectionButtonRef = null,</span>
3074
+ <span class="cstat-no" title="statement not covered" > toAssetSelectionButtonRef = null,</span>
3075
+ <span class="cstat-no" title="statement not covered" > sendingAssetToFiatRate = null,</span>
3076
+ <span class="cstat-no" title="statement not covered" > receivingAssetToFiatRate = null,</span>
3077
+ <span class="cstat-no" title="statement not covered" > fiatCurrencyCode = null,</span>
3078
+ <span class="cstat-no" title="statement not covered" > fiatCurrencyDecimals = null,</span>
3079
+ <span class="cstat-no" title="statement not covered" > formHasFiat = true,</span>
3080
+ <span class="cstat-no" title="statement not covered" > termsOfUseUrl = null,</span>
3081
+ <span class="cstat-no" title="statement not covered" > privacyPolicyUrl = null,</span>
3082
+ <span class="cstat-no" title="statement not covered" > getExtraIdNameByTicker = ticker =&gt; null,</span>
3083
+ <span class="cstat-no" title="statement not covered" > validateAddressByTicker = () =&gt; false,</span>
3084
+ <span class="cstat-no" title="statement not covered" > swapSeparatorIconSrc,</span>
3085
+ <span class="cstat-no" title="statement not covered" > swapButtonAlwaysActive = false,</span>
3086
+ <span class="cstat-no" title="statement not covered" > onIsFixedChange = () =&gt; {},</span>
3087
+ <span class="cstat-no" title="statement not covered" > translations = {</span>
3088
+ <span class="cstat-no" title="statement not covered" > swapAllButtonTitles: {</span>
3089
+ <span class="cstat-no" title="statement not covered" > enable: "Swap all",</span>
3090
+ <span class="cstat-no" title="statement not covered" > cancel: "Cancel",</span>
3091
+ <span class="cstat-no" title="statement not covered" > },</span>
3092
+ <span class="cstat-no" title="statement not covered" > input: {</span>
3093
+ <span class="cstat-no" title="statement not covered" > fiatPlaceholder: "Enter fiat amount",</span>
3094
+ <span class="cstat-no" title="statement not covered" > balanceLoaderText: "Loading balance...",</span>
3095
+ <span class="cstat-no" title="statement not covered" > },</span>
3096
+ <span class="cstat-no" title="statement not covered" > consents: {</span>
3097
+ <span class="cstat-no" title="statement not covered" > consentText: 'By clicking "Swap" you agree with Rabbit Swap\'s',</span>
3098
+ <span class="cstat-no" title="statement not covered" > termsOfUse: "Terms of Use",</span>
3099
+ <span class="cstat-no" title="statement not covered" > and: "and",</span>
3100
+ <span class="cstat-no" title="statement not covered" > privacyPolicy: "Privacy Policy",</span>
3101
+ <span class="cstat-no" title="statement not covered" > },</span>
3102
+ <span class="cstat-no" title="statement not covered" > informationBlock: {</span>
3103
+ <span class="cstat-no" title="statement not covered" > minimumAmount: "Minimal amount: ",</span>
3104
+ <span class="cstat-no" title="statement not covered" > maximumAmount: "Maximum amount: ",</span>
3105
+ <span class="cstat-no" title="statement not covered" > transactionFee: "Network fee: ",</span>
3106
+ <span class="cstat-no" title="statement not covered" > calculatingNetworkFee: "Calculating network fee..",</span>
3107
+ <span class="cstat-no" title="statement not covered" > loadingMinimalAmount: "Loading minimal amount..",</span>
3108
+ <span class="cstat-no" title="statement not covered" > swapRate: "Rate: ",</span>
3109
+ <span class="cstat-no" title="statement not covered" > calculatingSwapRates: "Calculating swap rates..",</span>
3110
+ <span class="cstat-no" title="statement not covered" > pairNotAvailable: "Pair is not available now. Please, try again later or choose another pair.",</span>
3111
+ <span class="cstat-no" title="statement not covered" > },</span>
3112
+ <span class="cstat-no" title="statement not covered" > addressFields: {</span>
3113
+ <span class="cstat-no" title="statement not covered" > addressTitle: "Recepient address",</span>
3114
+ <span class="cstat-no" title="statement not covered" > refundAddressTitle: "Refund address",</span>
3115
+ <span class="cstat-no" title="statement not covered" > extraIdPlaceholder: "(optional)",</span>
3116
+ <span class="cstat-no" title="statement not covered" > refundAddressExtraIdTitle: "Refund extra ID (MEMO):",</span>
3117
+ <span class="cstat-no" title="statement not covered" > refundAddressExtraIdNotice:</span>
3118
+ <span class="cstat-no" title="statement not covered" > "Please check if your address requires additional identifier (sometimes called a Memo, Destination Tag, Tag, ID, Label or Note). Including this identifier is crucial when required, as omitting or misentering it can result in lost assets.",</span>
3119
+ <span class="cstat-no" title="statement not covered" > receivingAddressExtraIdTitle: "Destination extra ID (MEMO):",</span>
3120
+ <span class="cstat-no" title="statement not covered" > receivingAddressExtraIdNotice:</span>
3121
+ <span class="cstat-no" title="statement not covered" > "Please check if your address requires additional identifier (sometimes called a Memo, Destination Tag, Tag, ID, Label or Note). Including this identifier is crucial when required, as omitting or misentering it can result in lost assets.",</span>
3122
+ <span class="cstat-no" title="statement not covered" > },</span>
3123
+ <span class="cstat-no" title="statement not covered" > rateSelector: {</span>
3124
+ <span class="cstat-no" title="statement not covered" > floatingRate: "Floating rate",</span>
3125
+ <span class="cstat-no" title="statement not covered" > fixedRate: "Fixed rate",</span>
3126
+ <span class="cstat-no" title="statement not covered" > },</span>
3127
+ <span class="cstat-no" title="statement not covered" > confirmButtonText: "Swap",</span>
3128
+ <span class="cstat-no" title="statement not covered" > },</span>
3129
+ <span class="cstat-no" title="statement not covered" >}) =&gt; {</span>
3130
+ <span class="cstat-no" title="statement not covered" > const DETAIL_REFRESH_INTERVAL_MS = 1.5 * 60000;</span>
3131
+ <span class="cstat-no" title="statement not covered" > const IS_FIXED_BY_DEFAULT = false;</span>
3132
+ <span class="cstat-no" title="statement not covered" ></span>
3133
+ <span class="cstat-no" title="statement not covered" > // Setting up an asyncronyous states, which can change during the function execution.</span>
3134
+ <span class="cstat-no" title="statement not covered" > // This is done so that we can cancel the calculation update in case the selected asset changes.</span>
3135
+ <span class="cstat-no" title="statement not covered" > const [sendingAssetTickerReferred, setSendingAssetTickerReferred] = useReferredState(null);</span>
3136
+ <span class="cstat-no" title="statement not covered" > const [receivingAssetTickerReferred, setReceivingAssetTickerReferred] = useReferredState(null);</span>
3137
+ <span class="cstat-no" title="statement not covered" ></span>
3138
+ <span class="cstat-no" title="statement not covered" > // eslint-disable-next-line react-hooks/exhaustive-deps</span>
3139
+ <span class="cstat-no" title="statement not covered" > useEffect(() =&gt; setSendingAssetTickerReferred(sendingAssetTicker), [sendingAssetTicker]);</span>
3140
+ <span class="cstat-no" title="statement not covered" ></span>
3141
+ <span class="cstat-no" title="statement not covered" > // eslint-disable-next-line react-hooks/exhaustive-deps</span>
3142
+ <span class="cstat-no" title="statement not covered" > useEffect(() =&gt; setReceivingAssetTickerReferred(receivingAssetTicker), [receivingAssetTicker]);</span>
3143
+ <span class="cstat-no" title="statement not covered" ></span>
3144
+ <span class="cstat-no" title="statement not covered" > // Updating the states below will insert the new value into the send or receive input field</span>
3145
+ <span class="cstat-no" title="statement not covered" > const [updateSendInputTo, setUpdateSendInputTo] = useState(preservedAmount ?? null);</span>
3146
+ <span class="cstat-no" title="statement not covered" > const [updateReceiveInputTo, setUpdateReceiveInputTo] = useState(null);</span>
3147
+ <span class="cstat-no" title="statement not covered" ></span>
3148
+ <span class="cstat-no" title="statement not covered" > const [sendAssetAmount, setSendAssetAmount] = useReferredState(</span>
3149
+ <span class="cstat-no" title="statement not covered" > preservedAmount == null || preservedAmount === "" ? null : preservedAmount</span>
3150
+ <span class="cstat-no" title="statement not covered" > );</span>
3151
+ <span class="cstat-no" title="statement not covered" > const [receiveAssetAmount, setReceiveAssetAmount] = useReferredState(null);</span>
3152
+ <span class="cstat-no" title="statement not covered" ></span>
3153
+ <span class="cstat-no" title="statement not covered" > const [swapRate, setSwapRate] = useState();</span>
3154
+ <span class="cstat-no" title="statement not covered" > const [minimalAmount, setMinimalAmount] = useReferredState(null);</span>
3155
+ <span class="cstat-no" title="statement not covered" > const [maximumAmount, setMaximumAmount] = useReferredState(null);</span>
3156
+ <span class="cstat-no" title="statement not covered" > const [validationContent, setValidationContent] = useState();</span>
3157
+ <span class="cstat-no" title="statement not covered" ></span>
3158
+ <span class="cstat-no" title="statement not covered" > const [minimalAmountValid, setMinimalAmountValid] = useState(true); // Whether the amount is above the minimal amount</span>
3159
+ <span class="cstat-no" title="statement not covered" > const [maximumAmountValid, setMaximumAmountValid] = useState(true);</span>
3160
+ <span class="cstat-no" title="statement not covered" > const [isPairSupported, setIsPairSupported] = useState(true);</span>
3161
+ <span class="cstat-no" title="statement not covered" > const [isSameCoins, setIsSameCoins] = useState(false);</span>
3162
+ <span class="cstat-no" title="statement not covered" > const [isSwapCalculated, setIsSwapCalculated] = useState(false);</span>
3163
+ <span class="cstat-no" title="statement not covered" > const [readyToSwap, setReadyToSwap] = useState(false); // Basically a param that enables/disables the "Next" button</span>
3164
+ <span class="cstat-no" title="statement not covered" > // TODO: [refactoring, moderate] instead of handling preservedAmount at a lot of cases below, just</span>
3165
+ <span class="cstat-no" title="statement not covered" > // write single useEffect setting sendAssetAmount to the=is passed value and simplify the logic below. task_id=6453251e49b04c5e88a3cc771479ffb5</span>
3166
+ <span class="cstat-no" title="statement not covered" > const [isAmountZero, setIsAmountZero] = useState(preservedAmount == null || String(preservedAmount) === "0");</span>
3167
+ <span class="cstat-no" title="statement not covered" > const [isLoading, setIsLoading] = useReferredState(false); // Whether the form is in the progress of loading some data (new rates, for example)</span>
3168
+ <span class="cstat-no" title="statement not covered" > const [isFixedRate, setIsFixedRate] = useReferredState(null);</span>
3169
+ <span class="cstat-no" title="statement not covered" > const [isLastEditedReceiving, setIsLastEditedReceiving] = useReferredState(false);</span>
3170
+ <span class="cstat-no" title="statement not covered" ></span>
3171
+ <span class="cstat-no" title="statement not covered" > const [confirmButtonTo, setConfirmButtonTo] = useState(</span>
3172
+ <span class="cstat-no" title="statement not covered" > composeConfirmButtonTo(sendingAssetTicker, receivingAssetTicker, preservedAmount)</span>
3173
+ <span class="cstat-no" title="statement not covered" > );</span>
3174
+ <span class="cstat-no" title="statement not covered" ></span>
3175
+ <span class="cstat-no" title="statement not covered" > const [transactionFee, setTransactionFee] = useState();</span>
3176
+ <span class="cstat-no" title="statement not covered" > const [balanceValid, setBalanceValid] = useState(true); // Whether the amount is less than total balance</span>
3177
+ <span class="cstat-no" title="statement not covered" > const [isSwapAll, setIsSwapAll] = useReferredState(null);</span>
3178
+ <span class="cstat-no" title="statement not covered" > const [swapAllButtonLoaderReSetter, setSwapAllButtonLoaderReSetter] = useState([]);</span>
3179
+ <span class="cstat-no" title="statement not covered" ></span>
3180
+ <span class="cstat-no" title="statement not covered" > const [dataUpdateTimeoutId, setDataUpdateTimeoutId] = useReferredState(null);</span>
3181
+ <span class="cstat-no" title="statement not covered" > const [idleDataUpdateTimeoutId, setIdleDataUpdateTimeoutId] = useReferredState(null);</span>
3182
+ <span class="cstat-no" title="statement not covered" ></span>
3183
+ <span class="cstat-no" title="statement not covered" > const [recipientAddress, setRecipientAddress] = useReferredState("");</span>
3184
+ <span class="cstat-no" title="statement not covered" > const [recipientAddressExtraId, setRecipientAddressExtraId] = useReferredState("");</span>
3185
+ <span class="cstat-no" title="statement not covered" > const [isRecipientAddressValid, setIsRecipientAddressValid] = useReferredState(false);</span>
3186
+ <span class="cstat-no" title="statement not covered" > const [isRefundAddressRequired, setIsRefundAddressRequired] = useState(false);</span>
3187
+ <span class="cstat-no" title="statement not covered" > const [refundAddress, setRefundAddress] = useReferredState("");</span>
3188
+ <span class="cstat-no" title="statement not covered" > const [refundAddressExtraId, setRefundAddressExtraId] = useReferredState("");</span>
3189
+ <span class="cstat-no" title="statement not covered" > const [isRefundAddressValid, setIsRefundAddressValid] = useReferredState(false);</span>
3190
+ <span class="cstat-no" title="statement not covered" ></span>
3191
+ <span class="cstat-no" title="statement not covered" > const callHandlingErrors = useCallHandlingErrors();</span>
3192
+ <span class="cstat-no" title="statement not covered" > const isHydrated = useIsHydrated();</span>
3193
+ <span class="cstat-no" title="statement not covered" ></span>
3194
+ <span class="cstat-no" title="statement not covered" > const recalculationDelayOnTyping = 1000;</span>
3195
+ <span class="cstat-no" title="statement not covered" ></span>
3196
+ <span class="cstat-no" title="statement not covered" > const isAddressFieldEnabled = !formHasBalance;</span>
3197
+ <span class="cstat-no" title="statement not covered" > const displayRateSelector = !formHasBalance;</span>
3198
+ <span class="cstat-no" title="statement not covered" ></span>
3199
+ <span class="cstat-no" title="statement not covered" > const handleSendAssetAmountChange = amount =&gt; {</span>
3200
+ <span class="cstat-no" title="statement not covered" > setIsLastEditedReceiving(false);</span>
3201
+ <span class="cstat-no" title="statement not covered" > let receiveAmount = "";</span>
3202
+ <span class="cstat-no" title="statement not covered" > if (amount != null &amp;&amp; amount !== "" &amp;&amp; swapRate != null) {</span>
3203
+ <span class="cstat-no" title="statement not covered" > receiveAmount = AmountUtils.trim(BigNumber(amount).times(swapRate), receivingAssetDecimalCount);</span>
3204
+ <span class="cstat-no" title="statement not covered" > }</span>
3205
+ <span class="cstat-no" title="statement not covered" > setReceiveAssetAmount(receiveAmount);</span>
3206
+ <span class="cstat-no" title="statement not covered" > setUpdateReceiveInputTo(receiveAmount);</span>
3207
+ <span class="cstat-no" title="statement not covered" > setSendAssetAmount(amount);</span>
3208
+ <span class="cstat-no" title="statement not covered" > };</span>
3209
+ <span class="cstat-no" title="statement not covered" ></span>
3210
+ <span class="cstat-no" title="statement not covered" > const handleReceiveAssetAmountChange = amount =&gt; {</span>
3211
+ <span class="cstat-no" title="statement not covered" > setReceiveAssetAmount(amount);</span>
3212
+ <span class="cstat-no" title="statement not covered" > if (isFixedRate.current) setIsLastEditedReceiving(true);</span>
3213
+ <span class="cstat-no" title="statement not covered" > let sendAssetAmount = "";</span>
3214
+ <span class="cstat-no" title="statement not covered" > if (amount != null &amp;&amp; amount !== "" &amp;&amp; swapRate != null) {</span>
3215
+ <span class="cstat-no" title="statement not covered" > sendAssetAmount = AmountUtils.trim(BigNumber(amount).div(swapRate), sendingAssetDecimalCount);</span>
3216
+ <span class="cstat-no" title="statement not covered" > }</span>
3217
+ <span class="cstat-no" title="statement not covered" > setUpdateSendInputTo(sendAssetAmount);</span>
3218
+ <span class="cstat-no" title="statement not covered" > setSendAssetAmount(sendAssetAmount);</span>
3219
+ <span class="cstat-no" title="statement not covered" > };</span>
3220
+ <span class="cstat-no" title="statement not covered" ></span>
3221
+ <span class="cstat-no" title="statement not covered" > const handleMinimalAmountClick = () =&gt; {</span>
3222
+ <span class="cstat-no" title="statement not covered" > if (!minimalAmount.current) return;</span>
3223
+ <span class="cstat-no" title="statement not covered" ></span>
3224
+ <span class="cstat-no" title="statement not covered" > if (isLastEditedReceiving.current) {</span>
3225
+ <span class="cstat-no" title="statement not covered" > setUpdateReceiveInputTo(minimalAmount.current?.crypto);</span>
3226
+ <span class="cstat-no" title="statement not covered" > handleReceiveAssetAmountChange(minimalAmount.current?.crypto);</span>
3227
+ <span class="cstat-no" title="statement not covered" > } else {</span>
3228
+ <span class="cstat-no" title="statement not covered" > setUpdateSendInputTo(minimalAmount.current?.crypto);</span>
3229
+ <span class="cstat-no" title="statement not covered" > handleSendAssetAmountChange(minimalAmount.current?.crypto);</span>
3230
+ <span class="cstat-no" title="statement not covered" > }</span>
3231
+ <span class="cstat-no" title="statement not covered" > };</span>
3232
+ <span class="cstat-no" title="statement not covered" ></span>
3233
+ <span class="cstat-no" title="statement not covered" > const handleMaximumAmountClick = () =&gt; {</span>
3234
+ <span class="cstat-no" title="statement not covered" > if (!maximumAmount.current) return;</span>
3235
+ <span class="cstat-no" title="statement not covered" ></span>
3236
+ <span class="cstat-no" title="statement not covered" > if (isLastEditedReceiving.current) {</span>
3237
+ <span class="cstat-no" title="statement not covered" > setUpdateReceiveInputTo(maximumAmount.current?.crypto);</span>
3238
+ <span class="cstat-no" title="statement not covered" > handleReceiveAssetAmountChange(maximumAmount.current?.crypto);</span>
3239
+ <span class="cstat-no" title="statement not covered" > } else {</span>
3240
+ <span class="cstat-no" title="statement not covered" > setUpdateSendInputTo(maximumAmount.current?.crypto);</span>
3241
+ <span class="cstat-no" title="statement not covered" > handleSendAssetAmountChange(maximumAmount.current?.crypto);</span>
3242
+ <span class="cstat-no" title="statement not covered" > }</span>
3243
+ <span class="cstat-no" title="statement not covered" > };</span>
3244
+ <span class="cstat-no" title="statement not covered" ></span>
3245
+ <span class="cstat-no" title="statement not covered" > const handleSwapAllClick = resetButtonLoader =&gt; {</span>
3246
+ <span class="cstat-no" title="statement not covered" > setIsSwapAll(prev =&gt; {</span>
3247
+ <span class="cstat-no" title="statement not covered" > if (prev) {</span>
3248
+ <span class="cstat-no" title="statement not covered" > // Setting amount inputs to empty string if we are handling the disabling of previously enabled swap all</span>
3249
+ <span class="cstat-no" title="statement not covered" > setUpdateSendInputTo("");</span>
3250
+ <span class="cstat-no" title="statement not covered" > setUpdateReceiveInputTo("");</span>
3251
+ <span class="cstat-no" title="statement not covered" > setSendAssetAmount(null);</span>
3252
+ <span class="cstat-no" title="statement not covered" > setReceiveAssetAmount(null);</span>
3253
+ <span class="cstat-no" title="statement not covered" > }</span>
3254
+ <span class="cstat-no" title="statement not covered" > return !prev;</span>
3255
+ <span class="cstat-no" title="statement not covered" > });</span>
3256
+ <span class="cstat-no" title="statement not covered" > setSwapAllButtonLoaderReSetter([resetButtonLoader]);</span>
3257
+ <span class="cstat-no" title="statement not covered" > };</span>
3258
+ <span class="cstat-no" title="statement not covered" ></span>
3259
+ <span class="cstat-no" title="statement not covered" > const processMinMaxAmounts = amount =&gt; {</span>
3260
+ <span class="cstat-no" title="statement not covered" > if (amount === null) return;</span>
3261
+ <span class="cstat-no" title="statement not covered" ></span>
3262
+ <span class="cstat-no" title="statement not covered" > setMaximumAmountValid(</span>
3263
+ <span class="cstat-no" title="statement not covered" > !maximumAmount.current || BigNumber(amount).eq("0") || BigNumber(amount).lte(maximumAmount.current.crypto)</span>
3264
+ <span class="cstat-no" title="statement not covered" > );</span>
3265
+ <span class="cstat-no" title="statement not covered" > setMinimalAmountValid(</span>
3266
+ <span class="cstat-no" title="statement not covered" > !minimalAmount.current || BigNumber(amount).eq("0") || BigNumber(amount).gte(minimalAmount.current?.crypto)</span>
3267
+ <span class="cstat-no" title="statement not covered" > );</span>
3268
+ <span class="cstat-no" title="statement not covered" > };</span>
3269
+ <span class="cstat-no" title="statement not covered" ></span>
3270
+ <span class="cstat-no" title="statement not covered" > const requestDataRefresh = (amount, immediately = false, isSwapAll = false, ignoreEmptyAmount = false) =&gt; {</span>
3271
+ <span class="cstat-no" title="statement not covered" > try {</span>
3272
+ <span class="cstat-no" title="statement not covered" > clearTimeout(dataUpdateTimeoutId.current);</span>
3273
+ <span class="cstat-no" title="statement not covered" ></span>
3274
+ <span class="cstat-no" title="statement not covered" > if (isSwapAll) {</span>
3275
+ <span class="cstat-no" title="statement not covered" > loadFullEstimation(null);</span>
3276
+ <span class="cstat-no" title="statement not covered" > return;</span>
3277
+ <span class="cstat-no" title="statement not covered" > }</span>
3278
+ <span class="cstat-no" title="statement not covered" ></span>
3279
+ <span class="cstat-no" title="statement not covered" > if (!amount &amp;&amp; !ignoreEmptyAmount) {</span>
3280
+ <span class="cstat-no" title="statement not covered" > return;</span>
3281
+ <span class="cstat-no" title="statement not covered" > }</span>
3282
+ <span class="cstat-no" title="statement not covered" ></span>
3283
+ <span class="cstat-no" title="statement not covered" > if (BigNumber(amount).eq("0") || amount == null || amount === "") {</span>
3284
+ <span class="cstat-no" title="statement not covered" > if (immediately) {</span>
3285
+ <span class="cstat-no" title="statement not covered" > loadMinimalAmountAndSwapRate(true);</span>
3286
+ <span class="cstat-no" title="statement not covered" > } else {</span>
3287
+ <span class="cstat-no" title="statement not covered" > setDataUpdateTimeoutId(</span>
3288
+ <span class="cstat-no" title="statement not covered" > setTimeout(() =&gt; loadMinimalAmountAndSwapRate(true), recalculationDelayOnTyping)</span>
3289
+ <span class="cstat-no" title="statement not covered" > );</span>
3290
+ <span class="cstat-no" title="statement not covered" > }</span>
3291
+ <span class="cstat-no" title="statement not covered" > } else {</span>
3292
+ <span class="cstat-no" title="statement not covered" > if (immediately) {</span>
3293
+ <span class="cstat-no" title="statement not covered" > loadFullEstimation(amount, preservedAmount &amp;&amp; String(preservedAmount) !== "0" ? true : undefined);</span>
3294
+ <span class="cstat-no" title="statement not covered" > } else {</span>
3295
+ <span class="cstat-no" title="statement not covered" > setDataUpdateTimeoutId(setTimeout(() =&gt; loadFullEstimation(amount), recalculationDelayOnTyping));</span>
3296
+ <span class="cstat-no" title="statement not covered" > }</span>
3297
+ <span class="cstat-no" title="statement not covered" > }</span>
3298
+ <span class="cstat-no" title="statement not covered" > } catch (e) {</span>
3299
+ <span class="cstat-no" title="statement not covered" > handleUnexpectedError(e);</span>
3300
+ <span class="cstat-no" title="statement not covered" > }</span>
3301
+ <span class="cstat-no" title="statement not covered" > };</span>
3302
+ <span class="cstat-no" title="statement not covered" ></span>
3303
+ <span class="cstat-no" title="statement not covered" > const setAmountLimitsAndRate = details =&gt; {</span>
3304
+ <span class="cstat-no" title="statement not covered" > setSwapRate(details?.rate ?? null);</span>
3305
+ <span class="cstat-no" title="statement not covered" > if (!details?.rate) {</span>
3306
+ <span class="cstat-no" title="statement not covered" > if (isLastEditedReceiving.current) {</span>
3307
+ <span class="cstat-no" title="statement not covered" > setUpdateSendInputTo("");</span>
3308
+ <span class="cstat-no" title="statement not covered" > setSendAssetAmount("");</span>
3309
+ <span class="cstat-no" title="statement not covered" > } else {</span>
3310
+ <span class="cstat-no" title="statement not covered" > setUpdateReceiveInputTo("");</span>
3311
+ <span class="cstat-no" title="statement not covered" > setReceiveAssetAmount("");</span>
3312
+ <span class="cstat-no" title="statement not covered" > }</span>
3313
+ <span class="cstat-no" title="statement not covered" > }</span>
3314
+ <span class="cstat-no" title="statement not covered" > setMinimalAmount(details.min == null ? null : { crypto: details.min, fiat: details.fiatMin });</span>
3315
+ <span class="cstat-no" title="statement not covered" > setMaximumAmount(details.max == null ? null : { crypto: details.max, fiat: details.fiatMax });</span>
3316
+ <span class="cstat-no" title="statement not covered" > if (details.feeCoins != null) {</span>
3317
+ <span class="cstat-no" title="statement not covered" > setTransactionFee({</span>
3318
+ <span class="cstat-no" title="statement not covered" > crypto: details.feeCoins,</span>
3319
+ <span class="cstat-no" title="statement not covered" > fiat: details.feeFiat,</span>
3320
+ <span class="cstat-no" title="statement not covered" > });</span>
3321
+ <span class="cstat-no" title="statement not covered" > } else {</span>
3322
+ <span class="cstat-no" title="statement not covered" > setTransactionFee(null);</span>
3323
+ <span class="cstat-no" title="statement not covered" > }</span>
3324
+ <span class="cstat-no" title="statement not covered" > };</span>
3325
+ <span class="cstat-no" title="statement not covered" ></span>
3326
+ <span class="cstat-no" title="statement not covered" > const loadFullEstimation = (amount, isForPreserved = false) =&gt; {</span>
3327
+ <span class="cstat-no" title="statement not covered" > (async () =&gt; {</span>
3328
+ <span class="cstat-no" title="statement not covered" > try {</span>
3329
+ <span class="cstat-no" title="statement not covered" > const dataMemento = {</span>
3330
+ <span class="cstat-no" title="statement not covered" > rate: swapRate,</span>
3331
+ <span class="cstat-no" title="statement not covered" > min: minimalAmount.current?.crypto,</span>
3332
+ <span class="cstat-no" title="statement not covered" > max: maximumAmount.current?.crypto,</span>
3333
+ <span class="cstat-no" title="statement not covered" > feeCoins: transactionFee?.crypto,</span>
3334
+ <span class="cstat-no" title="statement not covered" > feeFiat: transactionFee?.fiat,</span>
3335
+ <span class="cstat-no" title="statement not covered" > };</span>
3336
+ <span class="cstat-no" title="statement not covered" > setIsLoading(true);</span>
3337
+ <span class="cstat-no" title="statement not covered" > setMinimalAmount(null);</span>
3338
+ <span class="cstat-no" title="statement not covered" > setMaximumAmount(null);</span>
3339
+ <span class="cstat-no" title="statement not covered" > setTransactionFee(null);</span>
3340
+ <span class="cstat-no" title="statement not covered" > setValidationContent(null);</span>
3341
+ <span class="cstat-no" title="statement not covered" > setSwapCreationEstimation(null);</span>
3342
+ <span class="cstat-no" title="statement not covered" > setIsSameCoins(false);</span>
3343
+ <span class="cstat-no" title="statement not covered" > setIsPairSupported(true);</span>
3344
+ <span class="cstat-no" title="statement not covered" > setIsSwapCalculated(false);</span>
3345
+ <span class="cstat-no" title="statement not covered" ></span>
3346
+ <span class="cstat-no" title="statement not covered" > // Saving the selected coins at the moment, so we can cancel</span>
3347
+ <span class="cstat-no" title="statement not covered" > // the processing if they get changed during the loading.</span>
3348
+ <span class="cstat-no" title="statement not covered" > const currentSendingAssetTicker = sendingAssetTicker;</span>
3349
+ <span class="cstat-no" title="statement not covered" > const currentReceivingAssetTicker = receivingAssetTicker;</span>
3350
+ <span class="cstat-no" title="statement not covered" ></span>
3351
+ <span class="cstat-no" title="statement not covered" > const response = await retrieveSwapDetails(</span>
3352
+ <span class="cstat-no" title="statement not covered" > currentSendingAssetTicker,</span>
3353
+ <span class="cstat-no" title="statement not covered" > currentReceivingAssetTicker,</span>
3354
+ <span class="cstat-no" title="statement not covered" > amount,</span>
3355
+ <span class="cstat-no" title="statement not covered" > isSwapAll.current,</span>
3356
+ <span class="cstat-no" title="statement not covered" > isFixedRate.current ?? IS_FIXED_BY_DEFAULT,</span>
3357
+ <span class="cstat-no" title="statement not covered" > isFixedRate.current ? isLastEditedReceiving.current : false</span>
3358
+ <span class="cstat-no" title="statement not covered" > );</span>
3359
+ <span class="cstat-no" title="statement not covered" ></span>
3360
+ <span class="cstat-no" title="statement not covered" > if (</span>
3361
+ <span class="cstat-no" title="statement not covered" > currentSendingAssetTicker !== sendingAssetTickerReferred.current ||</span>
3362
+ <span class="cstat-no" title="statement not covered" > currentReceivingAssetTicker !== receivingAssetTickerReferred.current</span>
3363
+ <span class="cstat-no" title="statement not covered" > ) {</span>
3364
+ <span class="cstat-no" title="statement not covered" > // Cancelling the further processing in case the</span>
3365
+ <span class="cstat-no" title="statement not covered" > // selected coins were changed during the loading.</span>
3366
+ <span class="cstat-no" title="statement not covered" > return;</span>
3367
+ <span class="cstat-no" title="statement not covered" > }</span>
3368
+ <span class="cstat-no" title="statement not covered" ></span>
3369
+ <span class="cstat-no" title="statement not covered" > if (</span>
3370
+ <span class="cstat-no" title="statement not covered" > !isSwapAll.current &amp;&amp;</span>
3371
+ <span class="cstat-no" title="statement not covered" > String(amount) !==</span>
3372
+ <span class="cstat-no" title="statement not covered" > String(</span>
3373
+ <span class="cstat-no" title="statement not covered" > isForPreserved &amp;&amp; sendAssetAmount.current == null &amp;&amp; receiveAssetAmount.current == null</span>
3374
+ <span class="cstat-no" title="statement not covered" > ? preservedAmount</span>
3375
+ <span class="cstat-no" title="statement not covered" > : isFixedRate.current &amp;&amp; isLastEditedReceiving.current</span>
3376
+ <span class="cstat-no" title="statement not covered" > ? receiveAssetAmount.current</span>
3377
+ <span class="cstat-no" title="statement not covered" > : sendAssetAmount.current</span>
3378
+ <span class="cstat-no" title="statement not covered" > )</span>
3379
+ <span class="cstat-no" title="statement not covered" > ) {</span>
3380
+ <span class="cstat-no" title="statement not covered" > // Means amount changed and we no more need to do this exact calculation</span>
3381
+ <span class="cstat-no" title="statement not covered" > return;</span>
3382
+ <span class="cstat-no" title="statement not covered" > }</span>
3383
+ <span class="cstat-no" title="statement not covered" ></span>
3384
+ <span class="cstat-no" title="statement not covered" > if (response.result) {</span>
3385
+ <span class="cstat-no" title="statement not covered" > const swapCreationInfo = response?.swapCreationInfo;</span>
3386
+ <span class="cstat-no" title="statement not covered" ></span>
3387
+ <span class="cstat-no" title="statement not covered" > if (isSwapAll.current) {</span>
3388
+ <span class="cstat-no" title="statement not covered" > setIsAmountZero(BigNumber("0").eq(swapCreationInfo.fromAmountCoins));</span>
3389
+ <span class="cstat-no" title="statement not covered" > }</span>
3390
+ <span class="cstat-no" title="statement not covered" ></span>
3391
+ <span class="cstat-no" title="statement not covered" > setUpdateSendInputTo(swapCreationInfo.fromAmountCoins);</span>
3392
+ <span class="cstat-no" title="statement not covered" > setUpdateReceiveInputTo(swapCreationInfo.toAmountCoins);</span>
3393
+ <span class="cstat-no" title="statement not covered" ></span>
3394
+ <span class="cstat-no" title="statement not covered" > if (isLastEditedReceiving.current) {</span>
3395
+ <span class="cstat-no" title="statement not covered" > setSendAssetAmount(swapCreationInfo.fromAmountCoins);</span>
3396
+ <span class="cstat-no" title="statement not covered" > } else {</span>
3397
+ <span class="cstat-no" title="statement not covered" > setReceiveAssetAmount(swapCreationInfo.toAmountCoins);</span>
3398
+ <span class="cstat-no" title="statement not covered" > }</span>
3399
+ <span class="cstat-no" title="statement not covered" ></span>
3400
+ <span class="cstat-no" title="statement not covered" > setAmountLimitsAndRate(swapCreationInfo);</span>
3401
+ <span class="cstat-no" title="statement not covered" > setSwapCreationEstimation(swapCreationInfo);</span>
3402
+ <span class="cstat-no" title="statement not covered" > setIsRefundAddressRequired(swapCreationInfo?.isRefundAddressRequired);</span>
3403
+ <span class="cstat-no" title="statement not covered" > processMinMaxAmounts(isSwapAll.current ? swapCreationInfo.fromAmountCoins : amount);</span>
3404
+ <span class="cstat-no" title="statement not covered" > setIsSwapCalculated(true);</span>
3405
+ <span class="cstat-no" title="statement not covered" > } else {</span>
3406
+ <span class="cstat-no" title="statement not covered" > handleSwapServiceError(</span>
3407
+ <span class="cstat-no" title="statement not covered" > response.reason,</span>
3408
+ <span class="cstat-no" title="statement not covered" > setValidationContent,</span>
3409
+ <span class="cstat-no" title="statement not covered" > setBalanceValid,</span>
3410
+ <span class="cstat-no" title="statement not covered" > setMinimalAmountValid,</span>
3411
+ <span class="cstat-no" title="statement not covered" > setMaximumAmountValid,</span>
3412
+ <span class="cstat-no" title="statement not covered" > setIsPairSupported,</span>
3413
+ <span class="cstat-no" title="statement not covered" > setIsSameCoins</span>
3414
+ <span class="cstat-no" title="statement not covered" > );</span>
3415
+ <span class="cstat-no" title="statement not covered" > if (isSwapAll.current) {</span>
3416
+ <span class="cstat-no" title="statement not covered" > /* We disable swap all if swap all details retrieval fails and set</span>
3417
+ <span class="cstat-no" title="statement not covered" > * previous limits and rate. We set null to avoid triggering reloading of initial data.</span>
3418
+ <span class="cstat-no" title="statement not covered" > */</span>
3419
+ <span class="cstat-no" title="statement not covered" > setIsSwapAll(null);</span>
3420
+ <span class="cstat-no" title="statement not covered" > setAmountLimitsAndRate(dataMemento);</span>
3421
+ <span class="cstat-no" title="statement not covered" > } else {</span>
3422
+ <span class="cstat-no" title="statement not covered" > /* We set returned amount limits and rate only if the failed details retrieval is not</span>
3423
+ <span class="cstat-no" title="statement not covered" > * for the swap All case.</span>
3424
+ <span class="cstat-no" title="statement not covered" > */</span>
3425
+ <span class="cstat-no" title="statement not covered" > setAmountLimitsAndRate(response);</span>
3426
+ <span class="cstat-no" title="statement not covered" > if (isLastEditedReceiving.current) {</span>
3427
+ <span class="cstat-no" title="statement not covered" > setSendAssetAmount("");</span>
3428
+ <span class="cstat-no" title="statement not covered" > } else {</span>
3429
+ <span class="cstat-no" title="statement not covered" > setReceiveAssetAmount("");</span>
3430
+ <span class="cstat-no" title="statement not covered" > }</span>
3431
+ <span class="cstat-no" title="statement not covered" > }</span>
3432
+ <span class="cstat-no" title="statement not covered" > }</span>
3433
+ <span class="cstat-no" title="statement not covered" > setIsLoading(false);</span>
3434
+ <span class="cstat-no" title="statement not covered" > } catch (e) {</span>
3435
+ <span class="cstat-no" title="statement not covered" > handleUnexpectedError(e);</span>
3436
+ <span class="cstat-no" title="statement not covered" > }</span>
3437
+ <span class="cstat-no" title="statement not covered" > })();</span>
3438
+ <span class="cstat-no" title="statement not covered" > };</span>
3439
+ <span class="cstat-no" title="statement not covered" ></span>
3440
+ <span class="cstat-no" title="statement not covered" > const loadMinimalAmountAndSwapRate = (isCalledForClearedInput = false) =&gt; {</span>
3441
+ <span class="cstat-no" title="statement not covered" > (async () =&gt; {</span>
3442
+ <span class="cstat-no" title="statement not covered" > try {</span>
3443
+ <span class="cstat-no" title="statement not covered" > setIsLoading(true);</span>
3444
+ <span class="cstat-no" title="statement not covered" > setMinimalAmount(null);</span>
3445
+ <span class="cstat-no" title="statement not covered" > setMaximumAmount(null);</span>
3446
+ <span class="cstat-no" title="statement not covered" > setSwapRate(null);</span>
3447
+ <span class="cstat-no" title="statement not covered" > setValidationContent(null);</span>
3448
+ <span class="cstat-no" title="statement not covered" > setIsPairSupported(true);</span>
3449
+ <span class="cstat-no" title="statement not covered" > setIsSwapCalculated(false);</span>
3450
+ <span class="cstat-no" title="statement not covered" ></span>
3451
+ <span class="cstat-no" title="statement not covered" > const swapData = await retrieveInitialSwapData(sendingAssetTicker, receivingAssetTicker);</span>
3452
+ <span class="cstat-no" title="statement not covered" ></span>
3453
+ <span class="cstat-no" title="statement not covered" > if (</span>
3454
+ <span class="cstat-no" title="statement not covered" > (isFixedRate.current &amp;&amp; isLastEditedReceiving.current</span>
3455
+ <span class="cstat-no" title="statement not covered" > ? receiveAssetAmount.current != null</span>
3456
+ <span class="cstat-no" title="statement not covered" > : sendAssetAmount.current != null) &amp;&amp;</span>
3457
+ <span class="cstat-no" title="statement not covered" > !isCalledForClearedInput</span>
3458
+ <span class="cstat-no" title="statement not covered" > ) {</span>
3459
+ <span class="cstat-no" title="statement not covered" > // Means user already entered amount after starting the form initialization</span>
3460
+ <span class="cstat-no" title="statement not covered" > return;</span>
3461
+ <span class="cstat-no" title="statement not covered" > }</span>
3462
+ <span class="cstat-no" title="statement not covered" ></span>
3463
+ <span class="cstat-no" title="statement not covered" > if (swapData.result === true) {</span>
3464
+ <span class="cstat-no" title="statement not covered" > setAmountLimitsAndRate(swapData);</span>
3465
+ <span class="cstat-no" title="statement not covered" > } else {</span>
3466
+ <span class="cstat-no" title="statement not covered" > handleSwapServiceError(</span>
3467
+ <span class="cstat-no" title="statement not covered" > swapData.reason,</span>
3468
+ <span class="cstat-no" title="statement not covered" > setValidationContent,</span>
3469
+ <span class="cstat-no" title="statement not covered" > setBalanceValid,</span>
3470
+ <span class="cstat-no" title="statement not covered" > setMinimalAmountValid,</span>
3471
+ <span class="cstat-no" title="statement not covered" > setMaximumAmountValid,</span>
3472
+ <span class="cstat-no" title="statement not covered" > setIsPairSupported,</span>
3473
+ <span class="cstat-no" title="statement not covered" > setIsSameCoins</span>
3474
+ <span class="cstat-no" title="statement not covered" > );</span>
3475
+ <span class="cstat-no" title="statement not covered" > }</span>
3476
+ <span class="cstat-no" title="statement not covered" ></span>
3477
+ <span class="cstat-no" title="statement not covered" > setIsLoading(false);</span>
3478
+ <span class="cstat-no" title="statement not covered" > } catch (e) {</span>
3479
+ <span class="cstat-no" title="statement not covered" > handleUnexpectedError(e);</span>
3480
+ <span class="cstat-no" title="statement not covered" > }</span>
3481
+ <span class="cstat-no" title="statement not covered" > })();</span>
3482
+ <span class="cstat-no" title="statement not covered" > };</span>
3483
+ <span class="cstat-no" title="statement not covered" ></span>
3484
+ <span class="cstat-no" title="statement not covered" > const handleChangeAssetsIconClick = e =&gt; {</span>
3485
+ <span class="cstat-no" title="statement not covered" > callHandlingErrors(() =&gt; {</span>
3486
+ <span class="cstat-no" title="statement not covered" > if (!isLoading.current) {</span>
3487
+ <span class="cstat-no" title="statement not covered" > setIsSwapAll(null);</span>
3488
+ <span class="cstat-no" title="statement not covered" > setMaximumAmountValid(true);</span>
3489
+ <span class="cstat-no" title="statement not covered" > setMinimalAmountValid(true);</span>
3490
+ <span class="cstat-no" title="statement not covered" ></span>
3491
+ <span class="cstat-no" title="statement not covered" > const sendAssetAmountMemento = sendAssetAmount.current;</span>
3492
+ <span class="cstat-no" title="statement not covered" > const receiveAssetAmountMemento = receiveAssetAmount.current;</span>
3493
+ <span class="cstat-no" title="statement not covered" ></span>
3494
+ <span class="cstat-no" title="statement not covered" > if (isLastEditedReceiving.current) {</span>
3495
+ <span class="cstat-no" title="statement not covered" > setSendAssetAmount("");</span>
3496
+ <span class="cstat-no" title="statement not covered" > setUpdateSendInputTo("");</span>
3497
+ <span class="cstat-no" title="statement not covered" ></span>
3498
+ <span class="cstat-no" title="statement not covered" > setReceiveAssetAmount(sendAssetAmountMemento);</span>
3499
+ <span class="cstat-no" title="statement not covered" > setUpdateReceiveInputTo(sendAssetAmountMemento);</span>
3500
+ <span class="cstat-no" title="statement not covered" > } else {</span>
3501
+ <span class="cstat-no" title="statement not covered" > setSendAssetAmount(receiveAssetAmountMemento);</span>
3502
+ <span class="cstat-no" title="statement not covered" > setUpdateSendInputTo(receiveAssetAmountMemento);</span>
3503
+ <span class="cstat-no" title="statement not covered" ></span>
3504
+ <span class="cstat-no" title="statement not covered" > setReceiveAssetAmount("");</span>
3505
+ <span class="cstat-no" title="statement not covered" > setUpdateReceiveInputTo("");</span>
3506
+ <span class="cstat-no" title="statement not covered" > }</span>
3507
+ <span class="cstat-no" title="statement not covered" ></span>
3508
+ <span class="cstat-no" title="statement not covered" > rotateAssets(sendingAssetTicker, receivingAssetTicker);</span>
3509
+ <span class="cstat-no" title="statement not covered" > }</span>
3510
+ <span class="cstat-no" title="statement not covered" > }, e);</span>
3511
+ <span class="cstat-no" title="statement not covered" > };</span>
3512
+ <span class="cstat-no" title="statement not covered" ></span>
3513
+ <span class="cstat-no" title="statement not covered" > const handleRateModeChanged = isFixed =&gt; {</span>
3514
+ <span class="cstat-no" title="statement not covered" > setIsFixedRate(isFixed);</span>
3515
+ <span class="cstat-no" title="statement not covered" > requestDataRefresh(</span>
3516
+ <span class="cstat-no" title="statement not covered" > isLastEditedReceiving.current ? receiveAssetAmount.current : sendAssetAmount.current,</span>
3517
+ <span class="cstat-no" title="statement not covered" > true,</span>
3518
+ <span class="cstat-no" title="statement not covered" > null,</span>
3519
+ <span class="cstat-no" title="statement not covered" > true</span>
3520
+ <span class="cstat-no" title="statement not covered" > );</span>
3521
+ <span class="cstat-no" title="statement not covered" > };</span>
3522
+ <span class="cstat-no" title="statement not covered" ></span>
3523
+ <span class="cstat-no" title="statement not covered" > useEffect(() =&gt; {</span>
3524
+ <span class="cstat-no" title="statement not covered" > if (isSwapAll.current === true) {</span>
3525
+ <span class="cstat-no" title="statement not covered" > requestDataRefresh(undefined, true, true);</span>
3526
+ <span class="cstat-no" title="statement not covered" > } else if (isSwapAll.current === false) {</span>
3527
+ <span class="cstat-no" title="statement not covered" > loadMinimalAmountAndSwapRate();</span>
3528
+ <span class="cstat-no" title="statement not covered" > }</span>
3529
+ <span class="cstat-no" title="statement not covered" > // eslint-disable-next-line react-hooks/exhaustive-deps</span>
3530
+ <span class="cstat-no" title="statement not covered" > }, [isSwapAll.current]);</span>
3531
+ <span class="cstat-no" title="statement not covered" ></span>
3532
+ <span class="cstat-no" title="statement not covered" > useEffect(() =&gt; {</span>
3533
+ <span class="cstat-no" title="statement not covered" > onIsFixedChange(isFixedRate.current);</span>
3534
+ <span class="cstat-no" title="statement not covered" > if (!isFixedRate.current) setIsLastEditedReceiving(false);</span>
3535
+ <span class="cstat-no" title="statement not covered" > // eslint-disable-next-line react-hooks/exhaustive-deps</span>
3536
+ <span class="cstat-no" title="statement not covered" > }, [isFixedRate.current]);</span>
3537
+ <span class="cstat-no" title="statement not covered" ></span>
3538
+ <span class="cstat-no" title="statement not covered" > useEffect(() =&gt; {</span>
3539
+ <span class="cstat-no" title="statement not covered" > if (!sendingAssetTicker || !receivingAssetTicker) return;</span>
3540
+ <span class="cstat-no" title="statement not covered" ></span>
3541
+ <span class="cstat-no" title="statement not covered" > const currentAmount = isLastEditedReceiving.current ? receiveAssetAmount.current : sendAssetAmount.current;</span>
3542
+ <span class="cstat-no" title="statement not covered" ></span>
3543
+ <span class="cstat-no" title="statement not covered" > const isCurrentAmountNotZero = currentAmount &amp;&amp; !BigNumber("0").eq(currentAmount);</span>
3544
+ <span class="cstat-no" title="statement not covered" > if (isCurrentAmountNotZero) {</span>
3545
+ <span class="cstat-no" title="statement not covered" > loadFullEstimation(currentAmount);</span>
3546
+ <span class="cstat-no" title="statement not covered" > } else {</span>
3547
+ <span class="cstat-no" title="statement not covered" > loadMinimalAmountAndSwapRate(true);</span>
3548
+ <span class="cstat-no" title="statement not covered" > }</span>
3549
+ <span class="cstat-no" title="statement not covered" ></span>
3550
+ <span class="cstat-no" title="statement not covered" > // eslint-disable-next-line react-hooks/exhaustive-deps</span>
3551
+ <span class="cstat-no" title="statement not covered" > }, [sendingAssetTicker, receivingAssetTicker]);</span>
3552
+ <span class="cstat-no" title="statement not covered" ></span>
3553
+ <span class="cstat-no" title="statement not covered" > useEffect(() =&gt; {</span>
3554
+ <span class="cstat-no" title="statement not covered" > if (!minimalAmountValid || isAmountZero) {</span>
3555
+ <span class="cstat-no" title="statement not covered" > setTransactionFee(null);</span>
3556
+ <span class="cstat-no" title="statement not covered" > }</span>
3557
+ <span class="cstat-no" title="statement not covered" > if (isAmountZero) {</span>
3558
+ <span class="cstat-no" title="statement not covered" > clearTimeout(dataUpdateTimeoutId.current);</span>
3559
+ <span class="cstat-no" title="statement not covered" > }</span>
3560
+ <span class="cstat-no" title="statement not covered" ></span>
3561
+ <span class="cstat-no" title="statement not covered" > setReadyToSwap(</span>
3562
+ <span class="cstat-no" title="statement not covered" > swapButtonAlwaysActive ||</span>
3563
+ <span class="cstat-no" title="statement not covered" > ((balanceValid || !formHasBalance) &amp;&amp;</span>
3564
+ <span class="cstat-no" title="statement not covered" > minimalAmountValid &amp;&amp;</span>
3565
+ <span class="cstat-no" title="statement not covered" > !isAmountZero &amp;&amp;</span>
3566
+ <span class="cstat-no" title="statement not covered" > isSwapCalculated &amp;&amp;</span>
3567
+ <span class="cstat-no" title="statement not covered" > (!isSameCoins || !formHasBalance) &amp;&amp;</span>
3568
+ <span class="cstat-no" title="statement not covered" > isPairSupported &amp;&amp;</span>
3569
+ <span class="cstat-no" title="statement not covered" > (!isAddressFieldEnabled || isRecipientAddressValid.current) &amp;&amp;</span>
3570
+ <span class="cstat-no" title="statement not covered" > (!isRefundAddressRequired || isRefundAddressValid.current))</span>
3571
+ <span class="cstat-no" title="statement not covered" > );</span>
3572
+ <span class="cstat-no" title="statement not covered" > // eslint-disable-next-line react-hooks/exhaustive-deps</span>
3573
+ <span class="cstat-no" title="statement not covered" > }, [</span>
3574
+ <span class="cstat-no" title="statement not covered" > balanceValid,</span>
3575
+ <span class="cstat-no" title="statement not covered" > formHasBalance,</span>
3576
+ <span class="cstat-no" title="statement not covered" > minimalAmountValid,</span>
3577
+ <span class="cstat-no" title="statement not covered" > isAmountZero,</span>
3578
+ <span class="cstat-no" title="statement not covered" > isSwapCalculated,</span>
3579
+ <span class="cstat-no" title="statement not covered" > isSameCoins,</span>
3580
+ <span class="cstat-no" title="statement not covered" > isPairSupported,</span>
3581
+ <span class="cstat-no" title="statement not covered" > isAddressFieldEnabled,</span>
3582
+ <span class="cstat-no" title="statement not covered" > isRecipientAddressValid.current,</span>
3583
+ <span class="cstat-no" title="statement not covered" > isRefundAddressRequired,</span>
3584
+ <span class="cstat-no" title="statement not covered" > isRefundAddressValid.current,</span>
3585
+ <span class="cstat-no" title="statement not covered" > ]);</span>
3586
+ <span class="cstat-no" title="statement not covered" ></span>
3587
+ <span class="cstat-no" title="statement not covered" > useEffect(() =&gt; {</span>
3588
+ <span class="cstat-no" title="statement not covered" > setIsRecipientAddressValid(false);</span>
3589
+ <span class="cstat-no" title="statement not covered" > setRecipientAddress("");</span>
3590
+ <span class="cstat-no" title="statement not covered" > setRecipientAddressExtraId("");</span>
3591
+ <span class="cstat-no" title="statement not covered" > // eslint-disable-next-line react-hooks/exhaustive-deps</span>
3592
+ <span class="cstat-no" title="statement not covered" > }, [receivingAssetTicker]);</span>
3593
+ <span class="cstat-no" title="statement not covered" ></span>
3594
+ <span class="cstat-no" title="statement not covered" > useEffect(() =&gt; {</span>
3595
+ <span class="cstat-no" title="statement not covered" > setIsRefundAddressValid(false);</span>
3596
+ <span class="cstat-no" title="statement not covered" > setRefundAddress("");</span>
3597
+ <span class="cstat-no" title="statement not covered" > setRefundAddressExtraId("");</span>
3598
+ <span class="cstat-no" title="statement not covered" > // eslint-disable-next-line react-hooks/exhaustive-deps</span>
3599
+ <span class="cstat-no" title="statement not covered" > }, [sendingAssetTicker]);</span>
3600
+ <span class="cstat-no" title="statement not covered" ></span>
3601
+ <span class="cstat-no" title="statement not covered" > useEffect(() =&gt; {</span>
3602
+ <span class="cstat-no" title="statement not covered" > (async () =&gt; {</span>
3603
+ <span class="cstat-no" title="statement not covered" > if (!receivingAssetTicker) return;</span>
3604
+ <span class="cstat-no" title="statement not covered" > setIsRecipientAddressValid(</span>
3605
+ <span class="cstat-no" title="statement not covered" > recipientAddress.current === ""</span>
3606
+ <span class="cstat-no" title="statement not covered" > ? false</span>
3607
+ <span class="cstat-no" title="statement not covered" > : await validateAddressByTicker(receivingAssetTicker, recipientAddress.current, isFixedRate.current)</span>
3608
+ <span class="cstat-no" title="statement not covered" > );</span>
3609
+ <span class="cstat-no" title="statement not covered" > })();</span>
3610
+ <span class="cstat-no" title="statement not covered" > // eslint-disable-next-line react-hooks/exhaustive-deps</span>
3611
+ <span class="cstat-no" title="statement not covered" > }, [recipientAddress.current, recipientAddressExtraId.current, receivingAssetTicker]);</span>
3612
+ <span class="cstat-no" title="statement not covered" ></span>
3613
+ <span class="cstat-no" title="statement not covered" > useEffect(() =&gt; {</span>
3614
+ <span class="cstat-no" title="statement not covered" > (async () =&gt; {</span>
3615
+ <span class="cstat-no" title="statement not covered" > if (!sendingAssetTicker || !isRefundAddressRequired) return;</span>
3616
+ <span class="cstat-no" title="statement not covered" > setIsRefundAddressValid(</span>
3617
+ <span class="cstat-no" title="statement not covered" > refundAddress.current === ""</span>
3618
+ <span class="cstat-no" title="statement not covered" > ? false</span>
3619
+ <span class="cstat-no" title="statement not covered" > : await validateAddressByTicker(sendingAssetTicker, refundAddress.current, isFixedRate.current)</span>
3620
+ <span class="cstat-no" title="statement not covered" > );</span>
3621
+ <span class="cstat-no" title="statement not covered" > })();</span>
3622
+ <span class="cstat-no" title="statement not covered" > // eslint-disable-next-line react-hooks/exhaustive-deps</span>
3623
+ <span class="cstat-no" title="statement not covered" > }, [refundAddress.current, refundAddressExtraId.current, sendingAssetTicker, isRefundAddressRequired]);</span>
3624
+ <span class="cstat-no" title="statement not covered" ></span>
3625
+ <span class="cstat-no" title="statement not covered" > useEffect(() =&gt; {</span>
3626
+ <span class="cstat-no" title="statement not covered" > // Here we set up auto recalculations for the swap details if the form is ready to swap but is idle for some time</span>
3627
+ <span class="cstat-no" title="statement not covered" > let timeoutId = null;</span>
3628
+ <span class="cstat-no" title="statement not covered" > if (readyToSwap) {</span>
3629
+ <span class="cstat-no" title="statement not covered" > timeoutId = setTimeout(</span>
3630
+ <span class="cstat-no" title="statement not covered" > () =&gt;</span>
3631
+ <span class="cstat-no" title="statement not covered" > requestDataRefresh(</span>
3632
+ <span class="cstat-no" title="statement not covered" > isLastEditedReceiving.current</span>
3633
+ <span class="cstat-no" title="statement not covered" > ? receiveAssetAmount.current</span>
3634
+ <span class="cstat-no" title="statement not covered" > : sendAssetAmount.current ?? preservedAmount,</span>
3635
+ <span class="cstat-no" title="statement not covered" > true</span>
3636
+ <span class="cstat-no" title="statement not covered" > ),</span>
3637
+ <span class="cstat-no" title="statement not covered" > DETAIL_REFRESH_INTERVAL_MS</span>
3638
+ <span class="cstat-no" title="statement not covered" > );</span>
3639
+ <span class="cstat-no" title="statement not covered" > setIdleDataUpdateTimeoutId(timeoutId);</span>
3640
+ <span class="cstat-no" title="statement not covered" > } else {</span>
3641
+ <span class="cstat-no" title="statement not covered" > clearTimeout(idleDataUpdateTimeoutId.current);</span>
3642
+ <span class="cstat-no" title="statement not covered" > setIdleDataUpdateTimeoutId(null);</span>
3643
+ <span class="cstat-no" title="statement not covered" > }</span>
3644
+ <span class="cstat-no" title="statement not covered" > return () =&gt; {</span>
3645
+ <span class="cstat-no" title="statement not covered" > timeoutId != null &amp;&amp; clearTimeout(timeoutId);</span>
3646
+ <span class="cstat-no" title="statement not covered" > };</span>
3647
+ <span class="cstat-no" title="statement not covered" > // eslint-disable-next-line react-hooks/exhaustive-deps</span>
3648
+ <span class="cstat-no" title="statement not covered" > }, [readyToSwap]);</span>
3649
+ <span class="cstat-no" title="statement not covered" ></span>
3650
+ <span class="cstat-no" title="statement not covered" > // TODO: [refactoring, critical] this code looks like a hack related to task_id=6e328d39063142b7b9fa01d497e616da</span>
3651
+ <span class="cstat-no" title="statement not covered" > useEffect(() =&gt; {</span>
3652
+ <span class="cstat-no" title="statement not covered" > if (triggerDataUpdateResetting) {</span>
3653
+ <span class="cstat-no" title="statement not covered" > clearTimeout(dataUpdateTimeoutId.current);</span>
3654
+ <span class="cstat-no" title="statement not covered" > setDataUpdateTimeoutId(null);</span>
3655
+ <span class="cstat-no" title="statement not covered" ></span>
3656
+ <span class="cstat-no" title="statement not covered" > clearTimeout(idleDataUpdateTimeoutId.current);</span>
3657
+ <span class="cstat-no" title="statement not covered" > setIdleDataUpdateTimeoutId(null);</span>
3658
+ <span class="cstat-no" title="statement not covered" > }</span>
3659
+ <span class="cstat-no" title="statement not covered" > // eslint-disable-next-line react-hooks/exhaustive-deps</span>
3660
+ <span class="cstat-no" title="statement not covered" > }, [triggerDataUpdateResetting]);</span>
3661
+ <span class="cstat-no" title="statement not covered" ></span>
3662
+ <span class="cstat-no" title="statement not covered" > // Resets the passed "set value to" param to null, so it can be used multiple times with any value</span>
3663
+ <span class="cstat-no" title="statement not covered" > useEffect(() =&gt; {</span>
3664
+ <span class="cstat-no" title="statement not covered" > if (!!updateSendInputTo) setUpdateSendInputTo(null);</span>
3665
+ <span class="cstat-no" title="statement not covered" > if (!!updateReceiveInputTo) setUpdateReceiveInputTo(null);</span>
3666
+ <span class="cstat-no" title="statement not covered" > // eslint-disable-next-line react-hooks/exhaustive-deps</span>
3667
+ <span class="cstat-no" title="statement not covered" > }, [updateSendInputTo, updateReceiveInputTo]);</span>
3668
+ <span class="cstat-no" title="statement not covered" ></span>
3669
+ <span class="cstat-no" title="statement not covered" > useEffect(() =&gt; {</span>
3670
+ <span class="cstat-no" title="statement not covered" > if (</span>
3671
+ <span class="cstat-no" title="statement not covered" > swapRate != null &amp;&amp;</span>
3672
+ <span class="cstat-no" title="statement not covered" > (isLastEditedReceiving.current ? receiveAssetAmount.current : sendAssetAmount.current) != null</span>
3673
+ <span class="cstat-no" title="statement not covered" > ) {</span>
3674
+ <span class="cstat-no" title="statement not covered" > if (isLastEditedReceiving.current) {</span>
3675
+ <span class="cstat-no" title="statement not covered" > setUpdateSendInputTo(</span>
3676
+ <span class="cstat-no" title="statement not covered" > AmountUtils.trim(BigNumber(receiveAssetAmount.current).div(swapRate), sendingAssetDecimalCount)</span>
3677
+ <span class="cstat-no" title="statement not covered" > );</span>
3678
+ <span class="cstat-no" title="statement not covered" > } else {</span>
3679
+ <span class="cstat-no" title="statement not covered" > setUpdateReceiveInputTo(</span>
3680
+ <span class="cstat-no" title="statement not covered" > AmountUtils.trim(BigNumber(sendAssetAmount.current).times(swapRate), receivingAssetDecimalCount)</span>
3681
+ <span class="cstat-no" title="statement not covered" > );</span>
3682
+ <span class="cstat-no" title="statement not covered" > }</span>
3683
+ <span class="cstat-no" title="statement not covered" > }</span>
3684
+ <span class="cstat-no" title="statement not covered" > // eslint-disable-next-line react-hooks/exhaustive-deps</span>
3685
+ <span class="cstat-no" title="statement not covered" > }, [swapRate]);</span>
3686
+ <span class="cstat-no" title="statement not covered" ></span>
3687
+ <span class="cstat-no" title="statement not covered" > useEffect(() =&gt; {</span>
3688
+ <span class="cstat-no" title="statement not covered" > if (isLoading.current === false &amp;&amp; swapAllButtonLoaderReSetter?.length) {</span>
3689
+ <span class="cstat-no" title="statement not covered" > swapAllButtonLoaderReSetter[0]();</span>
3690
+ <span class="cstat-no" title="statement not covered" > setSwapAllButtonLoaderReSetter([]);</span>
3691
+ <span class="cstat-no" title="statement not covered" > }</span>
3692
+ <span class="cstat-no" title="statement not covered" > // eslint-disable-next-line react-hooks/exhaustive-deps</span>
3693
+ <span class="cstat-no" title="statement not covered" > }, [isLoading.current, swapAllButtonLoaderReSetter]);</span>
3694
+ <span class="cstat-no" title="statement not covered" ></span>
3695
+ <span class="cstat-no" title="statement not covered" > const handleAmountChange = amount =&gt; {</span>
3696
+ <span class="cstat-no" title="statement not covered" > requestDataRefresh(amount);</span>
3697
+ <span class="cstat-no" title="statement not covered" > processMinMaxAmounts(amount);</span>
3698
+ <span class="cstat-no" title="statement not covered" > setIsAmountZero(BigNumber("0").eq(amount));</span>
3699
+ <span class="cstat-no" title="statement not covered" > setIsSwapCalculated(false);</span>
3700
+ <span class="cstat-no" title="statement not covered" > };</span>
3701
+ <span class="cstat-no" title="statement not covered" ></span>
3702
+ <span class="cstat-no" title="statement not covered" > useEffect(() =&gt; {</span>
3703
+ <span class="cstat-no" title="statement not covered" > if (isLastEditedReceiving.current)</span>
3704
+ <span class="cstat-no" title="statement not covered" > handleAmountChange(receiveAssetAmount.current === "" ? "0" : receiveAssetAmount.current);</span>
3705
+ <span class="cstat-no" title="statement not covered" > }, [receiveAssetAmount.current]);</span>
3706
+ <span class="cstat-no" title="statement not covered" ></span>
3707
+ <span class="cstat-no" title="statement not covered" > useEffect(() =&gt; {</span>
3708
+ <span class="cstat-no" title="statement not covered" > if (!isLastEditedReceiving.current)</span>
3709
+ <span class="cstat-no" title="statement not covered" > handleAmountChange(sendAssetAmount.current === "" ? "0" : sendAssetAmount.current);</span>
3710
+ <span class="cstat-no" title="statement not covered" > }, [sendAssetAmount.current]);</span>
3711
+ <span class="cstat-no" title="statement not covered" ></span>
3712
+ <span class="cstat-no" title="statement not covered" > const recipientAddressExtraIdName = getExtraIdNameByTicker(receivingAssetTicker);</span>
3713
+ <span class="cstat-no" title="statement not covered" > const refundAddressExtraIdName = getExtraIdNameByTicker(sendingAssetTicker);</span>
3714
+ <span class="cstat-no" title="statement not covered" ></span>
3715
+ <span class="cstat-no" title="statement not covered" > return (</span>
3716
+ <span class="cstat-no" title="statement not covered" > &lt;div className={s["swap-form"]}&gt;</span>
3717
+ <span class="cstat-no" title="statement not covered" > &lt;TitleBox</span>
3718
+ <span class="cstat-no" title="statement not covered" > linkButtonClick={</span>
3719
+ <span class="cstat-no" title="statement not covered" > BigNumber(sendingAssetBalance?.assetAmount).eq(0)</span>
3720
+ <span class="cstat-no" title="statement not covered" > ? null</span>
3721
+ <span class="cstat-no" title="statement not covered" > : resetButtonLoader =&gt; handleSwapAllClick(resetButtonLoader)</span>
3722
+ <span class="cstat-no" title="statement not covered" > }</span>
3723
+ <span class="cstat-no" title="statement not covered" > linkText={</span>
3724
+ <span class="cstat-no" title="statement not covered" > !formHasBalance</span>
3725
+ <span class="cstat-no" title="statement not covered" > ? ""</span>
3726
+ <span class="cstat-no" title="statement not covered" > : isSwapAll.current</span>
3727
+ <span class="cstat-no" title="statement not covered" > ? translations.swapAllButtonTitles.cancel</span>
3728
+ <span class="cstat-no" title="statement not covered" > : translations.swapAllButtonTitles.enable</span>
3729
+ <span class="cstat-no" title="statement not covered" > }</span>
3730
+ <span class="cstat-no" title="statement not covered" > linkButtonLoader={true}</span>
3731
+ <span class="cstat-no" title="statement not covered" > isLinkButtonDisabled={</span>
3732
+ <span class="cstat-no" title="statement not covered" > isLoading.current ||</span>
3733
+ <span class="cstat-no" title="statement not covered" > sendingAssetTicker === receivingAssetTicker ||</span>
3734
+ <span class="cstat-no" title="statement not covered" > BigNumber(sendingAssetBalance?.assetAmount).eq(0)</span>
3735
+ <span class="cstat-no" title="statement not covered" > }</span>
3736
+ <span class="cstat-no" title="statement not covered" > &gt;</span>
3737
+ <span class="cstat-no" title="statement not covered" > {displayRateSelector ? (</span>
3738
+ <span class="cstat-no" title="statement not covered" > &lt;div className={s["swap-form-rate-selector"]}&gt;</span>
3739
+ <span class="cstat-no" title="statement not covered" > &lt;RateSelector</span>
3740
+ <span class="cstat-no" title="statement not covered" > isFixed={isFixedRate.current ?? IS_FIXED_BY_DEFAULT}</span>
3741
+ <span class="cstat-no" title="statement not covered" > setIsFixed={handleRateModeChanged}</span>
3742
+ <span class="cstat-no" title="statement not covered" > translations={translations.rateSelector}</span>
3743
+ <span class="cstat-no" title="statement not covered" > /&gt;</span>
3744
+ <span class="cstat-no" title="statement not covered" > &lt;/div&gt;</span>
3745
+ <span class="cstat-no" title="statement not covered" > ) : (</span>
3746
+ <span class="cstat-no" title="statement not covered" > ""</span>
3747
+ <span class="cstat-no" title="statement not covered" > )}</span>
3748
+ <span class="cstat-no" title="statement not covered" ></span>
3749
+ <span class="cstat-no" title="statement not covered" > &lt;div className={s["swap-form-inputs"]}&gt;</span>
3750
+ <span class="cstat-no" title="statement not covered" > &lt;AmountInput</span>
3751
+ <span class="cstat-no" title="statement not covered" > ticker={sendingAssetTicker}</span>
3752
+ <span class="cstat-no" title="statement not covered" > tickerPrintable={sendingAssetTickerPrintable}</span>
3753
+ <span class="cstat-no" title="statement not covered" > assetDecimalPlaces={sendingAssetDecimalCount}</span>
3754
+ <span class="cstat-no" title="statement not covered" > assetBalance={sendingAssetBalance}</span>
3755
+ <span class="cstat-no" title="statement not covered" > assetIconSrc={sendingAssetIconSrc}</span>
3756
+ <span class="cstat-no" title="statement not covered" > assetIconProtocolSrc={sendingAssetProtocolIconSrc}</span>
3757
+ <span class="cstat-no" title="statement not covered" > fallbackAssetIconSrc={fallBackAssetIconSrc}</span>
3758
+ <span class="cstat-no" title="statement not covered" > disabled={isSwapAll.current || sendingAssetTicker === null || receivingAssetTicker === null}</span>
3759
+ <span class="cstat-no" title="statement not covered" > handleCoinAmountChange={handleSendAssetAmountChange}</span>
3760
+ <span class="cstat-no" title="statement not covered" > handleChangeAssetClick={handleChangeSendingAssetClick}</span>
3761
+ <span class="cstat-no" title="statement not covered" > handleBalanceValidationChange={isValid =&gt; setBalanceValid(!isValid)}</span>
3762
+ <span class="cstat-no" title="statement not covered" > updateAssetInputTo={updateSendInputTo}</span>
3763
+ <span class="cstat-no" title="statement not covered" > showBalance={formHasBalance}</span>
3764
+ <span class="cstat-no" title="statement not covered" > showBalanceValidation={formHasBalance}</span>
3765
+ <span class="cstat-no" title="statement not covered" > showChangeAssetButton</span>
3766
+ <span class="cstat-no" title="statement not covered" > changeAssetButtonProtocol={sendingAssetProtocol}</span>
3767
+ <span class="cstat-no" title="statement not covered" > upperFormPosition</span>
3768
+ <span class="cstat-no" title="statement not covered" > errorEncountered={</span>
3769
+ <span class="cstat-no" title="statement not covered" > !isLastEditedReceiving.current &amp;&amp; (!minimalAmountValid || !maximumAmountValid)</span>
3770
+ <span class="cstat-no" title="statement not covered" > }</span>
3771
+ <span class="cstat-no" title="statement not covered" > ref={fromAssetSelectionButtonRef}</span>
3772
+ <span class="cstat-no" title="statement not covered" > isLoading={isLastEditedReceiving.current ? isLoading.current : false}</span>
3773
+ <span class="cstat-no" title="statement not covered" > cryptoAssetToFiatRate={sendingAssetToFiatRate}</span>
3774
+ <span class="cstat-no" title="statement not covered" > fiatCurrencyCode={</span>
3775
+ <span class="cstat-no" title="statement not covered" > formHasFiat &amp;&amp; (isLoading.current || sendingAssetToFiatRate != null)</span>
3776
+ <span class="cstat-no" title="statement not covered" > ? fiatCurrencyCode</span>
3777
+ <span class="cstat-no" title="statement not covered" > : null</span>
3778
+ <span class="cstat-no" title="statement not covered" > }</span>
3779
+ <span class="cstat-no" title="statement not covered" > fiatCurrencyDecimals={fiatCurrencyDecimals}</span>
3780
+ <span class="cstat-no" title="statement not covered" > balanceLoaderText={translations.input.balanceLoaderText}</span>
3781
+ <span class="cstat-no" title="statement not covered" > fiatInputPlaceholderText={translations.input.fiatPlaceholder}</span>
3782
+ <span class="cstat-no" title="statement not covered" > /&gt;</span>
3783
+ <span class="cstat-no" title="statement not covered" > &lt;div</span>
3784
+ <span class="cstat-no" title="statement not covered" > className={</span>
3785
+ <span class="cstat-no" title="statement not covered" > s["swap-form-inputs-separator"] +</span>
3786
+ <span class="cstat-no" title="statement not covered" > " " +</span>
3787
+ <span class="cstat-no" title="statement not covered" > (isLoading.current || sendingAssetTicker === null || receivingAssetTicker === null</span>
3788
+ <span class="cstat-no" title="statement not covered" > ? s["disabled"]</span>
3789
+ <span class="cstat-no" title="statement not covered" > : "")</span>
3790
+ <span class="cstat-no" title="statement not covered" > }</span>
3791
+ <span class="cstat-no" title="statement not covered" > &gt;</span>
3792
+ <span class="cstat-no" title="statement not covered" > &lt;img</span>
3793
+ <span class="cstat-no" title="statement not covered" > src={swapSeparatorIconSrc}</span>
3794
+ <span class="cstat-no" title="statement not covered" > alt="swap icon"</span>
3795
+ <span class="cstat-no" title="statement not covered" > draggable={false}</span>
3796
+ <span class="cstat-no" title="statement not covered" > onClick={e =&gt; callHandlingErrors(handleChangeAssetsIconClick, e)}</span>
3797
+ <span class="cstat-no" title="statement not covered" > loading="lazy"</span>
3798
+ <span class="cstat-no" title="statement not covered" > /&gt;</span>
3799
+ <span class="cstat-no" title="statement not covered" > &lt;/div&gt;</span>
3800
+ <span class="cstat-no" title="statement not covered" > &lt;AmountInput</span>
3801
+ <span class="cstat-no" title="statement not covered" > ticker={receivingAssetTicker}</span>
3802
+ <span class="cstat-no" title="statement not covered" > tickerPrintable={receivingAssetTickerPrintable}</span>
3803
+ <span class="cstat-no" title="statement not covered" > assetDecimalPlaces={receivingAssetDecimalCount}</span>
3804
+ <span class="cstat-no" title="statement not covered" > assetBalance={receivingAssetBalance}</span>
3805
+ <span class="cstat-no" title="statement not covered" > assetIconSrc={receivingAssetIconSrc}</span>
3806
+ <span class="cstat-no" title="statement not covered" > assetIconProtocolSrc={receivingAssetProtocolIconSrc}</span>
3807
+ <span class="cstat-no" title="statement not covered" > fallbackAssetIconSrc={fallBackAssetIconSrc}</span>
3808
+ <span class="cstat-no" title="statement not covered" > disabled={isSwapAll.current || sendingAssetTicker === null || receivingAssetTicker === null}</span>
3809
+ <span class="cstat-no" title="statement not covered" > locked={!formHasBalance}</span>
3810
+ <span class="cstat-no" title="statement not covered" > handleCoinAmountChange={handleReceiveAssetAmountChange}</span>
3811
+ <span class="cstat-no" title="statement not covered" > handleChangeAssetClick={handleChangeReceivingAssetClick}</span>
3812
+ <span class="cstat-no" title="statement not covered" > updateAssetInputTo={updateReceiveInputTo}</span>
3813
+ <span class="cstat-no" title="statement not covered" > showChangeAssetButton</span>
3814
+ <span class="cstat-no" title="statement not covered" > changeAssetButtonProtocol={receivingAssetProtocol}</span>
3815
+ <span class="cstat-no" title="statement not covered" > showBalance={formHasBalance}</span>
3816
+ <span class="cstat-no" title="statement not covered" > lowerFormPosition</span>
3817
+ <span class="cstat-no" title="statement not covered" > errorEncountered={isLastEditedReceiving.current &amp;&amp; (!minimalAmountValid || !maximumAmountValid)}</span>
3818
+ <span class="cstat-no" title="statement not covered" > estimateAmount={!isFixedRate.current}</span>
3819
+ <span class="cstat-no" title="statement not covered" > ref={toAssetSelectionButtonRef}</span>
3820
+ <span class="cstat-no" title="statement not covered" > isLoading={isLastEditedReceiving.current ? false : isLoading.current}</span>
3821
+ <span class="cstat-no" title="statement not covered" > cryptoAssetToFiatRate={receivingAssetToFiatRate}</span>
3822
+ <span class="cstat-no" title="statement not covered" > fiatCurrencyCode={</span>
3823
+ <span class="cstat-no" title="statement not covered" > formHasFiat &amp;&amp; (isLoading.current || receivingAssetToFiatRate != null)</span>
3824
+ <span class="cstat-no" title="statement not covered" > ? fiatCurrencyCode</span>
3825
+ <span class="cstat-no" title="statement not covered" > : null</span>
3826
+ <span class="cstat-no" title="statement not covered" > }</span>
3827
+ <span class="cstat-no" title="statement not covered" > fiatCurrencyDecimals={fiatCurrencyDecimals}</span>
3828
+ <span class="cstat-no" title="statement not covered" > balanceLoaderText={translations.input.balanceLoaderText}</span>
3829
+ <span class="cstat-no" title="statement not covered" > fiatInputPlaceholderText={translations.input.fiatPlaceholder}</span>
3830
+ <span class="cstat-no" title="statement not covered" > /&gt;</span>
3831
+ <span class="cstat-no" title="statement not covered" > &lt;/div&gt;</span>
3832
+ <span class="cstat-no" title="statement not covered" > &lt;div className={s["swap-form-information-field"]}&gt;</span>
3833
+ <span class="cstat-no" title="statement not covered" > {/* TODO: [refactoring, moderate] Add flags calculation for each message to avoid this ugly cumbersome implicit unclear logic of message displaying. task_id=8bc31dbcd94d46a598346e8bfb505971 */}</span>
3834
+ <span class="cstat-no" title="statement not covered" > &lt;p&gt;</span>
3835
+ <span class="cstat-no" title="statement not covered" > {!isPairSupported ? (</span>
3836
+ <span class="cstat-no" title="statement not covered" > translations.informationBlock.pairNotAvailable</span>
3837
+ <span class="cstat-no" title="statement not covered" > ) : transactionFee &amp;&amp; minimalAmountValid ? (</span>
3838
+ <span class="cstat-no" title="statement not covered" > &lt;&gt;</span>
3839
+ <span class="cstat-no" title="statement not covered" > {translations.informationBlock.transactionFee}</span>
3840
+ <span class="cstat-no" title="statement not covered" > &lt;span&gt;</span>
3841
+ <span class="cstat-no" title="statement not covered" > {AmountUtils.crypto(transactionFee?.crypto, sendingAssetFeeCoinTickerPrintable)}</span>
3842
+ <span class="cstat-no" title="statement not covered" > &lt;/span&gt;</span>
3843
+ <span class="cstat-no" title="statement not covered" > {transactionFee?.fiat != null &amp;&amp; transactionFee?.fiat !== "" ? (</span>
3844
+ <span class="cstat-no" title="statement not covered" > &lt;span className={"semi-transparent"}&gt;</span>
3845
+ <span class="cstat-no" title="statement not covered" > {" ~ " + AmountUtils.fiat(transactionFee?.fiat, fiatCurrencyCode)}</span>
3846
+ <span class="cstat-no" title="statement not covered" > &lt;/span&gt;</span>
3847
+ <span class="cstat-no" title="statement not covered" > ) : (</span>
3848
+ <span class="cstat-no" title="statement not covered" > ""</span>
3849
+ <span class="cstat-no" title="statement not covered" > )}</span>
3850
+ <span class="cstat-no" title="statement not covered" > &lt;/&gt;</span>
3851
+ <span class="cstat-no" title="statement not covered" > ) : !isLoading.current &amp;&amp; (isSwapCalculated || (!minimalAmount.current &amp;&amp; swapRate)) ? (</span>
3852
+ <span class="cstat-no" title="statement not covered" > &lt;&gt;</span>
3853
+ <span class="cstat-no" title="statement not covered" > {translations.informationBlock.swapRate}</span>
3854
+ <span class="cstat-no" title="statement not covered" > &lt;span&gt;</span>
3855
+ <span class="cstat-no" title="statement not covered" > {AmountUtils.composeRateText(</span>
3856
+ <span class="cstat-no" title="statement not covered" > sendingAssetTickerPrintable,</span>
3857
+ <span class="cstat-no" title="statement not covered" > receivingAssetTickerPrintable,</span>
3858
+ <span class="cstat-no" title="statement not covered" > swapRate,</span>
3859
+ <span class="cstat-no" title="statement not covered" > receivingAssetDecimalCount,</span>
3860
+ <span class="cstat-no" title="statement not covered" > isFixedRate.current ?? IS_FIXED_BY_DEFAULT</span>
3861
+ <span class="cstat-no" title="statement not covered" > )}</span>
3862
+ <span class="cstat-no" title="statement not covered" > &lt;/span&gt;</span>
3863
+ <span class="cstat-no" title="statement not covered" > &lt;/&gt;</span>
3864
+ <span class="cstat-no" title="statement not covered" > ) : minimalAmount.current || maximumAmount.current ? (</span>
3865
+ <span class="cstat-no" title="statement not covered" > !maximumAmountValid &amp;&amp; maximumAmount.current != null ? (</span>
3866
+ <span class="cstat-no" title="statement not covered" > &lt;&gt;</span>
3867
+ <span class="cstat-no" title="statement not covered" > {translations.informationBlock.maximumAmount}</span>
3868
+ <span class="cstat-no" title="statement not covered" > &lt;span</span>
3869
+ <span class="cstat-no" title="statement not covered" > className={s["interactable"] + " " + s["red"]}</span>
3870
+ <span class="cstat-no" title="statement not covered" > onClick={</span>
3871
+ <span class="cstat-no" title="statement not covered" > isLoading.current</span>
3872
+ <span class="cstat-no" title="statement not covered" > ? () =&gt; {}</span>
3873
+ <span class="cstat-no" title="statement not covered" > : e =&gt; callHandlingErrors(handleMaximumAmountClick, e)</span>
3874
+ <span class="cstat-no" title="statement not covered" > }</span>
3875
+ <span class="cstat-no" title="statement not covered" > &gt;</span>
3876
+ <span class="cstat-no" title="statement not covered" > {AmountUtils.crypto(</span>
3877
+ <span class="cstat-no" title="statement not covered" > maximumAmount.current?.crypto,</span>
3878
+ <span class="cstat-no" title="statement not covered" > isLastEditedReceiving.current</span>
3879
+ <span class="cstat-no" title="statement not covered" > ? receivingAssetTickerPrintable</span>
3880
+ <span class="cstat-no" title="statement not covered" > : sendingAssetTickerPrintable</span>
3881
+ <span class="cstat-no" title="statement not covered" > )}</span>
3882
+ <span class="cstat-no" title="statement not covered" > &lt;/span&gt;</span>
3883
+ <span class="cstat-no" title="statement not covered" > {maximumAmount.current?.fiat != null &amp;&amp; maximumAmount.current?.fiat !== "" ? (</span>
3884
+ <span class="cstat-no" title="statement not covered" > &lt;span className={"semi-transparent"}&gt;</span>
3885
+ <span class="cstat-no" title="statement not covered" > {" ~ " + AmountUtils.fiat(maximumAmount.current.fiat, fiatCurrencyCode)}</span>
3886
+ <span class="cstat-no" title="statement not covered" > &lt;/span&gt;</span>
3887
+ <span class="cstat-no" title="statement not covered" > ) : (</span>
3888
+ <span class="cstat-no" title="statement not covered" > ""</span>
3889
+ <span class="cstat-no" title="statement not covered" > )}</span>
3890
+ <span class="cstat-no" title="statement not covered" > &lt;/&gt;</span>
3891
+ <span class="cstat-no" title="statement not covered" > ) : !minimalAmount.current ? (</span>
3892
+ <span class="cstat-no" title="statement not covered" > ""</span>
3893
+ <span class="cstat-no" title="statement not covered" > ) : (</span>
3894
+ <span class="cstat-no" title="statement not covered" > &lt;&gt;</span>
3895
+ <span class="cstat-no" title="statement not covered" > {translations.informationBlock.minimumAmount}</span>
3896
+ <span class="cstat-no" title="statement not covered" > &lt;span</span>
3897
+ <span class="cstat-no" title="statement not covered" > className={s["interactable"] + " " + (!minimalAmountValid ? s["red"] : "")}</span>
3898
+ <span class="cstat-no" title="statement not covered" > onClick={</span>
3899
+ <span class="cstat-no" title="statement not covered" > isLoading.current</span>
3900
+ <span class="cstat-no" title="statement not covered" > ? () =&gt; {}</span>
3901
+ <span class="cstat-no" title="statement not covered" > : e =&gt; callHandlingErrors(handleMinimalAmountClick, e)</span>
3902
+ <span class="cstat-no" title="statement not covered" > }</span>
3903
+ <span class="cstat-no" title="statement not covered" > &gt;</span>
3904
+ <span class="cstat-no" title="statement not covered" > {AmountUtils.crypto(</span>
3905
+ <span class="cstat-no" title="statement not covered" > minimalAmount.current.crypto,</span>
3906
+ <span class="cstat-no" title="statement not covered" > isLastEditedReceiving.current</span>
3907
+ <span class="cstat-no" title="statement not covered" > ? receivingAssetTickerPrintable</span>
3908
+ <span class="cstat-no" title="statement not covered" > : sendingAssetTickerPrintable</span>
3909
+ <span class="cstat-no" title="statement not covered" > )}</span>
3910
+ <span class="cstat-no" title="statement not covered" > &lt;/span&gt;</span>
3911
+ <span class="cstat-no" title="statement not covered" > {minimalAmount.current?.fiat != null &amp;&amp; minimalAmount.current.fiat !== "" ? (</span>
3912
+ <span class="cstat-no" title="statement not covered" > &lt;span className={"semi-transparent"}&gt;</span>
3913
+ <span class="cstat-no" title="statement not covered" > {" ~ " + AmountUtils.fiat(minimalAmount.current.fiat, fiatCurrencyCode)}</span>
3914
+ <span class="cstat-no" title="statement not covered" > &lt;/span&gt;</span>
3915
+ <span class="cstat-no" title="statement not covered" > ) : (</span>
3916
+ <span class="cstat-no" title="statement not covered" > ""</span>
3917
+ <span class="cstat-no" title="statement not covered" > )}</span>
3918
+ <span class="cstat-no" title="statement not covered" > &lt;/&gt;</span>
3919
+ <span class="cstat-no" title="statement not covered" > )</span>
3920
+ <span class="cstat-no" title="statement not covered" > ) : isLoading.current ? (</span>
3921
+ <span class="cstat-no" title="statement not covered" > sendAssetAmount.current || receiveAssetAmount.current || isSwapAll.current ? (</span>
3922
+ <span class="cstat-no" title="statement not covered" > translations.informationBlock[</span>
3923
+ <span class="cstat-no" title="statement not covered" > formHasBalance ? "calculatingNetworkFee" : "calculatingSwapRates"</span>
3924
+ <span class="cstat-no" title="statement not covered" > ]</span>
3925
+ <span class="cstat-no" title="statement not covered" > ) : (</span>
3926
+ <span class="cstat-no" title="statement not covered" > translations.informationBlock.loadingMinimalAmount</span>
3927
+ <span class="cstat-no" title="statement not covered" > )</span>
3928
+ <span class="cstat-no" title="statement not covered" > ) : (</span>
3929
+ <span class="cstat-no" title="statement not covered" > ""</span>
3930
+ <span class="cstat-no" title="statement not covered" > )}</span>
3931
+ <span class="cstat-no" title="statement not covered" > &lt;/p&gt;</span>
3932
+ <span class="cstat-no" title="statement not covered" > &lt;/div&gt;</span>
3933
+ <span class="cstat-no" title="statement not covered" ></span>
3934
+ <span class="cstat-no" title="statement not covered" > {isAddressFieldEnabled ? (</span>
3935
+ <span class="cstat-no" title="statement not covered" > &lt;div className={s["swap-form-address-field"]}&gt;</span>
3936
+ <span class="cstat-no" title="statement not covered" > &lt;TitleBox title={translations.addressFields.addressTitle}&gt;</span>
3937
+ <span class="cstat-no" title="statement not covered" > &lt;Textarea</span>
3938
+ <span class="cstat-no" title="statement not covered" > type={"text"}</span>
3939
+ <span class="cstat-no" title="statement not covered" > onChange={e =&gt; setRecipientAddress(e.target.value)}</span>
3940
+ <span class="cstat-no" title="statement not covered" > value={recipientAddress.current}</span>
3941
+ <span class="cstat-no" title="statement not covered" > adaptiveHeight={true}</span>
3942
+ <span class="cstat-no" title="statement not covered" > errorEncountered={recipientAddress.current !== "" &amp;&amp; !isRecipientAddressValid.current}</span>
3943
+ <span class="cstat-no" title="statement not covered" > /&gt;</span>
3944
+ <span class="cstat-no" title="statement not covered" > &lt;/TitleBox&gt;</span>
3945
+ <span class="cstat-no" title="statement not covered" > {isHydrated &amp;&amp; recipientAddressExtraIdName ? (</span>
3946
+ <span class="cstat-no" title="statement not covered" > &lt;TitleBox</span>
3947
+ <span class="cstat-no" title="statement not covered" > title={translations.addressFields.receivingAddressExtraIdTitle}</span>
3948
+ <span class="cstat-no" title="statement not covered" > titleNoticeText={translations.addressFields.receivingAddressExtraIdNotice}</span>
3949
+ <span class="cstat-no" title="statement not covered" > titleNoticePosition={TOOLTIP_POSITIONS.TOP_LEFT}</span>
3950
+ <span class="cstat-no" title="statement not covered" > &gt;</span>
3951
+ <span class="cstat-no" title="statement not covered" > &lt;Textarea</span>
3952
+ <span class="cstat-no" title="statement not covered" > type={"text"}</span>
3953
+ <span class="cstat-no" title="statement not covered" > onChange={e =&gt; setRecipientAddressExtraId(e.target.value)}</span>
3954
+ <span class="cstat-no" title="statement not covered" > value={recipientAddressExtraId.current}</span>
3955
+ <span class="cstat-no" title="statement not covered" > adaptiveHeight={true}</span>
3956
+ <span class="cstat-no" title="statement not covered" > placeholder={translations.addressFields.extraIdPlaceholder}</span>
3957
+ <span class="cstat-no" title="statement not covered" > /&gt;</span>
3958
+ <span class="cstat-no" title="statement not covered" > &lt;/TitleBox&gt;</span>
3959
+ <span class="cstat-no" title="statement not covered" > ) : null}</span>
3960
+ <span class="cstat-no" title="statement not covered" > {isHydrated &amp;&amp; isRefundAddressRequired ? (</span>
3961
+ <span class="cstat-no" title="statement not covered" > &lt;&gt;</span>
3962
+ <span class="cstat-no" title="statement not covered" > &lt;TitleBox title={translations.addressFields.refundAddressTitle}&gt;</span>
3963
+ <span class="cstat-no" title="statement not covered" > &lt;Textarea</span>
3964
+ <span class="cstat-no" title="statement not covered" > type={"text"}</span>
3965
+ <span class="cstat-no" title="statement not covered" > onChange={e =&gt; setRefundAddress(e.target.value)}</span>
3966
+ <span class="cstat-no" title="statement not covered" > value={refundAddress.current}</span>
3967
+ <span class="cstat-no" title="statement not covered" > adaptiveHeight={true}</span>
3968
+ <span class="cstat-no" title="statement not covered" > errorEncountered={refundAddress.current !== "" &amp;&amp; !isRefundAddressValid.current}</span>
3969
+ <span class="cstat-no" title="statement not covered" > /&gt;</span>
3970
+ <span class="cstat-no" title="statement not covered" > &lt;/TitleBox&gt;</span>
3971
+ <span class="cstat-no" title="statement not covered" > {refundAddressExtraIdName ? (</span>
3972
+ <span class="cstat-no" title="statement not covered" > &lt;TitleBox</span>
3973
+ <span class="cstat-no" title="statement not covered" > title={translations.addressFields.refundAddressExtraIdTitle}</span>
3974
+ <span class="cstat-no" title="statement not covered" > titleNoticeText={translations.addressFields.refundAddressExtraIdNotice}</span>
3975
+ <span class="cstat-no" title="statement not covered" > titleNoticePosition={TOOLTIP_POSITIONS.TOP_LEFT}</span>
3976
+ <span class="cstat-no" title="statement not covered" > &gt;</span>
3977
+ <span class="cstat-no" title="statement not covered" > &lt;Textarea</span>
3978
+ <span class="cstat-no" title="statement not covered" > type={"text"}</span>
3979
+ <span class="cstat-no" title="statement not covered" > onChange={e =&gt; setRefundAddressExtraId(e.target.value)}</span>
3980
+ <span class="cstat-no" title="statement not covered" > value={refundAddressExtraId.current}</span>
3981
+ <span class="cstat-no" title="statement not covered" > adaptiveHeight={true}</span>
3982
+ <span class="cstat-no" title="statement not covered" > placeholder={translations.addressFields.extraIdPlaceholder}</span>
3983
+ <span class="cstat-no" title="statement not covered" > /&gt;</span>
3984
+ <span class="cstat-no" title="statement not covered" > &lt;/TitleBox&gt;</span>
3985
+ <span class="cstat-no" title="statement not covered" > ) : null}</span>
3986
+ <span class="cstat-no" title="statement not covered" > &lt;/&gt;</span>
3987
+ <span class="cstat-no" title="statement not covered" > ) : null}</span>
3988
+ <span class="cstat-no" title="statement not covered" > &lt;/div&gt;</span>
3989
+ <span class="cstat-no" title="statement not covered" > ) : null}</span>
3990
+ <span class="cstat-no" title="statement not covered" ></span>
3991
+ <span class="cstat-no" title="statement not covered" > {validationContent ? (</span>
3992
+ <span class="cstat-no" title="statement not covered" > &lt;div className={s["swap-form-validation-text"]}&gt;</span>
3993
+ <span class="cstat-no" title="statement not covered" > &lt;Validation text={validationContent} /&gt;</span>
3994
+ <span class="cstat-no" title="statement not covered" > &lt;/div&gt;</span>
3995
+ <span class="cstat-no" title="statement not covered" > ) : (</span>
3996
+ <span class="cstat-no" title="statement not covered" > ""</span>
3997
+ <span class="cstat-no" title="statement not covered" > )}</span>
3998
+ <span class="cstat-no" title="statement not covered" > &lt;div className={s["swap-form-button-container"]}&gt;</span>
3999
+ <span class="cstat-no" title="statement not covered" > {!termsOfUseUrl || !privacyPolicyUrl ? null : (</span>
4000
+ <span class="cstat-no" title="statement not covered" > &lt;p className={s["swap-form-button-container-consent-text"]}&gt;</span>
4001
+ <span class="cstat-no" title="statement not covered" > {translations.consents.consentText + " "}</span>
4002
+ <span class="cstat-no" title="statement not covered" > &lt;a</span>
4003
+ <span class="cstat-no" title="statement not covered" > href={termsOfUseUrl}</span>
4004
+ <span class="cstat-no" title="statement not covered" > className={s["swap-form-button-container-consent-text-link"]}</span>
4005
+ <span class="cstat-no" title="statement not covered" > target="_blank"</span>
4006
+ <span class="cstat-no" title="statement not covered" > &gt;</span>
4007
+ <span class="cstat-no" title="statement not covered" > {translations.consents.termsOfUse}</span>
4008
+ <span class="cstat-no" title="statement not covered" > &lt;/a&gt;</span>
4009
+ <span class="cstat-no" title="statement not covered" > {" " + translations.consents.and + " "}</span>
4010
+ <span class="cstat-no" title="statement not covered" > &lt;a</span>
4011
+ <span class="cstat-no" title="statement not covered" > href={privacyPolicyUrl}</span>
4012
+ <span class="cstat-no" title="statement not covered" > className={s["swap-form-button-container-consent-text-link"]}</span>
4013
+ <span class="cstat-no" title="statement not covered" > target="_blank"</span>
4014
+ <span class="cstat-no" title="statement not covered" > &gt;</span>
4015
+ <span class="cstat-no" title="statement not covered" > {translations.consents.privacyPolicy}</span>
4016
+ <span class="cstat-no" title="statement not covered" > &lt;/a&gt;</span>
4017
+ <span class="cstat-no" title="statement not covered" > .</span>
4018
+ <span class="cstat-no" title="statement not covered" > &lt;/p&gt;</span>
4019
+ <span class="cstat-no" title="statement not covered" > )}</span>
4020
+ <span class="cstat-no" title="statement not covered" > &lt;Button</span>
4021
+ <span class="cstat-no" title="statement not covered" > size="lg"</span>
4022
+ <span class="cstat-no" title="statement not covered" > mode="primary"</span>
4023
+ <span class="cstat-no" title="statement not covered" > content={translations.confirmButtonText}</span>
4024
+ <span class="cstat-no" title="statement not covered" > onClick={resetButtonLoader =&gt;</span>
4025
+ <span class="cstat-no" title="statement not covered" > handleConfirmButtonClick(</span>
4026
+ <span class="cstat-no" title="statement not covered" > resetButtonLoader,</span>
4027
+ <span class="cstat-no" title="statement not covered" > setValidationContent,</span>
4028
+ <span class="cstat-no" title="statement not covered" > setBalanceValid,</span>
4029
+ <span class="cstat-no" title="statement not covered" > setMinimalAmountValid,</span>
4030
+ <span class="cstat-no" title="statement not covered" > setMaximumAmountValid,</span>
4031
+ <span class="cstat-no" title="statement not covered" > setIsPairSupported,</span>
4032
+ <span class="cstat-no" title="statement not covered" > setIsSameCoins,</span>
4033
+ <span class="cstat-no" title="statement not covered" > recipientAddress.current,</span>
4034
+ <span class="cstat-no" title="statement not covered" > recipientAddressExtraId.current,</span>
4035
+ <span class="cstat-no" title="statement not covered" > refundAddress.current,</span>
4036
+ <span class="cstat-no" title="statement not covered" > refundAddressExtraId.current,</span>
4037
+ <span class="cstat-no" title="statement not covered" > isLastEditedReceiving.current</span>
4038
+ <span class="cstat-no" title="statement not covered" > )</span>
4039
+ <span class="cstat-no" title="statement not covered" > }</span>
4040
+ <span class="cstat-no" title="statement not covered" > fullWidthOnMobiles</span>
4041
+ <span class="cstat-no" title="statement not covered" > isDisabled={!readyToSwap}</span>
4042
+ <span class="cstat-no" title="statement not covered" > to={formHasBalance ? "" : confirmButtonTo}</span>
4043
+ <span class="cstat-no" title="statement not covered" > loader</span>
4044
+ <span class="cstat-no" title="statement not covered" > handleError={callHandlingErrors}</span>
4045
+ <span class="cstat-no" title="statement not covered" > /&gt;</span>
4046
+ <span class="cstat-no" title="statement not covered" > &lt;/div&gt;</span>
4047
+ <span class="cstat-no" title="statement not covered" > &lt;/TitleBox&gt;</span>
4048
+ <span class="cstat-no" title="statement not covered" > &lt;/div&gt;</span>
4049
+ <span class="cstat-no" title="statement not covered" > );</span>
4050
+ <span class="cstat-no" title="statement not covered" >};</span>
4051
+ <span class="cstat-no" title="statement not covered" ></span>
4052
+ <span class="cstat-no" title="statement not covered" >SwapForm.propTypes = {</span>
4053
+ <span class="cstat-no" title="statement not covered" > sendingAssetTicker: PropTypes.string.isRequired,</span>
4054
+ <span class="cstat-no" title="statement not covered" > receivingAssetTicker: PropTypes.string.isRequired,</span>
4055
+ <span class="cstat-no" title="statement not covered" > sendingAssetDecimalCount: PropTypes.number,</span>
4056
+ <span class="cstat-no" title="statement not covered" > receivingAssetDecimalCount: PropTypes.number,</span>
4057
+ <span class="cstat-no" title="statement not covered" > sendingAssetTickerPrintable: PropTypes.string.isRequired,</span>
4058
+ <span class="cstat-no" title="statement not covered" > receivingAssetTickerPrintable: PropTypes.string.isRequired,</span>
4059
+ <span class="cstat-no" title="statement not covered" > sendingAssetProtocol: PropTypes.string,</span>
4060
+ <span class="cstat-no" title="statement not covered" > receivingAssetProtocol: PropTypes.string,</span>
4061
+ <span class="cstat-no" title="statement not covered" > sendingAssetIconSrc: PropTypes.string.isRequired,</span>
4062
+ <span class="cstat-no" title="statement not covered" > sendingAssetProtocolIconSrc: PropTypes.oneOfType([PropTypes.string, null]),</span>
4063
+ <span class="cstat-no" title="statement not covered" > receivingAssetIconSrc: PropTypes.string.isRequired,</span>
4064
+ <span class="cstat-no" title="statement not covered" > receivingAssetProtocolIconSrc: PropTypes.oneOfType([PropTypes.string, null]),</span>
4065
+ <span class="cstat-no" title="statement not covered" > fallBackAssetIconSrc: PropTypes.oneOfType([PropTypes.string, null]),</span>
4066
+ <span class="cstat-no" title="statement not covered" > sendingAssetFeeCoinTickerPrintable: PropTypes.string,</span>
4067
+ <span class="cstat-no" title="statement not covered" > sendingAssetBalance: PropTypes.string,</span>
4068
+ <span class="cstat-no" title="statement not covered" > receivingAssetBalance: PropTypes.string,</span>
4069
+ <span class="cstat-no" title="statement not covered" > handleChangeSendingAssetClick: PropTypes.func.isRequired,</span>
4070
+ <span class="cstat-no" title="statement not covered" > handleChangeReceivingAssetClick: PropTypes.func.isRequired,</span>
4071
+ <span class="cstat-no" title="statement not covered" > handleConfirmButtonClick: PropTypes.func,</span>
4072
+ <span class="cstat-no" title="statement not covered" > composeConfirmButtonTo: PropTypes.func,</span>
4073
+ <span class="cstat-no" title="statement not covered" > setSwapCreationEstimation: PropTypes.func,</span>
4074
+ <span class="cstat-no" title="statement not covered" > handleUnexpectedError: PropTypes.func,</span>
4075
+ <span class="cstat-no" title="statement not covered" > rotateAssets: PropTypes.func,</span>
4076
+ <span class="cstat-no" title="statement not covered" > preservedAmount: PropTypes.oneOfType([PropTypes.string, null]),</span>
4077
+ <span class="cstat-no" title="statement not covered" > handleSwapServiceError: PropTypes.func.isRequired,</span>
4078
+ <span class="cstat-no" title="statement not covered" > formHasBalance: PropTypes.bool,</span>
4079
+ <span class="cstat-no" title="statement not covered" > retrieveSwapDetails: PropTypes.func.isRequired,</span>
4080
+ <span class="cstat-no" title="statement not covered" > retrieveInitialSwapData: PropTypes.func.isRequired,</span>
4081
+ <span class="cstat-no" title="statement not covered" > triggerDataUpdateResetting: PropTypes.number,</span>
4082
+ <span class="cstat-no" title="statement not covered" > fromAssetSelectionButtonRef: PropTypes.any,</span>
4083
+ <span class="cstat-no" title="statement not covered" > toAssetSelectionButtonRef: PropTypes.any,</span>
4084
+ <span class="cstat-no" title="statement not covered" > sendingAssetToFiatRate: PropTypes.oneOfType([PropTypes.number, PropTypes.string, null]),</span>
4085
+ <span class="cstat-no" title="statement not covered" > receivingAssetToFiatRate: PropTypes.oneOfType([PropTypes.number, PropTypes.string, null]),</span>
4086
+ <span class="cstat-no" title="statement not covered" > fiatCurrencyCode: PropTypes.oneOfType([PropTypes.string, null]),</span>
4087
+ <span class="cstat-no" title="statement not covered" > fiatCurrencyDecimals: PropTypes.oneOfType([PropTypes.number, null]),</span>
4088
+ <span class="cstat-no" title="statement not covered" > formHasFiat: PropTypes.bool,</span>
4089
+ <span class="cstat-no" title="statement not covered" > termsOfUseUrl: PropTypes.oneOfType([PropTypes.string, null]),</span>
4090
+ <span class="cstat-no" title="statement not covered" > privacyPolicyUrl: PropTypes.oneOfType([PropTypes.string, null]),</span>
4091
+ <span class="cstat-no" title="statement not covered" > getExtraIdNameByTicker: PropTypes.func,</span>
4092
+ <span class="cstat-no" title="statement not covered" > translations: PropTypes.object,</span>
4093
+ <span class="cstat-no" title="statement not covered" > validateAddressByTicker: PropTypes.func,</span>
4094
+ <span class="cstat-no" title="statement not covered" > swapSeparatorIconSrc: PropTypes.string.isRequired,</span>
4095
+ <span class="cstat-no" title="statement not covered" > swapButtonAlwaysActive: PropTypes.bool,</span>
4096
+ <span class="cstat-no" title="statement not covered" > onIsFixedChange: PropTypes.func,</span>
4097
+ <span class="cstat-no" title="statement not covered" >};</span>
4098
+ <span class="cstat-no" title="statement not covered" ></span>
4099
+ <span class="cstat-no" title="statement not covered" >SwapForm.defaultProps = {</span>
4100
+ <span class="cstat-no" title="statement not covered" > sendingAssetDecimalCount: AmountUtils.significantDecimalCount,</span>
4101
+ <span class="cstat-no" title="statement not covered" > receivingAssetDecimalCount: AmountUtils.significantDecimalCount,</span>
4102
+ <span class="cstat-no" title="statement not covered" > sendingAssetProtocolIconSrc: null,</span>
4103
+ <span class="cstat-no" title="statement not covered" > receivingAssetProtocolIconSrc: null,</span>
4104
+ <span class="cstat-no" title="statement not covered" > fallBackAssetIconSrc: null,</span>
4105
+ <span class="cstat-no" title="statement not covered" > handleConfirmButtonClick: (</span>
4106
+ <span class="cstat-no" title="statement not covered" > resetButtonLoader,</span>
4107
+ <span class="cstat-no" title="statement not covered" > setValidationContent,</span>
4108
+ <span class="cstat-no" title="statement not covered" > setBalanceValid,</span>
4109
+ <span class="cstat-no" title="statement not covered" > setMinimalAmountValid,</span>
4110
+ <span class="cstat-no" title="statement not covered" > setMaximumAmountValid,</span>
4111
+ <span class="cstat-no" title="statement not covered" > setIsPairSupported,</span>
4112
+ <span class="cstat-no" title="statement not covered" > setIsSameCoins,</span>
4113
+ <span class="cstat-no" title="statement not covered" > recipientAddress,</span>
4114
+ <span class="cstat-no" title="statement not covered" > recipientAddressExtraId,</span>
4115
+ <span class="cstat-no" title="statement not covered" > refundAddress,</span>
4116
+ <span class="cstat-no" title="statement not covered" > refundAddressExtraId</span>
4117
+ <span class="cstat-no" title="statement not covered" > ) =&gt; {},</span>
4118
+ <span class="cstat-no" title="statement not covered" > composeConfirmButtonTo: (fromTicker, toTicker, fromAmount) =&gt; "",</span>
4119
+ <span class="cstat-no" title="statement not covered" > setSwapCreationEstimation: details =&gt; {},</span>
4120
+ <span class="cstat-no" title="statement not covered" > handleUnexpectedError: error =&gt; {},</span>
4121
+ <span class="cstat-no" title="statement not covered" > rotateAssets: (fromTicker, toTicker) =&gt; {},</span>
4122
+ <span class="cstat-no" title="statement not covered" > preservedAmount: null,</span>
4123
+ <span class="cstat-no" title="statement not covered" > handleSwapServiceError: (</span>
4124
+ <span class="cstat-no" title="statement not covered" > errorCode,</span>
4125
+ <span class="cstat-no" title="statement not covered" > setValidationContent,</span>
4126
+ <span class="cstat-no" title="statement not covered" > setBalanceValid,</span>
4127
+ <span class="cstat-no" title="statement not covered" > setMinimalAmountValid,</span>
4128
+ <span class="cstat-no" title="statement not covered" > setMaximumAmountValid,</span>
4129
+ <span class="cstat-no" title="statement not covered" > setIsPairSupported,</span>
4130
+ <span class="cstat-no" title="statement not covered" > setIsSameCoins</span>
4131
+ <span class="cstat-no" title="statement not covered" > ) =&gt; {},</span>
4132
+ <span class="cstat-no" title="statement not covered" > retrieveSwapDetails: async (sendingAssetTicker, receivingAssetTicker, amount, isSwapAll = false) =&gt; {},</span>
4133
+ <span class="cstat-no" title="statement not covered" > retrieveInitialSwapData: async (sendingAssetTicker, receivingAssetTicker) =&gt; {},</span>
4134
+ <span class="cstat-no" title="statement not covered" > triggerDataUpdateResetting: 0,</span>
4135
+ <span class="cstat-no" title="statement not covered" > fromAssetSelectionButtonRef: null,</span>
4136
+ <span class="cstat-no" title="statement not covered" > toAssetSelectionButtonRef: null,</span>
4137
+ <span class="cstat-no" title="statement not covered" > sendingAssetToFiatRate: null,</span>
4138
+ <span class="cstat-no" title="statement not covered" > receivingAssetToFiatRate: null,</span>
4139
+ <span class="cstat-no" title="statement not covered" > fiatCurrencyCode: null,</span>
4140
+ <span class="cstat-no" title="statement not covered" > fiatCurrencyDecimals: null,</span>
4141
+ <span class="cstat-no" title="statement not covered" > formHasFiat: true,</span>
4142
+ <span class="cstat-no" title="statement not covered" > termsOfUseUrl: null,</span>
4143
+ <span class="cstat-no" title="statement not covered" > privacyPolicyUrl: null,</span>
4144
+ <span class="cstat-no" title="statement not covered" > getExtraIdNameByTicker: ticker =&gt; null,</span>
4145
+ <span class="cstat-no" title="statement not covered" > validateAddressByTicker: ticker =&gt; false,</span>
4146
+ <span class="cstat-no" title="statement not covered" > swapButtonAlwaysActive: false,</span>
4147
+ <span class="cstat-no" title="statement not covered" > onIsFixedChange: () =&gt; {},</span>
4148
+ <span class="cstat-no" title="statement not covered" >};</span>
4149
+ &nbsp;</pre></td></tr></table></pre>
4150
+
4151
+ <div class='push'></div><!-- for sticky footer -->
4152
+ </div><!-- /wrapper -->
4153
+ <div class='footer quiet pad2 space-top1 center small'>
4154
+ Code coverage generated by
4155
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
4156
+ at 2024-08-15T09:15:11.580Z
4157
+ </div>
4158
+ <script src="../../../../../../prettify.js"></script>
4159
+ <script>
4160
+ window.onload = function () {
4161
+ prettyPrint();
4162
+ };
4163
+ </script>
4164
+ <script src="../../../../../../sorter.js"></script>
4165
+ <script src="../../../../../../block-navigation.js"></script>
4166
+ </body>
4167
+ </html>
4168
+