@cloudant/couchbackup 2.9.8 → 2.9.9-SNAPSHOT.101

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 (440) hide show
  1. package/.scannerwork/report-task.txt +2 -2
  2. package/.scannerwork/scanner-report/analysis-warnings.pb +2 -2
  3. package/.scannerwork/scanner-report/analysis.log +1 -1
  4. package/.scannerwork/scanner-report/changesets-11.pb +1 -0
  5. package/.scannerwork/scanner-report/changesets-12.pb +1 -0
  6. package/.scannerwork/scanner-report/changesets-13.pb +1 -0
  7. package/.scannerwork/scanner-report/changesets-14.pb +1 -0
  8. package/.scannerwork/scanner-report/changesets-15.pb +1 -0
  9. package/.scannerwork/scanner-report/changesets-16.pb +1 -0
  10. package/.scannerwork/scanner-report/changesets-17.pb +1 -0
  11. package/.scannerwork/scanner-report/changesets-18.pb +1 -0
  12. package/.scannerwork/scanner-report/changesets-2.pb +1 -0
  13. package/.scannerwork/scanner-report/changesets-3.pb +1 -0
  14. package/.scannerwork/scanner-report/changesets-38.pb +1 -0
  15. package/.scannerwork/scanner-report/changesets-39.pb +1 -0
  16. package/.scannerwork/scanner-report/changesets-40.pb +1 -0
  17. package/.scannerwork/scanner-report/changesets-55.pb +1 -0
  18. package/.scannerwork/scanner-report/changesets-56.pb +1 -0
  19. package/.scannerwork/scanner-report/changesets-59.pb +1 -0
  20. package/.scannerwork/scanner-report/changesets-60.pb +1 -0
  21. package/.scannerwork/scanner-report/changesets-61.pb +1 -0
  22. package/.scannerwork/scanner-report/changesets-62.pb +1 -0
  23. package/.scannerwork/scanner-report/changesets-63.pb +1 -0
  24. package/.scannerwork/scanner-report/changesets-64.pb +1 -0
  25. package/.scannerwork/scanner-report/changesets-67.pb +1 -0
  26. package/.scannerwork/scanner-report/changesets-68.pb +1 -0
  27. package/.scannerwork/scanner-report/component-1.pb +2 -1
  28. package/.scannerwork/scanner-report/component-10.pb +2 -0
  29. package/.scannerwork/scanner-report/component-11.pb +1 -0
  30. package/.scannerwork/scanner-report/component-12.pb +1 -0
  31. package/.scannerwork/scanner-report/component-13.pb +1 -0
  32. package/.scannerwork/scanner-report/component-14.pb +1 -0
  33. package/.scannerwork/scanner-report/component-15.pb +1 -0
  34. package/.scannerwork/scanner-report/component-16.pb +1 -0
  35. package/.scannerwork/scanner-report/component-17.pb +1 -0
  36. package/.scannerwork/scanner-report/component-18.pb +1 -0
  37. package/.scannerwork/scanner-report/component-19.pb +1 -1
  38. package/.scannerwork/scanner-report/component-2.pb +1 -0
  39. package/.scannerwork/scanner-report/component-20.pb +1 -1
  40. package/.scannerwork/scanner-report/component-21.pb +1 -1
  41. package/.scannerwork/scanner-report/component-22.pb +1 -1
  42. package/.scannerwork/scanner-report/component-23.pb +1 -1
  43. package/.scannerwork/scanner-report/component-24.pb +1 -1
  44. package/.scannerwork/scanner-report/component-25.pb +1 -1
  45. package/.scannerwork/scanner-report/component-27.pb +1 -1
  46. package/.scannerwork/scanner-report/component-3.pb +1 -0
  47. package/.scannerwork/scanner-report/component-30.pb +1 -1
  48. package/.scannerwork/scanner-report/component-31.pb +1 -1
  49. package/.scannerwork/scanner-report/component-33.pb +1 -1
  50. package/.scannerwork/scanner-report/component-34.pb +1 -1
  51. package/.scannerwork/scanner-report/component-36.pb +1 -1
  52. package/.scannerwork/scanner-report/component-37.pb +1 -1
  53. package/.scannerwork/scanner-report/component-38.pb +1 -1
  54. package/.scannerwork/scanner-report/component-39.pb +1 -0
  55. package/.scannerwork/scanner-report/component-4.pb +1 -1
  56. package/.scannerwork/scanner-report/component-40.pb +1 -1
  57. package/.scannerwork/scanner-report/component-52.pb +1 -1
  58. package/.scannerwork/scanner-report/component-53.pb +1 -1
  59. package/.scannerwork/scanner-report/component-54.pb +1 -1
  60. package/.scannerwork/scanner-report/component-55.pb +1 -1
  61. package/.scannerwork/scanner-report/component-56.pb +1 -0
  62. package/.scannerwork/scanner-report/component-57.pb +1 -1
  63. package/.scannerwork/scanner-report/component-58.pb +1 -1
  64. package/.scannerwork/scanner-report/component-59.pb +1 -1
  65. package/.scannerwork/scanner-report/component-60.pb +1 -0
  66. package/.scannerwork/scanner-report/component-61.pb +1 -1
  67. package/.scannerwork/scanner-report/component-62.pb +1 -0
  68. package/.scannerwork/scanner-report/component-63.pb +1 -0
  69. package/.scannerwork/scanner-report/component-64.pb +1 -0
  70. package/.scannerwork/scanner-report/component-65.pb +1 -1
  71. package/.scannerwork/scanner-report/component-66.pb +1 -1
  72. package/.scannerwork/scanner-report/component-67.pb +1 -0
  73. package/.scannerwork/scanner-report/component-68.pb +1 -0
  74. package/.scannerwork/scanner-report/component-69.pb +1 -1
  75. package/.scannerwork/scanner-report/coverages-12.pb +0 -0
  76. package/.scannerwork/scanner-report/coverages-18.pb +0 -0
  77. package/.scannerwork/scanner-report/coverages-19.pb +0 -0
  78. package/.scannerwork/scanner-report/coverages-2.pb +0 -0
  79. package/.scannerwork/scanner-report/coverages-20.pb +0 -0
  80. package/.scannerwork/scanner-report/coverages-21.pb +0 -0
  81. package/.scannerwork/scanner-report/coverages-22.pb +0 -0
  82. package/.scannerwork/scanner-report/coverages-23.pb +0 -0
  83. package/.scannerwork/scanner-report/coverages-24.pb +0 -0
  84. package/.scannerwork/scanner-report/coverages-3.pb +0 -0
  85. package/.scannerwork/scanner-report/coverages-30.pb +0 -0
  86. package/.scannerwork/scanner-report/coverages-33.pb +0 -0
  87. package/.scannerwork/scanner-report/coverages-34.pb +0 -0
  88. package/.scannerwork/scanner-report/coverages-36.pb +0 -0
  89. package/.scannerwork/scanner-report/coverages-37.pb +0 -0
  90. package/.scannerwork/scanner-report/coverages-38.pb +0 -0
  91. package/.scannerwork/scanner-report/coverages-4.pb +0 -0
  92. package/.scannerwork/scanner-report/coverages-52.pb +0 -0
  93. package/.scannerwork/scanner-report/coverages-53.pb +0 -0
  94. package/.scannerwork/scanner-report/coverages-54.pb +0 -0
  95. package/.scannerwork/scanner-report/coverages-56.pb +0 -0
  96. package/.scannerwork/scanner-report/coverages-57.pb +0 -0
  97. package/.scannerwork/scanner-report/coverages-58.pb +0 -0
  98. package/.scannerwork/scanner-report/coverages-59.pb +0 -0
  99. package/.scannerwork/scanner-report/coverages-60.pb +0 -0
  100. package/.scannerwork/scanner-report/coverages-63.pb +0 -0
  101. package/.scannerwork/scanner-report/coverages-64.pb +0 -0
  102. package/.scannerwork/scanner-report/coverages-65.pb +0 -0
  103. package/.scannerwork/scanner-report/coverages-66.pb +0 -0
  104. package/.scannerwork/scanner-report/duplications-17.pb +2 -0
  105. package/.scannerwork/scanner-report/duplications-19.pb +1 -2
  106. package/.scannerwork/scanner-report/duplications-21.pb +0 -2
  107. package/.scannerwork/scanner-report/duplications-22.pb +0 -3
  108. package/.scannerwork/scanner-report/duplications-3.pb +2 -0
  109. package/.scannerwork/scanner-report/duplications-36.pb +0 -2
  110. package/.scannerwork/scanner-report/duplications-38.pb +3 -0
  111. package/.scannerwork/scanner-report/duplications-4.pb +2 -0
  112. package/.scannerwork/scanner-report/duplications-54.pb +2 -0
  113. package/.scannerwork/scanner-report/duplications-60.pb +2 -0
  114. package/.scannerwork/scanner-report/duplications-63.pb +3 -0
  115. package/.scannerwork/scanner-report/duplications-65.pb +0 -2
  116. package/.scannerwork/scanner-report/duplications-66.pb +0 -2
  117. package/.scannerwork/scanner-report/measures-10.pb +0 -0
  118. package/.scannerwork/scanner-report/measures-12.pb +0 -0
  119. package/.scannerwork/scanner-report/measures-18.pb +0 -0
  120. package/.scannerwork/scanner-report/measures-19.pb +0 -0
  121. package/.scannerwork/scanner-report/measures-2.pb +0 -0
  122. package/.scannerwork/scanner-report/measures-20.pb +0 -0
  123. package/.scannerwork/scanner-report/measures-21.pb +0 -0
  124. package/.scannerwork/scanner-report/measures-22.pb +0 -0
  125. package/.scannerwork/scanner-report/measures-23.pb +0 -0
  126. package/.scannerwork/scanner-report/measures-24.pb +0 -0
  127. package/.scannerwork/scanner-report/measures-25.pb +0 -0
  128. package/.scannerwork/scanner-report/measures-27.pb +0 -0
  129. package/.scannerwork/scanner-report/measures-3.pb +0 -0
  130. package/.scannerwork/scanner-report/measures-30.pb +0 -0
  131. package/.scannerwork/scanner-report/measures-31.pb +0 -0
  132. package/.scannerwork/scanner-report/measures-33.pb +0 -0
  133. package/.scannerwork/scanner-report/measures-34.pb +0 -0
  134. package/.scannerwork/scanner-report/measures-36.pb +0 -0
  135. package/.scannerwork/scanner-report/measures-37.pb +0 -0
  136. package/.scannerwork/scanner-report/measures-38.pb +0 -0
  137. package/.scannerwork/scanner-report/measures-4.pb +0 -0
  138. package/.scannerwork/scanner-report/measures-40.pb +0 -0
  139. package/.scannerwork/scanner-report/measures-52.pb +0 -0
  140. package/.scannerwork/scanner-report/measures-53.pb +0 -0
  141. package/.scannerwork/scanner-report/measures-54.pb +0 -0
  142. package/.scannerwork/scanner-report/measures-55.pb +0 -0
  143. package/.scannerwork/scanner-report/measures-56.pb +0 -0
  144. package/.scannerwork/scanner-report/measures-57.pb +0 -0
  145. package/.scannerwork/scanner-report/measures-58.pb +0 -0
  146. package/.scannerwork/scanner-report/measures-59.pb +0 -0
  147. package/.scannerwork/scanner-report/measures-60.pb +15 -0
  148. package/.scannerwork/scanner-report/measures-61.pb +0 -0
  149. package/.scannerwork/scanner-report/measures-63.pb +0 -0
  150. package/.scannerwork/scanner-report/measures-64.pb +0 -0
  151. package/.scannerwork/scanner-report/measures-65.pb +0 -0
  152. package/.scannerwork/scanner-report/measures-66.pb +0 -0
  153. package/.scannerwork/scanner-report/measures-67.pb +0 -0
  154. package/.scannerwork/scanner-report/measures-68.pb +0 -0
  155. package/.scannerwork/scanner-report/measures-69.pb +0 -0
  156. package/.scannerwork/scanner-report/metadata.pb +0 -0
  157. package/.scannerwork/scanner-report/source-10.txt +167 -0
  158. package/.scannerwork/scanner-report/source-12.txt +164 -0
  159. package/.scannerwork/scanner-report/source-18.txt +111 -0
  160. package/.scannerwork/scanner-report/source-19.txt +71 -110
  161. package/.scannerwork/scanner-report/source-2.txt +114 -0
  162. package/.scannerwork/scanner-report/source-20.txt +25 -19
  163. package/.scannerwork/scanner-report/source-21.txt +105 -269
  164. package/.scannerwork/scanner-report/source-22.txt +57 -96
  165. package/.scannerwork/scanner-report/source-23.txt +40 -78
  166. package/.scannerwork/scanner-report/source-24.txt +19 -598
  167. package/.scannerwork/scanner-report/source-25.txt +509 -29
  168. package/.scannerwork/scanner-report/source-27.txt +509 -36
  169. package/.scannerwork/scanner-report/source-3.txt +190 -0
  170. package/.scannerwork/scanner-report/source-30.txt +399 -17
  171. package/.scannerwork/scanner-report/source-31.txt +509 -100
  172. package/.scannerwork/scanner-report/source-33.txt +52 -131
  173. package/.scannerwork/scanner-report/source-34.txt +36 -48
  174. package/.scannerwork/scanner-report/source-36.txt +25 -203
  175. package/.scannerwork/scanner-report/source-37.txt +121 -93
  176. package/.scannerwork/scanner-report/source-38.txt +119 -167
  177. package/.scannerwork/scanner-report/source-4.txt +158 -17
  178. package/.scannerwork/scanner-report/source-40.txt +244 -509
  179. package/.scannerwork/scanner-report/source-52.txt +599 -85
  180. package/.scannerwork/scanner-report/source-53.txt +47 -30
  181. package/.scannerwork/scanner-report/source-54.txt +202 -141
  182. package/.scannerwork/scanner-report/source-55.txt +68 -509
  183. package/.scannerwork/scanner-report/source-56.txt +36 -0
  184. package/.scannerwork/scanner-report/source-57.txt +20 -62
  185. package/.scannerwork/scanner-report/source-58.txt +140 -40
  186. package/.scannerwork/scanner-report/source-59.txt +34 -509
  187. package/.scannerwork/scanner-report/source-60.txt +293 -0
  188. package/.scannerwork/scanner-report/source-61.txt +366 -509
  189. package/.scannerwork/scanner-report/source-63.txt +131 -0
  190. package/.scannerwork/scanner-report/source-64.txt +92 -0
  191. package/.scannerwork/scanner-report/source-65.txt +80 -170
  192. package/.scannerwork/scanner-report/source-66.txt +46 -153
  193. package/.scannerwork/scanner-report/source-67.txt +36 -0
  194. package/.scannerwork/scanner-report/source-68.txt +29 -0
  195. package/.scannerwork/scanner-report/source-69.txt +509 -418
  196. package/.scannerwork/scanner-report/symbols-12.pb +126 -0
  197. package/.scannerwork/scanner-report/symbols-18.pb +59 -0
  198. package/.scannerwork/scanner-report/symbols-19.pb +44 -97
  199. package/.scannerwork/scanner-report/symbols-2.pb +28 -0
  200. package/.scannerwork/scanner-report/symbols-20.pb +17 -16
  201. package/.scannerwork/scanner-report/symbols-21.pb +33 -486
  202. package/.scannerwork/scanner-report/symbols-22.pb +41 -72
  203. package/.scannerwork/scanner-report/symbols-23.pb +15 -60
  204. package/.scannerwork/scanner-report/symbols-24.pb +19 -1253
  205. package/.scannerwork/scanner-report/symbols-3.pb +180 -0
  206. package/.scannerwork/scanner-report/symbols-30.pb +610 -14
  207. package/.scannerwork/scanner-report/symbols-33.pb +29 -111
  208. package/.scannerwork/scanner-report/symbols-34.pb +18 -35
  209. package/.scannerwork/scanner-report/symbols-36.pb +26 -417
  210. package/.scannerwork/scanner-report/symbols-37.pb +116 -28
  211. package/.scannerwork/scanner-report/symbols-38.pb +77 -0
  212. package/.scannerwork/scanner-report/symbols-4.pb +152 -9
  213. package/.scannerwork/scanner-report/symbols-52.pb +1251 -56
  214. package/.scannerwork/scanner-report/symbols-53.pb +42 -19
  215. package/.scannerwork/scanner-report/symbols-54.pb +417 -125
  216. package/.scannerwork/scanner-report/symbols-56.pb +14 -0
  217. package/.scannerwork/scanner-report/symbols-57.pb +16 -29
  218. package/.scannerwork/scanner-report/symbols-58.pb +111 -18
  219. package/.scannerwork/scanner-report/symbols-59.pb +10 -0
  220. package/.scannerwork/scanner-report/symbols-60.pb +486 -0
  221. package/.scannerwork/scanner-report/symbols-63.pb +97 -0
  222. package/.scannerwork/scanner-report/symbols-64.pb +60 -0
  223. package/.scannerwork/scanner-report/symbols-65.pb +69 -180
  224. package/.scannerwork/scanner-report/symbols-66.pb +35 -152
  225. package/.scannerwork/scanner-report/syntax-highlightings-10.pb +949 -0
  226. package/.scannerwork/scanner-report/syntax-highlightings-12.pb +213 -0
  227. package/.scannerwork/scanner-report/syntax-highlightings-18.pb +133 -0
  228. package/.scannerwork/scanner-report/syntax-highlightings-19.pb +57 -149
  229. package/.scannerwork/scanner-report/syntax-highlightings-2.pb +138 -0
  230. package/.scannerwork/scanner-report/syntax-highlightings-20.pb +20 -33
  231. package/.scannerwork/scanner-report/syntax-highlightings-21.pb +91 -621
  232. package/.scannerwork/scanner-report/syntax-highlightings-22.pb +58 -121
  233. package/.scannerwork/scanner-report/syntax-highlightings-23.pb +22 -78
  234. package/.scannerwork/scanner-report/syntax-highlightings-24.pb +33 -856
  235. package/.scannerwork/scanner-report/syntax-highlightings-25.pb +3731 -31
  236. package/.scannerwork/scanner-report/syntax-highlightings-27.pb +3738 -48
  237. package/.scannerwork/scanner-report/syntax-highlightings-3.pb +225 -0
  238. package/.scannerwork/scanner-report/syntax-highlightings-30.pb +619 -25
  239. package/.scannerwork/scanner-report/syntax-highlightings-31.pb +3737 -94
  240. package/.scannerwork/scanner-report/syntax-highlightings-33.pb +74 -194
  241. package/.scannerwork/scanner-report/syntax-highlightings-34.pb +61 -74
  242. package/.scannerwork/scanner-report/syntax-highlightings-36.pb +28 -291
  243. package/.scannerwork/scanner-report/syntax-highlightings-37.pb +99 -103
  244. package/.scannerwork/scanner-report/syntax-highlightings-38.pb +147 -937
  245. package/.scannerwork/scanner-report/syntax-highlightings-4.pb +185 -21
  246. package/.scannerwork/scanner-report/syntax-highlightings-40.pb +222 -3642
  247. package/.scannerwork/scanner-report/syntax-highlightings-52.pb +845 -91
  248. package/.scannerwork/scanner-report/syntax-highlightings-53.pb +51 -33
  249. package/.scannerwork/scanner-report/syntax-highlightings-54.pb +286 -168
  250. package/.scannerwork/scanner-report/syntax-highlightings-55.pb +99 -3735
  251. package/.scannerwork/scanner-report/syntax-highlightings-56.pb +54 -0
  252. package/.scannerwork/scanner-report/syntax-highlightings-57.pb +42 -82
  253. package/.scannerwork/scanner-report/syntax-highlightings-58.pb +196 -55
  254. package/.scannerwork/scanner-report/syntax-highlightings-59.pb +32 -3729
  255. package/.scannerwork/scanner-report/syntax-highlightings-60.pb +659 -0
  256. package/.scannerwork/scanner-report/syntax-highlightings-61.pb +385 -3503
  257. package/.scannerwork/scanner-report/syntax-highlightings-63.pb +182 -0
  258. package/.scannerwork/scanner-report/syntax-highlightings-64.pb +110 -0
  259. package/.scannerwork/scanner-report/syntax-highlightings-65.pb +67 -187
  260. package/.scannerwork/scanner-report/syntax-highlightings-66.pb +64 -183
  261. package/.scannerwork/scanner-report/syntax-highlightings-67.pb +59 -0
  262. package/.scannerwork/scanner-report/syntax-highlightings-68.pb +48 -0
  263. package/.scannerwork/scanner-report/syntax-highlightings-69.pb +3545 -445
  264. package/package.json +5 -5
  265. package/test-14-results.xml +155 -155
  266. package/test-16-results.xml +147 -147
  267. package/test-18-results.xml +158 -158
  268. package/test-19-results.xml +150 -150
  269. package/test-iam-18-results.xml +50 -50
  270. package/.scannerwork/scanner-report/changesets-25.pb +0 -1
  271. package/.scannerwork/scanner-report/changesets-26.pb +0 -1
  272. package/.scannerwork/scanner-report/changesets-27.pb +0 -1
  273. package/.scannerwork/scanner-report/changesets-28.pb +0 -1
  274. package/.scannerwork/scanner-report/changesets-29.pb +0 -1
  275. package/.scannerwork/scanner-report/changesets-31.pb +0 -1
  276. package/.scannerwork/scanner-report/changesets-32.pb +0 -1
  277. package/.scannerwork/scanner-report/changesets-35.pb +0 -1
  278. package/.scannerwork/scanner-report/changesets-41.pb +0 -1
  279. package/.scannerwork/scanner-report/changesets-42.pb +0 -1
  280. package/.scannerwork/scanner-report/changesets-43.pb +0 -1
  281. package/.scannerwork/scanner-report/changesets-44.pb +0 -1
  282. package/.scannerwork/scanner-report/changesets-45.pb +0 -1
  283. package/.scannerwork/scanner-report/changesets-46.pb +0 -1
  284. package/.scannerwork/scanner-report/changesets-47.pb +0 -1
  285. package/.scannerwork/scanner-report/changesets-48.pb +0 -1
  286. package/.scannerwork/scanner-report/changesets-49.pb +0 -1
  287. package/.scannerwork/scanner-report/changesets-5.pb +0 -1
  288. package/.scannerwork/scanner-report/changesets-50.pb +0 -1
  289. package/.scannerwork/scanner-report/changesets-51.pb +0 -1
  290. package/.scannerwork/scanner-report/changesets-6.pb +0 -1
  291. package/.scannerwork/scanner-report/changesets-69.pb +0 -1
  292. package/.scannerwork/scanner-report/changesets-7.pb +0 -1
  293. package/.scannerwork/scanner-report/component-26.pb +0 -1
  294. package/.scannerwork/scanner-report/component-28.pb +0 -1
  295. package/.scannerwork/scanner-report/component-29.pb +0 -1
  296. package/.scannerwork/scanner-report/component-32.pb +0 -1
  297. package/.scannerwork/scanner-report/component-35.pb +0 -1
  298. package/.scannerwork/scanner-report/component-41.pb +0 -1
  299. package/.scannerwork/scanner-report/component-42.pb +0 -1
  300. package/.scannerwork/scanner-report/component-43.pb +0 -1
  301. package/.scannerwork/scanner-report/component-44.pb +0 -1
  302. package/.scannerwork/scanner-report/component-45.pb +0 -1
  303. package/.scannerwork/scanner-report/component-46.pb +0 -1
  304. package/.scannerwork/scanner-report/component-47.pb +0 -1
  305. package/.scannerwork/scanner-report/component-48.pb +0 -1
  306. package/.scannerwork/scanner-report/component-49.pb +0 -1
  307. package/.scannerwork/scanner-report/component-5.pb +0 -1
  308. package/.scannerwork/scanner-report/component-50.pb +0 -1
  309. package/.scannerwork/scanner-report/component-51.pb +0 -1
  310. package/.scannerwork/scanner-report/component-6.pb +0 -1
  311. package/.scannerwork/scanner-report/component-7.pb +0 -1
  312. package/.scannerwork/scanner-report/coverages-26.pb +0 -0
  313. package/.scannerwork/scanner-report/coverages-28.pb +0 -0
  314. package/.scannerwork/scanner-report/coverages-31.pb +0 -0
  315. package/.scannerwork/scanner-report/coverages-43.pb +0 -0
  316. package/.scannerwork/scanner-report/coverages-46.pb +0 -0
  317. package/.scannerwork/scanner-report/coverages-47.pb +0 -0
  318. package/.scannerwork/scanner-report/coverages-49.pb +0 -0
  319. package/.scannerwork/scanner-report/coverages-51.pb +0 -0
  320. package/.scannerwork/scanner-report/coverages-69.pb +0 -0
  321. package/.scannerwork/scanner-report/coverages-7.pb +0 -0
  322. package/.scannerwork/scanner-report/duplications-43.pb +0 -2
  323. package/.scannerwork/scanner-report/duplications-45.pb +0 -2
  324. package/.scannerwork/scanner-report/duplications-6.pb +0 -0
  325. package/.scannerwork/scanner-report/duplications-69.pb +0 -0
  326. package/.scannerwork/scanner-report/duplications-7.pb +0 -0
  327. package/.scannerwork/scanner-report/measures-26.pb +0 -0
  328. package/.scannerwork/scanner-report/measures-28.pb +0 -0
  329. package/.scannerwork/scanner-report/measures-29.pb +0 -0
  330. package/.scannerwork/scanner-report/measures-43.pb +0 -0
  331. package/.scannerwork/scanner-report/measures-46.pb +0 -0
  332. package/.scannerwork/scanner-report/measures-47.pb +0 -0
  333. package/.scannerwork/scanner-report/measures-49.pb +0 -0
  334. package/.scannerwork/scanner-report/measures-5.pb +0 -0
  335. package/.scannerwork/scanner-report/measures-51.pb +0 -0
  336. package/.scannerwork/scanner-report/measures-6.pb +0 -0
  337. package/.scannerwork/scanner-report/measures-7.pb +0 -0
  338. package/.scannerwork/scanner-report/source-26.txt +0 -63
  339. package/.scannerwork/scanner-report/source-28.txt +0 -142
  340. package/.scannerwork/scanner-report/source-29.txt +0 -366
  341. package/.scannerwork/scanner-report/source-43.txt +0 -92
  342. package/.scannerwork/scanner-report/source-46.txt +0 -54
  343. package/.scannerwork/scanner-report/source-47.txt +0 -41
  344. package/.scannerwork/scanner-report/source-49.txt +0 -129
  345. package/.scannerwork/scanner-report/source-5.txt +0 -244
  346. package/.scannerwork/scanner-report/source-51.txt +0 -80
  347. package/.scannerwork/scanner-report/source-6.txt +0 -68
  348. package/.scannerwork/scanner-report/source-7.txt +0 -47
  349. package/.scannerwork/scanner-report/symbols-26.pb +0 -43
  350. package/.scannerwork/scanner-report/symbols-28.pb +0 -116
  351. package/.scannerwork/scanner-report/symbols-31.pb +0 -69
  352. package/.scannerwork/scanner-report/symbols-43.pb +0 -44
  353. package/.scannerwork/scanner-report/symbols-46.pb +0 -15
  354. package/.scannerwork/scanner-report/symbols-47.pb +0 -18
  355. package/.scannerwork/scanner-report/symbols-49.pb +0 -33
  356. package/.scannerwork/scanner-report/symbols-51.pb +0 -46
  357. package/.scannerwork/scanner-report/symbols-69.pb +0 -610
  358. package/.scannerwork/scanner-report/symbols-7.pb +0 -27
  359. package/.scannerwork/scanner-report/syntax-highlightings-26.pb +0 -82
  360. package/.scannerwork/scanner-report/syntax-highlightings-28.pb +0 -134
  361. package/.scannerwork/scanner-report/syntax-highlightings-29.pb +0 -630
  362. package/.scannerwork/scanner-report/syntax-highlightings-43.pb +0 -90
  363. package/.scannerwork/scanner-report/syntax-highlightings-46.pb +0 -54
  364. package/.scannerwork/scanner-report/syntax-highlightings-47.pb +0 -50
  365. package/.scannerwork/scanner-report/syntax-highlightings-49.pb +0 -129
  366. package/.scannerwork/scanner-report/syntax-highlightings-5.pb +0 -329
  367. package/.scannerwork/scanner-report/syntax-highlightings-51.pb +0 -95
  368. package/.scannerwork/scanner-report/syntax-highlightings-6.pb +0 -110
  369. package/.scannerwork/scanner-report/syntax-highlightings-7.pb +0 -68
  370. /package/.scannerwork/scanner-report/{coverages-48.pb → coverages-11.pb} +0 -0
  371. /package/.scannerwork/scanner-report/{coverages-42.pb → coverages-13.pb} +0 -0
  372. /package/.scannerwork/scanner-report/{coverages-44.pb → coverages-14.pb} +0 -0
  373. /package/.scannerwork/scanner-report/{coverages-50.pb → coverages-15.pb} +0 -0
  374. /package/.scannerwork/scanner-report/{coverages-41.pb → coverages-16.pb} +0 -0
  375. /package/.scannerwork/scanner-report/{coverages-45.pb → coverages-17.pb} +0 -0
  376. /package/.scannerwork/scanner-report/{coverages-35.pb → coverages-39.pb} +0 -0
  377. /package/.scannerwork/scanner-report/{coverages-5.pb → coverages-40.pb} +0 -0
  378. /package/.scannerwork/scanner-report/{coverages-6.pb → coverages-55.pb} +0 -0
  379. /package/.scannerwork/scanner-report/{coverages-29.pb → coverages-61.pb} +0 -0
  380. /package/.scannerwork/scanner-report/{coverages-32.pb → coverages-62.pb} +0 -0
  381. /package/.scannerwork/scanner-report/{coverages-27.pb → coverages-67.pb} +0 -0
  382. /package/.scannerwork/scanner-report/{coverages-25.pb → coverages-68.pb} +0 -0
  383. /package/.scannerwork/scanner-report/{duplications-26.pb → duplications-11.pb} +0 -0
  384. /package/.scannerwork/scanner-report/{duplications-27.pb → duplications-12.pb} +0 -0
  385. /package/.scannerwork/scanner-report/{duplications-28.pb → duplications-13.pb} +0 -0
  386. /package/.scannerwork/scanner-report/{duplications-29.pb → duplications-14.pb} +0 -0
  387. /package/.scannerwork/scanner-report/{duplications-31.pb → duplications-15.pb} +0 -0
  388. /package/.scannerwork/scanner-report/{duplications-35.pb → duplications-16.pb} +0 -0
  389. /package/.scannerwork/scanner-report/{duplications-41.pb → duplications-18.pb} +0 -0
  390. /package/.scannerwork/scanner-report/{duplications-42.pb → duplications-2.pb} +0 -0
  391. /package/.scannerwork/scanner-report/{duplications-44.pb → duplications-39.pb} +0 -0
  392. /package/.scannerwork/scanner-report/{duplications-5.pb → duplications-40.pb} +0 -0
  393. /package/.scannerwork/scanner-report/{duplications-46.pb → duplications-55.pb} +0 -0
  394. /package/.scannerwork/scanner-report/{duplications-47.pb → duplications-56.pb} +0 -0
  395. /package/.scannerwork/scanner-report/{duplications-48.pb → duplications-59.pb} +0 -0
  396. /package/.scannerwork/scanner-report/{duplications-49.pb → duplications-61.pb} +0 -0
  397. /package/.scannerwork/scanner-report/{duplications-32.pb → duplications-62.pb} +0 -0
  398. /package/.scannerwork/scanner-report/{duplications-50.pb → duplications-64.pb} +0 -0
  399. /package/.scannerwork/scanner-report/{duplications-51.pb → duplications-67.pb} +0 -0
  400. /package/.scannerwork/scanner-report/{issues-7.pb → issues-36.pb} +0 -0
  401. /package/.scannerwork/scanner-report/{issues-28.pb → issues-37.pb} +0 -0
  402. /package/.scannerwork/scanner-report/{issues-5.pb → issues-40.pb} +0 -0
  403. /package/.scannerwork/scanner-report/{issues-29.pb → issues-61.pb} +0 -0
  404. /package/.scannerwork/scanner-report/{measures-48.pb → measures-11.pb} +0 -0
  405. /package/.scannerwork/scanner-report/{measures-42.pb → measures-13.pb} +0 -0
  406. /package/.scannerwork/scanner-report/{measures-44.pb → measures-14.pb} +0 -0
  407. /package/.scannerwork/scanner-report/{measures-50.pb → measures-15.pb} +0 -0
  408. /package/.scannerwork/scanner-report/{measures-41.pb → measures-16.pb} +0 -0
  409. /package/.scannerwork/scanner-report/{measures-45.pb → measures-17.pb} +0 -0
  410. /package/.scannerwork/scanner-report/{measures-35.pb → measures-39.pb} +0 -0
  411. /package/.scannerwork/scanner-report/{measures-32.pb → measures-62.pb} +0 -0
  412. /package/.scannerwork/scanner-report/{source-48.txt → source-11.txt} +0 -0
  413. /package/.scannerwork/scanner-report/{source-42.txt → source-13.txt} +0 -0
  414. /package/.scannerwork/scanner-report/{source-44.txt → source-14.txt} +0 -0
  415. /package/.scannerwork/scanner-report/{source-50.txt → source-15.txt} +0 -0
  416. /package/.scannerwork/scanner-report/{source-41.txt → source-16.txt} +0 -0
  417. /package/.scannerwork/scanner-report/{source-45.txt → source-17.txt} +0 -0
  418. /package/.scannerwork/scanner-report/{source-35.txt → source-39.txt} +0 -0
  419. /package/.scannerwork/scanner-report/{source-32.txt → source-62.txt} +0 -0
  420. /package/.scannerwork/scanner-report/{symbols-48.pb → symbols-11.pb} +0 -0
  421. /package/.scannerwork/scanner-report/{symbols-42.pb → symbols-13.pb} +0 -0
  422. /package/.scannerwork/scanner-report/{symbols-44.pb → symbols-14.pb} +0 -0
  423. /package/.scannerwork/scanner-report/{symbols-50.pb → symbols-15.pb} +0 -0
  424. /package/.scannerwork/scanner-report/{symbols-41.pb → symbols-16.pb} +0 -0
  425. /package/.scannerwork/scanner-report/{symbols-45.pb → symbols-17.pb} +0 -0
  426. /package/.scannerwork/scanner-report/{symbols-35.pb → symbols-39.pb} +0 -0
  427. /package/.scannerwork/scanner-report/{symbols-5.pb → symbols-40.pb} +0 -0
  428. /package/.scannerwork/scanner-report/{symbols-6.pb → symbols-55.pb} +0 -0
  429. /package/.scannerwork/scanner-report/{symbols-29.pb → symbols-61.pb} +0 -0
  430. /package/.scannerwork/scanner-report/{symbols-32.pb → symbols-62.pb} +0 -0
  431. /package/.scannerwork/scanner-report/{symbols-27.pb → symbols-67.pb} +0 -0
  432. /package/.scannerwork/scanner-report/{symbols-25.pb → symbols-68.pb} +0 -0
  433. /package/.scannerwork/scanner-report/{syntax-highlightings-48.pb → syntax-highlightings-11.pb} +0 -0
  434. /package/.scannerwork/scanner-report/{syntax-highlightings-42.pb → syntax-highlightings-13.pb} +0 -0
  435. /package/.scannerwork/scanner-report/{syntax-highlightings-44.pb → syntax-highlightings-14.pb} +0 -0
  436. /package/.scannerwork/scanner-report/{syntax-highlightings-50.pb → syntax-highlightings-15.pb} +0 -0
  437. /package/.scannerwork/scanner-report/{syntax-highlightings-41.pb → syntax-highlightings-16.pb} +0 -0
  438. /package/.scannerwork/scanner-report/{syntax-highlightings-45.pb → syntax-highlightings-17.pb} +0 -0
  439. /package/.scannerwork/scanner-report/{syntax-highlightings-35.pb → syntax-highlightings-39.pb} +0 -0
  440. /package/.scannerwork/scanner-report/{syntax-highlightings-32.pb → syntax-highlightings-62.pb} +0 -0
@@ -0,0 +1,36 @@
1
+ // Copyright © 2017 IBM Corp. All rights reserved.
2
+ //
3
+ // Licensed under the Apache License, Version 2.0 (the "License");
4
+ // you may not use this file except in compliance with the License.
5
+ // You may obtain a copy of the License at
6
+ //
7
+ // http://www.apache.org/licenses/LICENSE-2.0
8
+ //
9
+ // Unless required by applicable law or agreed to in writing, software
10
+ // distributed under the License is distributed on an "AS IS" BASIS,
11
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ // See the License for the specific language governing permissions and
13
+ // limitations under the License.
14
+
15
+ /* global describe it */
16
+ 'use strict';
17
+
18
+ const u = require('./citestutils.js');
19
+
20
+ describe('Encryption tests', function() {
21
+ // Note CLI only to use openssl command
22
+ const p = { useApi: false, encryption: true };
23
+
24
+ it('should backup and restore animaldb via an encrypted file', function(done) {
25
+ // Allow up to 60 s for backup and restore of animaldb
26
+ u.setTimeout(this, 60);
27
+ const encryptedBackup = `./${this.fileName}`;
28
+ u.testBackupAndRestoreViaFile(p, 'animaldb', encryptedBackup, this.dbName, function(err) {
29
+ if (err) {
30
+ done(err);
31
+ } else {
32
+ u.assertEncryptedFile(encryptedBackup, done);
33
+ }
34
+ });
35
+ });
36
+ });
@@ -1,5 +1,4 @@
1
- #!/usr/bin/env node
2
- // Copyright © 2017, 2021 IBM Corp. All rights reserved.
1
+ // Copyright © 2017 IBM Corp. All rights reserved.
3
2
  //
4
3
  // Licensed under the Apache License, Version 2.0 (the "License");
5
4
  // you may not use this file except in compliance with the License.
@@ -12,66 +11,25 @@
12
11
  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
12
  // See the License for the specific language governing permissions and
14
13
  // limitations under the License.
15
- 'use strict';
16
-
17
- const error = require('../includes/error.js');
18
- const fs = require('fs');
19
- const cliutils = require('../includes/cliutils.js');
20
- const couchbackup = require('../app.js');
21
- const parser = require('../includes/parser.js');
22
- const debug = require('debug');
23
- const backupDebug = debug('couchbackup:backup');
24
- const backupBatchDebug = debug('couchbackup:backup:batch');
25
-
26
- backupDebug.enabled = true;
27
-
28
- const program = parser.parseBackupArgs();
29
-
30
- const databaseUrl = cliutils.databaseUrl(program.url, program.db);
31
- const opts = {
32
- bufferSize: program.bufferSize,
33
- log: program.log,
34
- mode: program.mode,
35
- parallelism: program.parallelism,
36
- requestTimeout: program.requestTimeout,
37
- resume: program.resume,
38
- iamApiKey: program.iamApiKey,
39
- iamTokenUrl: program.iamTokenUrl
40
- };
41
14
 
42
- // log configuration to console
43
- console.error('='.repeat(80));
44
- console.error('Performing backup on ' + databaseUrl.replace(/\/\/.+@/g, '//****:****@') + ' using configuration:');
45
- console.error(JSON.stringify(opts, null, 2).replace(/"iamApiKey": "[^"]+"/, '"iamApiKey": "****"'));
46
- console.error('='.repeat(80));
47
-
48
- backupBatchDebug.enabled = !program.quiet;
49
-
50
- let ws = process.stdout;
51
-
52
- // open output file
53
- if (program.output) {
54
- let flags = 'w';
55
- if (program.log && program.resume) {
56
- flags = 'a';
57
- }
58
- const fd = fs.openSync(program.output, flags);
59
- ws = fs.createWriteStream(null, { fd: fd });
60
- }
61
-
62
- backupDebug('Fetching all database changes...');
15
+ /* global describe it */
16
+ 'use strict';
63
17
 
64
- return couchbackup.backup(
65
- databaseUrl,
66
- ws,
67
- opts,
68
- error.terminationCallback
69
- ).on('changes', function(batch) {
70
- backupBatchDebug('Total batches received:', batch + 1);
71
- }).on('written', function(obj) {
72
- backupBatchDebug('Written batch ID:', obj.batch, 'Total document revisions written:', obj.total, 'Time:', obj.time);
73
- }).on('error', function(e) {
74
- backupDebug('ERROR', e);
75
- }).on('finished', function(obj) {
76
- backupDebug('Finished - Total document revisions written:', obj.total);
18
+ const assert = require('assert');
19
+ const logfilegetbatches = require('../includes/logfilegetbatches.js');
20
+
21
+ describe('#unit Fetching batches from a log file', function() {
22
+ it('should fetch multiple batches correctly', function(done) {
23
+ logfilegetbatches('./test/fixtures/test.log', [1, 4], function(err, data) {
24
+ assert.ok(!err);
25
+ assert.ok(data);
26
+ assert.strictEqual(typeof data, 'object');
27
+ assert.strictEqual(Object.keys(data).length, 2);
28
+ assert.deepStrictEqual(data['1'].docs, [{ id: '6' }, { id: '7' }, { id: '8' }, { id: '9' }, { id: '10' }]);
29
+ assert.strictEqual(data['1'].batch, 1);
30
+ assert.deepStrictEqual(data['4'].docs, [{ id: '21' }, { id: '22' }]);
31
+ assert.strictEqual(data['4'].batch, 4);
32
+ done();
33
+ });
34
+ });
77
35
  });
@@ -1,4 +1,3 @@
1
- #!/usr/bin/env node
2
1
  // Copyright © 2017, 2021 IBM Corp. All rights reserved.
3
2
  //
4
3
  // Licensed under the Apache License, Version 2.0 (the "License");
@@ -12,45 +11,146 @@
12
11
  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
12
  // See the License for the specific language governing permissions and
14
13
  // limitations under the License.
14
+
15
+ /* global describe it */
15
16
  'use strict';
16
17
 
17
- const error = require('../includes/error.js');
18
- const cliutils = require('../includes/cliutils.js');
19
- const couchbackup = require('../app.js');
20
- const parser = require('../includes/parser.js');
21
- const debug = require('debug');
22
- const restoreDebug = debug('couchbackup:restore');
23
- const restoreBatchDebug = debug('couchbackup:restore:batch');
24
-
25
- restoreDebug.enabled = true;
26
-
27
- const program = parser.parseRestoreArgs();
28
- const databaseUrl = cliutils.databaseUrl(program.url, program.db);
29
- const opts = {
30
- bufferSize: program.bufferSize,
31
- parallelism: program.parallelism,
32
- requestTimeout: program.requestTimeout,
33
- iamApiKey: program.iamApiKey,
34
- iamTokenUrl: program.iamTokenUrl
35
- };
36
-
37
- // log configuration to console
38
- console.error('='.repeat(80));
39
- console.error('Performing restore on ' + databaseUrl.replace(/\/\/.+@/g, '//****:****@') + ' using configuration:');
40
- console.error(JSON.stringify(opts, null, 2).replace(/"iamApiKey": "[^"]+"/, '"iamApiKey": "****"'));
41
- console.error('='.repeat(80));
42
-
43
- restoreBatchDebug.enabled = !program.quiet;
44
-
45
- return couchbackup.restore(
46
- process.stdin, // restore from stdin
47
- databaseUrl,
48
- opts,
49
- error.terminationCallback
50
- ).on('restored', function(obj) {
51
- restoreBatchDebug('restored', obj.total);
52
- }).on('error', function(e) {
53
- restoreDebug('ERROR', e);
54
- }).on('finished', function(obj) {
55
- restoreDebug('finished', obj);
18
+ const assert = require('assert');
19
+ const nock = require('nock');
20
+ const request = require('../includes/request.js');
21
+ const changes = require('../includes/spoolchanges.js');
22
+
23
+ const url = 'http://localhost:7777';
24
+ const dbName = 'fakenockdb';
25
+ const longTestTimeout = 3000;
26
+
27
+ const db = request.client(`${url}/${dbName}`, { parallelism: 1 });
28
+
29
+ const seqSuffix = Buffer.alloc(124, 'abc123').toString('base64');
30
+ function provideChanges(batchSize, totalChanges, fullResponse = false) {
31
+ let pending = totalChanges;
32
+ const sparseResultsArray = Array(batchSize).fill({
33
+ seq: null,
34
+ id: 'doc',
35
+ changes: [{ rev: '1-abcdef0123456789abcdef0123456789' }]
36
+ });
37
+ nock(url)
38
+ .post(`/${dbName}/_changes`)
39
+ .query(true)
40
+ .times(totalChanges / batchSize + (totalChanges % batchSize > 0 ? 1 : 0))
41
+ .reply(200, (uri, requestBody) => {
42
+ pending -= batchSize;
43
+ const lastSeq = (totalChanges - pending);
44
+ const seq = lastSeq - batchSize;
45
+ return {
46
+ results: fullResponse
47
+ ? Array.from(Array(batchSize), (_, i) => {
48
+ return {
49
+ seq: `${seq + i}-${seqSuffix}`,
50
+ id: `doc${seq + i}`,
51
+ changes: [{ rev: '1-abcdef0123456789abcdef0123456789' }]
52
+ };
53
+ })
54
+ : sparseResultsArray,
55
+ pending: pending,
56
+ last_seq: `${lastSeq}-abc`
57
+ };
58
+ });
59
+ }
60
+
61
+ describe('#unit Check spool changes', function() {
62
+ it('should terminate on request error', function(done) {
63
+ nock(url)
64
+ .post(`/${dbName}/_changes`)
65
+ .query(true)
66
+ .times(3)
67
+ .replyWithError({ code: 'ECONNRESET', message: 'socket hang up' });
68
+
69
+ changes(db, '/dev/null', 500, null, function(err) {
70
+ assert.strictEqual(err.name, 'SpoolChangesError');
71
+ assert.strictEqual(err.message, `Failed changes request - socket hang up: post ${url}/${dbName}/_changes`);
72
+ assert.ok(nock.isDone());
73
+ done();
74
+ });
75
+ }).timeout(longTestTimeout);
76
+
77
+ it('should terminate on bad HTTP status code response', function(done) {
78
+ nock(url)
79
+ .post(`/${dbName}/_changes`)
80
+ .query(true)
81
+ .times(3)
82
+ .reply(500, function(uri, requestBody) {
83
+ this.req.response.statusMessage = 'Internal Server Error';
84
+ return { error: 'foo', reason: 'bar' };
85
+ });
86
+
87
+ changes(db, '/dev/null', 500, null, function(err) {
88
+ assert.strictEqual(err.name, 'HTTPFatalError');
89
+ assert.strictEqual(err.message, `500 Internal Server Error: post ${url}/${dbName}/_changes - Error: foo, Reason: bar`);
90
+ assert.ok(nock.isDone());
91
+ done();
92
+ });
93
+ }).timeout(longTestTimeout);
94
+
95
+ it('should keep collecting changes', function(done) {
96
+ // This test validates that spooling will correctly
97
+ // continue across multiple requests
98
+ // (4 batches of 100000 to be precise).
99
+ // This test might take up to 10 seconds
100
+ this.timeout(10 * 1000);
101
+
102
+ // Use full changes for this test
103
+ provideChanges(100000, 400000, true);
104
+ changes(db, '/dev/null', 500, null, function(err) {
105
+ assert.ok(!err);
106
+ assert.ok(nock.isDone());
107
+ done();
108
+ });
109
+ });
110
+
111
+ it('should keep collecting sparse changes', function(done) {
112
+ // This test checks that making thousands of requests doesn't
113
+ // make anything bad happen.
114
+ // This test might take up to 25 seconds
115
+ this.timeout(25 * 1000);
116
+ // Use sparse changes for this test and a batch size of 1
117
+ provideChanges(1, 2500);
118
+ changes(db, '/dev/null', 500, null, function(err) {
119
+ assert.ok(!err);
120
+ assert.ok(nock.isDone());
121
+ done();
122
+ });
123
+ });
124
+ });
125
+
126
+ describe('Longer spool changes checks', function() {
127
+ it('#slow should keep collecting changes (25M)', function(done) {
128
+ // This test might take up to 5 minutes
129
+ this.timeout(5 * 60 * 1000);
130
+ // Note changes spooling uses a constant batch size, we are setting
131
+ // a test value here and setting the buffer to match
132
+ const batch = 100000;
133
+ // Use sparse changes for this test
134
+ provideChanges(batch, 25000000);
135
+ changes(db, '/dev/null', batch, null, function(err) {
136
+ assert.ok(!err);
137
+ assert.ok(nock.isDone());
138
+ done();
139
+ });
140
+ });
141
+
142
+ it('#slower should keep collecting changes (500M)', function(done) {
143
+ // This test might take up to 90 minutes
144
+ this.timeout(90 * 60 * 1000);
145
+ // Note changes spooling uses a constant batch size, we are setting
146
+ // a test value here and setting the buffer to match
147
+ const batch = 1000000;
148
+ // Use full changes for this test to exercise load
149
+ provideChanges(batch, 500000000, true);
150
+ changes(db, '/dev/null', batch, null, function(err) {
151
+ assert.ok(!err);
152
+ assert.ok(nock.isDone());
153
+ done();
154
+ });
155
+ });
56
156
  });