bfg-common 1.2.19 → 1.2.20

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 (632) hide show
  1. package/.eslintrc.js +21 -21
  2. package/.idea/inspectionProfiles/Project_Default.xml +48 -48
  3. package/.idea/modules.xml +7 -7
  4. package/.idea/prettier.xml +5 -5
  5. package/.idea/uikit.iml +11 -11
  6. package/.idea/vcs.xml +5 -5
  7. package/.prettierrc +4 -4
  8. package/PROJECT_STRUCTURE.md +42 -42
  9. package/README.md +42 -42
  10. package/assets/img/icons/icon-hcs.svg +3 -3
  11. package/assets/img/icons/icon-life-m-dark.svg +3 -3
  12. package/assets/img/icons/icon-life-m-light.svg +3 -3
  13. package/assets/img/icons/icon-ro-dark.svg +1 -1
  14. package/assets/img/icons/icon-ro-light.svg +2 -2
  15. package/assets/img/icons/icons-sprite-dark-6.svg +1 -1
  16. package/assets/img/icons/icons-sprite-light-6.svg +1 -1
  17. package/assets/img/icons/info.svg +8 -8
  18. package/assets/img/icons/vc.svg +52 -52
  19. package/assets/img/logo copy.svg +50 -50
  20. package/assets/img/logo.svg +51 -51
  21. package/assets/localization/local_be.json +2077 -2077
  22. package/assets/localization/local_en.json +2080 -2080
  23. package/assets/localization/local_hy.json +2080 -2080
  24. package/assets/localization/local_kk.json +2080 -2080
  25. package/assets/localization/local_ru.json +2080 -2080
  26. package/assets/localization/local_zh.json +2080 -2080
  27. package/assets/scss/clarity/clr-ui.min.css +8 -8
  28. package/assets/scss/common/animations.scss +28 -28
  29. package/assets/scss/common/global.scss +172 -172
  30. package/assets/scss/common/icons/icons-1.scss +188 -188
  31. package/assets/scss/common/icons/icons-2.scss +208 -208
  32. package/assets/scss/common/icons/icons-3.scss +176 -176
  33. package/assets/scss/common/icons/icons-4.scss +179 -179
  34. package/assets/scss/common/icons/icons-5.scss +53 -53
  35. package/assets/scss/common/icons/icons-6.scss +29 -29
  36. package/assets/scss/common/icons/icons.scss +15 -15
  37. package/assets/scss/common/mixins.scss +39 -39
  38. package/assets/scss/common/normalize.scss +320 -320
  39. package/assets/scss/common/theme.scss +230 -230
  40. package/assets/scss/common/utilities.scss +18 -18
  41. package/assets/scss/common/variables.scss +43 -43
  42. package/assets/scss/main.scss +13 -13
  43. package/components/atoms/DiagramIcon.vue +334 -334
  44. package/components/atoms/TheIcon.vue +1687 -1687
  45. package/components/atoms/TheIcon2.vue +355 -355
  46. package/components/atoms/alert/Alert.spec.ts +38 -38
  47. package/components/atoms/alert/Alert.vue +84 -84
  48. package/components/atoms/alert/Notification.spec.ts +34 -34
  49. package/components/atoms/alert/models/enums.ts +12 -12
  50. package/components/atoms/alert/models/interfaces.ts +27 -27
  51. package/components/atoms/alert/models/types.ts +7 -7
  52. package/components/atoms/collapse/CollapseNav.vue +158 -158
  53. package/components/atoms/collapse/CollapseNavItem.vue +190 -190
  54. package/components/atoms/collapse/models/interfaces.ts +9 -9
  55. package/components/atoms/combobox/Combobox.vue +147 -147
  56. package/components/atoms/datepicker/config/allShortMonths.ts +103 -103
  57. package/components/atoms/datepicker/config/datapicker.ts +43 -43
  58. package/components/atoms/datepicker/models/interfaces.ts +8 -8
  59. package/components/atoms/dropdown/Portlet.spec.ts +26 -26
  60. package/components/atoms/dropdown/Portlet.vue +111 -111
  61. package/components/atoms/dropdown/dropdown/Dropdown.vue +148 -148
  62. package/components/atoms/dropdown/dropdown/models/interfaces.ts +8 -8
  63. package/components/atoms/dropdown/tree/Tree.vue +134 -134
  64. package/components/atoms/dropdown/tree/models/interfaces.ts +9 -9
  65. package/components/atoms/input/Search.vue +16 -16
  66. package/components/atoms/list/SimpleList.vue +29 -29
  67. package/components/atoms/list/dragDropList/DragDropList.vue +139 -139
  68. package/components/atoms/list/dragDropList/config/events.ts +4 -4
  69. package/components/atoms/loader/BarLoader.vue +21 -21
  70. package/components/atoms/loader/Loader.vue +26 -26
  71. package/components/atoms/loader/PreLoader.vue +34 -34
  72. package/components/atoms/loader/Preloader.spec.ts +24 -24
  73. package/components/atoms/modal/Modal.spec.ts +55 -55
  74. package/components/atoms/modal/Modal.vue +241 -241
  75. package/components/atoms/modal/bySteps/BySteps.spec.ts +66 -66
  76. package/components/atoms/modal/bySteps/BySteps.vue +241 -241
  77. package/components/atoms/modal/byStepsSecond/ByStepsSecond.vue +174 -174
  78. package/components/atoms/models/interfaces.ts +11 -11
  79. package/components/atoms/nav/NavBar.spec.ts +34 -34
  80. package/components/atoms/nav/models/interfaces.ts +5 -5
  81. package/components/atoms/notificationBar/models/enums.ts +13 -13
  82. package/components/atoms/notificationBar/models/interfaces.ts +6 -6
  83. package/components/atoms/notificationBar/models/types.ts +1 -1
  84. package/components/atoms/popover/Popover.vue +48 -48
  85. package/components/atoms/select/TheSelect.vue +175 -175
  86. package/components/atoms/select/models/interfaces.ts +4 -4
  87. package/components/atoms/stack/StackBlock.vue +171 -171
  88. package/components/atoms/stack/StackContent.vue +60 -60
  89. package/components/atoms/step/VerticalStep.spec.ts +68 -68
  90. package/components/atoms/step/models/verticalStepItem.ts +7 -7
  91. package/components/atoms/table/compact/Compact.vue +526 -526
  92. package/components/atoms/table/compact/models/interfaces.ts +10 -10
  93. package/components/atoms/table/dataGrid/DataGrid.spec.ts +61 -61
  94. package/components/atoms/table/dataGrid/DataGrid.vue +1471 -1471
  95. package/components/atoms/table/dataGrid/DataGridPagination.vue +89 -89
  96. package/components/atoms/table/dataGrid/config/itemsPerPage.ts +20 -20
  97. package/components/atoms/table/dataGrid/models/interfaces.ts +24 -24
  98. package/components/atoms/table/dataGrid/models/types.ts +5 -5
  99. package/components/atoms/table/dataGrid/utils/constructDataTable.ts +32 -32
  100. package/components/atoms/table/info/Info.vue +60 -60
  101. package/components/atoms/table/info/models/interfaces.ts +9 -9
  102. package/components/atoms/table/simpleEvent/SimpleEvent.vue +98 -98
  103. package/components/atoms/table/simpleEvent/models/interfaces.ts +9 -9
  104. package/components/atoms/table/simpleInfo/SimpleInfo.vue +68 -68
  105. package/components/atoms/table/simpleInfo/models/interfaces.ts +4 -4
  106. package/components/atoms/table/simpleTable/SimpleTable.vue +291 -291
  107. package/components/atoms/table/simpleTable/models/interfaces.ts +10 -10
  108. package/components/atoms/tabs/VerticalTabs.vue +81 -81
  109. package/components/atoms/tabs/models/interfaces.ts +4 -4
  110. package/components/atoms/tabs/models/types.ts +1 -1
  111. package/components/atoms/tooltip/Models/interfaces.ts +4 -4
  112. package/components/atoms/tooltip/Text.vue +39 -39
  113. package/components/atoms/tooltip/Tooltip.vue +57 -57
  114. package/components/atoms/tooltip/TooltipError.vue +113 -113
  115. package/components/common/accordion/Accordion.vue +183 -183
  116. package/components/common/accordion/Recursion.vue +216 -216
  117. package/components/common/accordion/models/enums.ts +5 -5
  118. package/components/common/accordion/models/interfaces.ts +15 -15
  119. package/components/common/accordion/models/types.ts +1 -1
  120. package/components/common/accordion/utils/accordion.ts +31 -31
  121. package/components/common/adapterManager/AdapterManager.vue +715 -715
  122. package/components/common/adapterManager/AddAdapterModal.vue +464 -464
  123. package/components/common/adapterManager/config/index.ts +19 -19
  124. package/components/common/adapterManager/ui/NoSelectedAdapter.vue +39 -39
  125. package/components/common/adapterManager/ui/SecondTitle.vue +37 -37
  126. package/components/common/adapterManager/ui/actions/ActionsBar.vue +93 -93
  127. package/components/common/adapterManager/ui/actions/AddAdapterButton.vue +28 -28
  128. package/components/common/adapterManager/ui/actions/MoveDownAdapterButton.vue +33 -33
  129. package/components/common/adapterManager/ui/actions/MoveUpAdapterButton.vue +33 -33
  130. package/components/common/adapterManager/ui/actions/RemoveAdapterButton.vue +34 -34
  131. package/components/common/adapterManager/ui/actions/VerticalSeparator.vue +10 -10
  132. package/components/common/adapterManager/ui/table/Adapters.vue +91 -91
  133. package/components/common/adapterManager/ui/table/Header.vue +89 -89
  134. package/components/common/adapterManager/ui/table/Table.vue +167 -167
  135. package/components/common/addNetworking/AddNetworking.vue +996 -996
  136. package/components/common/addNetworking/Wizard.vue +286 -286
  137. package/components/common/addNetworking/config/addNetworkingSteps.ts +438 -438
  138. package/components/common/addNetworking/config/index.ts +47 -47
  139. package/components/common/addNetworking/config/initialData.ts +78 -78
  140. package/components/common/addNetworking/config/portPropertiesStep.ts +19 -19
  141. package/components/common/addNetworking/config/selectSwitch.ts +19 -19
  142. package/components/common/addNetworking/config/sendData.ts +102 -102
  143. package/components/common/addNetworking/config/temporaryData.ts +7 -7
  144. package/components/common/addNetworking/config/validation.ts +23 -23
  145. package/components/common/addNetworking/mappers/mappers.ts +166 -166
  146. package/components/common/addNetworking/modals/SelectNetwork.vue +149 -149
  147. package/components/common/addNetworking/modals/SelectStandardSwitch.vue +125 -125
  148. package/components/common/addNetworking/modals/SelectSwitch.vue +114 -114
  149. package/components/common/addNetworking/models/enums.ts +6 -6
  150. package/components/common/addNetworking/models/interfaces.ts +208 -208
  151. package/components/common/addNetworking/models/types.ts +4 -4
  152. package/components/common/addNetworking/steps/ConnectionSettings.vue +269 -269
  153. package/components/common/addNetworking/steps/CreateStandardSwitch.vue +91 -91
  154. package/components/common/addNetworking/steps/Header.vue +52 -52
  155. package/components/common/addNetworking/steps/IpFourSettings.vue +361 -361
  156. package/components/common/addNetworking/steps/PhysicalAdapter.vue +24 -24
  157. package/components/common/addNetworking/steps/PortProperties.vue +481 -481
  158. package/components/common/addNetworking/steps/ReadyComplete.vue +29 -29
  159. package/components/common/addNetworking/steps/SelectConnectionType.vue +106 -106
  160. package/components/common/addNetworking/steps/SelectedTargetDevice.vue +558 -558
  161. package/components/common/addNetworking/utils/index.ts +212 -212
  162. package/components/common/browse/blocks/Container.vue +102 -102
  163. package/components/common/browse/blocks/contents/Files.vue +68 -68
  164. package/components/common/browse/blocks/info/Date.vue +21 -21
  165. package/components/common/browse/blocks/info/Size.vue +17 -17
  166. package/components/common/browse/blocks/info/Text.vue +16 -16
  167. package/components/common/browse/blocks/models/types.ts +1 -1
  168. package/components/common/browse/models/interfaces.ts +5 -5
  169. package/components/common/config/states.ts +67 -67
  170. package/components/common/context/Context.spec.ts +20 -20
  171. package/components/common/context/Context.vue +97 -97
  172. package/components/common/context/ContextRecursion.spec.ts +55 -55
  173. package/components/common/context/ContextRecursion.vue +251 -251
  174. package/components/common/context/models/interfaces.ts +26 -26
  175. package/components/common/details/DetailsItem.vue +106 -106
  176. package/components/common/details/DetailsList.vue +23 -23
  177. package/components/common/details/model/interfaces.ts +9 -9
  178. package/components/common/diagramMain/Header.vue +163 -163
  179. package/components/common/diagramMain/Highlights.vue +102 -102
  180. package/components/common/diagramMain/adapter/Adapter.vue +105 -105
  181. package/components/common/diagramMain/adapter/Block.vue +41 -41
  182. package/components/common/diagramMain/adapter/Contents.vue +96 -96
  183. package/components/common/diagramMain/adapter/Lines.vue +52 -52
  184. package/components/common/diagramMain/adapter/SecondBlock.vue +42 -42
  185. package/components/common/diagramMain/config/index.ts +51 -51
  186. package/components/common/diagramMain/config/initial.ts +37 -37
  187. package/components/common/diagramMain/modals/ManagePhysicalAdaptersModal.vue +236 -236
  188. package/components/common/diagramMain/modals/MigrateVmkernelAdapter.vue +535 -535
  189. package/components/common/diagramMain/modals/config/adapterModal.ts +110 -110
  190. package/components/common/diagramMain/modals/config/diagramConfig.ts +17 -17
  191. package/components/common/diagramMain/modals/config/index.ts +57 -57
  192. package/components/common/diagramMain/modals/config/initial.ts +181 -181
  193. package/components/common/diagramMain/modals/config/migrateVmkernelAdapterSteps.ts +81 -81
  194. package/components/common/diagramMain/modals/config/networkModal.ts +337 -337
  195. package/components/common/diagramMain/modals/config/portModal.ts +201 -201
  196. package/components/common/diagramMain/modals/config/switchModal.ts +172 -172
  197. package/components/common/diagramMain/modals/config/vCenterModal.ts +30 -30
  198. package/components/common/diagramMain/modals/config/validation.ts +2 -2
  199. package/components/common/diagramMain/modals/config/vmKernelAdapter.ts +90 -90
  200. package/components/common/diagramMain/modals/editSettings/ConfirmTeamingSettingsModal.vue +41 -41
  201. package/components/common/diagramMain/modals/editSettings/EditSettings.vue +491 -491
  202. package/components/common/diagramMain/modals/editSettings/EditSettingsModal.vue +714 -714
  203. package/components/common/diagramMain/modals/editSettings/tabs/NetworkProperties.vue +211 -211
  204. package/components/common/diagramMain/modals/editSettings/tabs/Security.vue +183 -183
  205. package/components/common/diagramMain/modals/editSettings/tabs/SwitchProperties.vue +161 -161
  206. package/components/common/diagramMain/modals/editSettings/tabs/TeamingFailover.vue +166 -166
  207. package/components/common/diagramMain/modals/editSettings/tabs/TrafficShaping.vue +393 -393
  208. package/components/common/diagramMain/modals/steps/ConnectionSettings.vue +206 -206
  209. package/components/common/diagramMain/modals/steps/SelectVmkernelAdapter.vue +221 -221
  210. package/components/common/diagramMain/modals/steps/VmkernelAdapterReadyComplete.vue +50 -50
  211. package/components/common/diagramMain/modals/utils/index.ts +9 -9
  212. package/components/common/diagramMain/modals/viewSettings/Info.vue +96 -96
  213. package/components/common/diagramMain/modals/viewSettings/ViewSettings.vue +171 -171
  214. package/components/common/diagramMain/modals/viewSettings/ViewSettingsModal.vue +93 -93
  215. package/components/common/diagramMain/models/enums.ts +26 -26
  216. package/components/common/diagramMain/models/interfaces.ts +565 -565
  217. package/components/common/diagramMain/models/types.ts +9 -9
  218. package/components/common/diagramMain/network/Block.vue +55 -55
  219. package/components/common/diagramMain/network/Lines.vue +65 -65
  220. package/components/common/diagramMain/network/Network.vue +117 -117
  221. package/components/common/diagramMain/network/NoNetwork.vue +47 -47
  222. package/components/common/diagramMain/network/SecondBlock.vue +51 -51
  223. package/components/common/diagramMain/port/Port.vue +301 -301
  224. package/components/common/diagramMain/port/Ports.vue +41 -41
  225. package/components/common/diagramMain/switch/Switch.vue +71 -71
  226. package/components/common/diagramMain/switch/SwitchSelected.vue +29 -29
  227. package/components/common/diagramMain/utils/utils.ts +218 -218
  228. package/components/common/feedback/Feedback.vue +236 -236
  229. package/components/common/feedback/config/drawingPanel.ts +31 -31
  230. package/components/common/feedback/config/feedbackTabs.ts +24 -24
  231. package/components/common/feedback/models/interfaces.ts +15 -15
  232. package/components/common/graph/Graph.vue +109 -109
  233. package/components/common/graph/utils/renderGraph.ts +389 -389
  234. package/components/common/headline/Headline.vue +32 -32
  235. package/components/common/help/navbar/left/models/interfaces.ts +6 -6
  236. package/components/common/help/navbar/right/Right.vue +139 -139
  237. package/components/common/help/navbar/right/models/interfaces.ts +4 -4
  238. package/components/common/home/Card.vue +63 -63
  239. package/components/common/home/ResourceBlock.vue +117 -117
  240. package/components/common/home/StatusContent.vue +47 -47
  241. package/components/common/home/alertsTable/AlertsTable.vue +105 -105
  242. package/components/common/home/alertsTable/config/config.ts +61 -61
  243. package/components/common/home/alertsTable/models/enums.ts +11 -11
  244. package/components/common/home/alertsTable/models/interfaces.ts +19 -19
  245. package/components/common/home/alertsTable/models/types.ts +18 -18
  246. package/components/common/home/config/configResourceMeterBlock.ts +25 -25
  247. package/components/common/home/models/interfaces.ts +59 -59
  248. package/components/common/home/models/types.ts +18 -18
  249. package/components/common/home/servicesTable/ServicesTable.vue +79 -79
  250. package/components/common/home/servicesTable/config/config.ts +62 -62
  251. package/components/common/mainNavigationPanel/models/interfaces.ts +6 -6
  252. package/components/common/mainNavigationPanel/models/types.ts +1 -1
  253. package/components/common/modals/Confirmation.vue +85 -85
  254. package/components/common/modals/config/defaultForm.ts +18 -18
  255. package/components/common/modals/config/renameLabelWidth.ts +3 -3
  256. package/components/common/modals/models/interfaces.ts +5 -5
  257. package/components/common/monitor/advanced/Advanced.vue +235 -235
  258. package/components/common/monitor/advanced/GraphView.vue +141 -141
  259. package/components/common/monitor/advanced/models/interfaces.ts +7 -7
  260. package/components/common/monitor/advanced/models/types.ts +1 -1
  261. package/components/common/monitor/advanced/table/Table.vue +90 -90
  262. package/components/common/monitor/advanced/table/config/performanceDatatable.ts +116 -116
  263. package/components/common/monitor/advanced/table/models/interfaces.ts +12 -12
  264. package/components/common/monitor/advanced/table/models/types.ts +10 -10
  265. package/components/common/monitor/advanced/tools/Tools.vue +428 -428
  266. package/components/common/monitor/advanced/tools/chartOptionsModal/ChartOptionsModal.vue +484 -484
  267. package/components/common/monitor/advanced/tools/chartOptionsModal/Notification.vue +33 -33
  268. package/components/common/monitor/advanced/tools/chartOptionsModal/actions/Actions.vue +150 -150
  269. package/components/common/monitor/advanced/tools/chartOptionsModal/actions/saveOptionsModal/SaveOptionsModal.vue +76 -76
  270. package/components/common/monitor/advanced/tools/chartOptionsModal/actions/utils/optionsActions.ts +25 -25
  271. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/Counters.vue +94 -94
  272. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/Table.vue +130 -130
  273. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/config/tableConfig.ts +71 -71
  274. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/config/utils.ts +689 -689
  275. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/models/interfaces.ts +28 -28
  276. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/table/models/types.ts +5 -5
  277. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/Timespan.vue +79 -79
  278. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/form/Form.vue +501 -501
  279. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/form/config/dateForm.ts +59 -59
  280. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/object/Object.vue +176 -176
  281. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/object/config/objectTable.ts +54 -54
  282. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/object/models/interfaces.ts +4 -4
  283. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/object/models/types.ts +1 -1
  284. package/components/common/monitor/advanced/tools/chartOptionsModal/metrics/Metrics.vue +42 -42
  285. package/components/common/monitor/advanced/tools/chartOptionsModal/metrics/config/optionsMetrics.ts +116 -116
  286. package/components/common/monitor/advanced/tools/chartOptionsModal/models/models.ts +19 -19
  287. package/components/common/monitor/advanced/tools/chartOptionsModal/models/types.ts +3 -3
  288. package/components/common/monitor/advanced/tools/config/advancedToolbar.ts +117 -117
  289. package/components/common/monitor/advanced/tools/models/interfaces.ts +4 -4
  290. package/components/common/monitor/advanced/tools/utils/countCores.ts +7 -7
  291. package/components/common/monitor/config/getValidDateByOption.ts +113 -113
  292. package/components/common/monitor/models/interfaces.ts +21 -21
  293. package/components/common/monitor/overview/Overview.vue +453 -453
  294. package/components/common/monitor/overview/filters/Filters.vue +209 -209
  295. package/components/common/monitor/overview/filters/config/filterOptions.ts +72 -72
  296. package/components/common/monitor/overview/filters/customIntervalModal/CustomIntervalModal.vue +220 -220
  297. package/components/common/monitor/overview/filters/customIntervalModal/config/dateChecker.ts +35 -35
  298. package/components/common/monitor/overview/filters/models/interfaces.ts +7 -7
  299. package/components/common/monitor/overview/filters/models/types.ts +3 -3
  300. package/components/common/recursionTree/models/interfaces.ts +19 -19
  301. package/components/common/resource/models/interfaces.ts +9 -9
  302. package/components/common/resource/models/types.ts +1 -1
  303. package/components/common/resource/progressBlock/ProgressBlock.vue +105 -105
  304. package/components/common/resource/simple/Simple.vue +58 -58
  305. package/components/common/resource/simple/models/enums.ts +5 -5
  306. package/components/common/resource/utils.ts +33 -33
  307. package/components/common/select/button/ButtonDropdown.vue +100 -100
  308. package/components/common/select/button/models/interfaces.ts +6 -6
  309. package/components/common/select/radio/RadioGroup.vue +108 -108
  310. package/components/common/select/radio/models/interfaces.ts +8 -8
  311. package/components/common/shortcuts/Block.vue +83 -83
  312. package/components/common/shortcuts/Category.vue +40 -40
  313. package/components/common/shortcuts/Shortcuts.vue +44 -44
  314. package/components/common/shortcuts/models/interfaces.ts +10 -10
  315. package/components/common/spiceConsole/Drawer.vue +241 -241
  316. package/components/common/spiceConsole/SpiceConsole.vue +87 -87
  317. package/components/common/spiceConsole/keyboard/Keyboard.vue +402 -402
  318. package/components/common/spiceConsole/keyboard/config/keyboardRows.ts +891 -891
  319. package/components/common/spiceConsole/keyboard/models/interfaces.ts +17 -17
  320. package/components/common/spiceConsole/models/types.ts +1 -1
  321. package/components/common/split/horizontal/Horizontal.vue +306 -306
  322. package/components/common/split/horizontal/models/interfaces.ts +5 -5
  323. package/components/common/split/vertical/Vertical.vue +213 -213
  324. package/components/common/split/vertical/models/interfaces.ts +3 -3
  325. package/components/common/tools/Actions.vue +163 -163
  326. package/components/common/tools/models/interfaces.ts +6 -6
  327. package/components/common/vm/actions/add/Add.vue +687 -687
  328. package/components/common/vm/actions/add/FolderTreeView.vue +83 -83
  329. package/components/common/vm/actions/add/customizeHardware/CustomizeHardware.vue +266 -266
  330. package/components/common/vm/actions/add/customizeHardware/config/navItems.ts +19 -19
  331. package/components/common/vm/actions/add/customizeHardware/models/interfaces.ts +7 -7
  332. package/components/common/vm/actions/add/customizeHardware/virtualHardware/browseView/BrowseView.vue +203 -203
  333. package/components/common/vm/actions/add/customizeHardware/virtualHardware/browseView/models/interfaces.ts +8 -8
  334. package/components/common/vm/actions/add/customizeHardware/virtualHardware/bus/Bus.vue +127 -127
  335. package/components/common/vm/actions/add/customizeHardware/virtualHardware/bus/config/options.ts +13 -13
  336. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDrive.vue +246 -246
  337. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cdDvdDrive/config/fileTypes.ts +9 -9
  338. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cdDvdDrive/config/options.ts +11 -11
  339. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +55 -55
  340. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cdDvdDrive/models/types.ts +1 -1
  341. package/components/common/vm/actions/add/customizeHardware/virtualHardware/config/binaryOptions.ts +12 -12
  342. package/components/common/vm/actions/add/customizeHardware/virtualHardware/config/dropdownItems.ts +52 -52
  343. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/CpuHotPlug.vue +49 -49
  344. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/CpuModel.vue +220 -220
  345. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/Hv.vue +93 -93
  346. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/Iommu.vue +52 -52
  347. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/MaxCpu.vue +105 -105
  348. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/Pc.vue +54 -54
  349. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/Sa.vue +102 -102
  350. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/config/cpuOptions.ts +19 -19
  351. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/shares/Shares.vue +155 -155
  352. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/shares/config/options.ts +28 -28
  353. package/components/common/vm/actions/add/customizeHardware/virtualHardware/cpu/tooltip/Tooltip.vue +58 -58
  354. package/components/common/vm/actions/add/customizeHardware/virtualHardware/memory/MemoryHotPlug.vue +53 -53
  355. package/components/common/vm/actions/add/customizeHardware/virtualHardware/models/interfaces.ts +125 -125
  356. package/components/common/vm/actions/add/customizeHardware/virtualHardware/models/types.ts +4 -4
  357. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/DiskFile.vue +24 -24
  358. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/Location.vue +171 -171
  359. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/MaximumSize.vue +27 -27
  360. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/cache/Cache.vue +80 -80
  361. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/cache/config/options.ts +7 -7
  362. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/limitIops/LimitIops.vue +151 -151
  363. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/limitIops/config/options.ts +28 -28
  364. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/mode/Mode.vue +87 -87
  365. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/mode/config/options.ts +18 -18
  366. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/provisioning/Provisioning.vue +87 -87
  367. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/provisioning/config/options.ts +15 -15
  368. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/sharing/Sharing.vue +85 -85
  369. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/sharing/config/options.ts +12 -12
  370. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newNetwork/Location.vue +141 -141
  371. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newNetwork/adapterType/AdapterType.vue +86 -86
  372. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newNetwork/adapterType/config/options.ts +9 -9
  373. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +140 -140
  374. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newNetwork/macAddress/config/options.ts +11 -11
  375. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +157 -157
  376. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newPciDevice/config/options.ts +7 -7
  377. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIo.vue +44 -44
  378. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +49 -49
  379. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/config/options.ts +10 -10
  380. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +27 -27
  381. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGrid.vue +41 -41
  382. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newPciDevice/typeSelection/TypeSelection.vue +56 -56
  383. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newUsbController/NewUsbController.vue +67 -67
  384. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newUsbController/config/options.ts +6 -6
  385. package/components/common/vm/actions/add/customizeHardware/virtualHardware/other/InputDevices.vue +21 -21
  386. package/components/common/vm/actions/add/customizeHardware/virtualHardware/other/Other.vue +27 -27
  387. package/components/common/vm/actions/add/customizeHardware/virtualHardware/reservation/config/options.ts +33 -33
  388. package/components/common/vm/actions/add/customizeHardware/virtualHardware/videoCard/Graphics.vue +45 -45
  389. package/components/common/vm/actions/add/customizeHardware/virtualHardware/videoCard/TotalVideoMemory.vue +120 -120
  390. package/components/common/vm/actions/add/customizeHardware/virtualHardware/videoCard/config/options.ts +11 -11
  391. package/components/common/vm/actions/add/customizeHardware/virtualHardware/videoCard/model/Model.vue +57 -57
  392. package/components/common/vm/actions/add/customizeHardware/virtualHardware/videoCard/model/config/options.ts +10 -10
  393. package/components/common/vm/actions/add/customizeHardware/virtualHardware/videoCard/numberDisplays/NumberDisplays.vue +82 -82
  394. package/components/common/vm/actions/add/customizeHardware/virtualHardware/videoCard/numberDisplays/config/options.ts +14 -14
  395. package/components/common/vm/actions/add/customizeHardware/vmoptions/Vmoptions.vue +178 -178
  396. package/components/common/vm/actions/add/customizeHardware/vmoptions/bootOptions/BootOptions.vue +111 -111
  397. package/components/common/vm/actions/add/customizeHardware/vmoptions/bootOptions/Menu.vue +45 -45
  398. package/components/common/vm/actions/add/customizeHardware/vmoptions/bootOptions/Secure.vue +45 -45
  399. package/components/common/vm/actions/add/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +50 -50
  400. package/components/common/vm/actions/add/customizeHardware/vmoptions/bootOptions/delay/config/config.ts +14 -14
  401. package/components/common/vm/actions/add/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +83 -83
  402. package/components/common/vm/actions/add/customizeHardware/vmoptions/bootOptions/firmware/config/config.ts +11 -11
  403. package/components/common/vm/actions/add/customizeHardware/vmoptions/bootOptions/order/models/interfaces.ts +8 -8
  404. package/components/common/vm/actions/add/customizeHardware/vmoptions/models/interfaces.ts +34 -34
  405. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/FileTransfer.vue +51 -51
  406. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/FolderSharing.vue +50 -50
  407. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/PlaybackCompression.vue +51 -51
  408. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/PowerControl.vue +49 -49
  409. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/imgCompression/ImgCompression.vue +84 -84
  410. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/imgCompression/config/config.ts +14 -14
  411. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/jpegCompression/JpegCompression.vue +84 -84
  412. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/jpegCompression/config/config.ts +12 -12
  413. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/keymap/config/config.ts +6 -6
  414. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/mouseMode/MouseMode.vue +52 -52
  415. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/mouseMode/config/config.ts +11 -11
  416. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +136 -136
  417. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/password/models/interfaces.ts +5 -5
  418. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/password/utils.ts +12 -12
  419. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/sharePolicy/SharePolicy.vue +52 -52
  420. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/sharePolicy/config/config.ts +11 -11
  421. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/streamingMode/StreamingMode.vue +84 -84
  422. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/streamingMode/config/config.ts +12 -12
  423. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/type/Type.vue +84 -84
  424. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/type/config/config.ts +7 -7
  425. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +56 -56
  426. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/config/config.ts +14 -14
  427. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/zlibCompression/ZlibCompression.vue +84 -84
  428. package/components/common/vm/actions/add/customizeHardware/vmoptions/remoteConsoleOptions/zlibCompression/config/config.ts +12 -12
  429. package/components/common/vm/actions/add/customizeHardware/vmoptions/tools/Tools.vue +63 -63
  430. package/components/common/vm/actions/add/models/enums.ts +89 -89
  431. package/components/common/vm/actions/add/models/interfaces.ts +126 -126
  432. package/components/common/vm/actions/add/models/types.ts +65 -65
  433. package/components/common/vm/actions/add/readyToComplete/ReadyToComplete.vue +15 -15
  434. package/components/common/vm/actions/add/select/compatibility/Compatibility.vue +151 -151
  435. package/components/common/vm/actions/add/select/computeResource/ComputeResource.spec.ts +479 -479
  436. package/components/common/vm/actions/add/select/computeResource/ComputeResource.vue +170 -170
  437. package/components/common/vm/actions/add/select/computeResource/TreeView.vue +126 -126
  438. package/components/common/vm/actions/add/select/createType/CreateType.vue +61 -61
  439. package/components/common/vm/actions/add/select/createType/config/items.ts +26 -26
  440. package/components/common/vm/actions/add/select/models/interfaces.ts +32 -32
  441. package/components/common/vm/actions/add/select/models/types.ts +44 -44
  442. package/components/common/vm/actions/add/select/name/Name.vue +215 -215
  443. package/components/common/vm/actions/add/select/os/os.vue +221 -221
  444. package/components/common/vm/actions/add/select/storage/Storage.vue +177 -177
  445. package/components/common/vm/actions/add/select/storage/models/types.ts +15 -15
  446. package/components/common/vm/actions/add/utils.ts +118 -118
  447. package/components/common/vm/actions/clone/models/interfaces.ts +7 -7
  448. package/components/common/vm/actions/editSettings/EditSettings.vue +316 -316
  449. package/components/common/vm/actions/editSettings/models/types.ts +23 -23
  450. package/components/common/vm/actions/editSettings/utils.ts +48 -48
  451. package/components/common/vm/actions/models/interfaces.ts +6 -6
  452. package/components/common/vm/actions/models/types.ts +11 -11
  453. package/components/common/vm/actions/utils.ts +221 -221
  454. package/components/common/wizards/datastore/add/Add.vue +382 -382
  455. package/components/common/wizards/datastore/add/config/stepItems.ts +160 -160
  456. package/components/common/wizards/datastore/add/local/Local.vue +67 -67
  457. package/components/common/wizards/datastore/add/local/createName/CreateName.vue +159 -159
  458. package/components/common/wizards/datastore/add/local/createName/config/defaultForm.ts +15 -15
  459. package/components/common/wizards/datastore/add/models/interfaces.ts +35 -35
  460. package/components/common/wizards/datastore/add/models/types.ts +14 -14
  461. package/components/common/wizards/datastore/add/nfs/Nfs.vue +91 -91
  462. package/components/common/wizards/datastore/add/nfs/accessibility/Accessibility.vue +95 -95
  463. package/components/common/wizards/datastore/add/nfs/accessibility/config/tabsPannel.ts +24 -24
  464. package/components/common/wizards/datastore/add/nfs/accessibility/models/interfaces.ts +9 -9
  465. package/components/common/wizards/datastore/add/nfs/accessibility/models/types.ts +5 -5
  466. package/components/common/wizards/datastore/add/nfs/accessibility/tablesView/TablesView.vue +141 -141
  467. package/components/common/wizards/datastore/add/nfs/accessibility/tablesView/config/compatibleTable.ts +54 -54
  468. package/components/common/wizards/datastore/add/nfs/accessibility/tablesView/config/hostsTableItems.ts +75 -75
  469. package/components/common/wizards/datastore/add/nfs/accessibility/tablesView/config/incompatibleTable.ts +68 -68
  470. package/components/common/wizards/datastore/add/nfs/accessibility/tablesView/config/tableKeys.ts +15 -15
  471. package/components/common/wizards/datastore/add/nfs/configuration/config/defaultForm.ts +33 -33
  472. package/components/common/wizards/datastore/add/nfs/configuration/models/interfaces.ts +12 -12
  473. package/components/common/wizards/datastore/add/nfs/configuration/serversList/DeletePopover.vue +97 -97
  474. package/components/common/wizards/datastore/add/nfs/configuration/serversList/config/serversListConfig.ts +41 -41
  475. package/components/common/wizards/datastore/add/nfs/configuration/serversList/config/tableKeys.ts +3 -3
  476. package/components/common/wizards/datastore/add/nfs/configuration/serversList/models/interfaces.ts +11 -11
  477. package/components/common/wizards/datastore/add/nfs/configuration/serversList/models/types.ts +1 -1
  478. package/components/common/wizards/datastore/add/nfs/kerberosAuthentication/config/radioOptions.ts +24 -24
  479. package/components/common/wizards/datastore/add/nfs/version/Version.vue +42 -42
  480. package/components/common/wizards/datastore/add/nfs/version/config/versionOptions.ts +20 -20
  481. package/components/common/wizards/datastore/add/readyComplete/ReadyComplete.vue +77 -77
  482. package/components/common/wizards/datastore/add/readyComplete/config/propertiesDetails.ts +165 -165
  483. package/components/common/wizards/datastore/add/readyComplete/models/interfaces.ts +4 -4
  484. package/components/common/wizards/datastore/add/sharedStorm/SharedStorm.vue +85 -85
  485. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/DeviceSelection.vue +447 -447
  486. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/config/defaultForm.ts +18 -18
  487. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/config/selectOptions.ts +14 -14
  488. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/hostTable/config/hostsTable.ts +87 -87
  489. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/hostTable/config/tableKeys.ts +11 -11
  490. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/models/interfaces.ts +55 -55
  491. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/models/types.ts +14 -14
  492. package/components/common/wizards/datastore/add/sharedStorm/partitionConfiguration/config/selectOptions.ts +46 -46
  493. package/components/common/wizards/datastore/add/sharedStorm/partitionConfiguration/graphicTooltip/graphicTooltip.vue +64 -64
  494. package/components/common/wizards/datastore/add/sharedStorm/partitionConfiguration/sizeGraphic/sizeGraphic.vue +225 -225
  495. package/components/common/wizards/datastore/add/sharedStorm/version/Version.vue +39 -39
  496. package/components/common/wizards/datastore/add/sharedStorm/version/config/versionOptions.ts +21 -21
  497. package/components/common/wizards/datastore/add/types/Types.vue +77 -77
  498. package/components/common/wizards/datastore/add/types/config/typeOptions.ts +39 -39
  499. package/components/common/wizards/datastore/add/utils.ts +69 -69
  500. package/components/content/Hint.vue +24 -24
  501. package/components/models/interfaces.ts +14 -14
  502. package/composables/deepCopy.ts +21 -21
  503. package/composables/useDiff.ts +15 -15
  504. package/composables/useLocalStorage.ts +45 -45
  505. package/composables/useThrottle.ts +32 -32
  506. package/composables/useUniqueId.ts +5 -5
  507. package/config/regExp.ts +13 -13
  508. package/eslint/index.js +15 -15
  509. package/eslint/no-import-type.js +17 -17
  510. package/eslint/no-invalid-type-prefix.js +32 -32
  511. package/models/composables/useMyFetch/interfaces.ts +4 -4
  512. package/models/composables/useMyFetch/types.ts +1 -1
  513. package/models/enums.ts +21 -21
  514. package/models/interfaces.ts +29 -29
  515. package/models/plugins/date/interfaces.ts +5 -5
  516. package/models/plugins/date/types.ts +1 -1
  517. package/models/plugins/validation/interfaces.ts +21 -21
  518. package/models/plugins/validation/types.ts +1 -1
  519. package/models/store/host/interfaces.ts +38 -38
  520. package/models/store/network/interfaces.ts +13 -13
  521. package/models/store/vm/interfaces.ts +207 -207
  522. package/models/types.ts +6 -6
  523. package/modules/fixContentBuild/index.ts +92 -92
  524. package/modules/fixSpiceConsoleBuild/index.ts +28 -28
  525. package/modules/replaceEnv/index.ts +40 -40
  526. package/nuxt.config.ts +8 -8
  527. package/package.json +41 -41
  528. package/plugins/binary.ts +122 -122
  529. package/plugins/date.ts +179 -179
  530. package/plugins/recursion.ts +230 -230
  531. package/plugins/spice-console/spice.console.ts +18 -18
  532. package/plugins/text.ts +48 -48
  533. package/plugins/validation.ts +172 -172
  534. package/public/spice-console/application/WorkerProcess.js +3350 -3350
  535. package/public/spice-console/application/WorkerProcess_back.js +3144 -3144
  536. package/public/spice-console/application/WorkerProcess_meta.js +3102 -3102
  537. package/public/spice-console/application/WorkerProcess_reverse.js +3214 -3214
  538. package/public/spice-console/application/agent.js +175 -175
  539. package/public/spice-console/application/application.js +641 -641
  540. package/public/spice-console/application/checkActivity.js +50 -50
  541. package/public/spice-console/application/clientgui.js +842 -842
  542. package/public/spice-console/application/clipboard/clipboarddataparser.js +92 -92
  543. package/public/spice-console/application/clipboard/local/localClipboard.js +110 -110
  544. package/public/spice-console/application/clipboard.js +82 -82
  545. package/public/spice-console/application/imagecache.js +81 -81
  546. package/public/spice-console/application/inputmanager.js +270 -270
  547. package/public/spice-console/application/packetfactory.js +202 -202
  548. package/public/spice-console/application/packetfilter.js +103 -103
  549. package/public/spice-console/application/packetprocess.js +75 -75
  550. package/public/spice-console/application/rasteroperation.js +118 -118
  551. package/public/spice-console/application/spiceconnection.js +197 -197
  552. package/public/spice-console/application/stream.js +67 -67
  553. package/public/spice-console/application/virtualmouse.js +109 -109
  554. package/public/spice-console/keymaps/keyevent.js +36 -36
  555. package/public/spice-console/keymaps/keymap.js +229 -229
  556. package/public/spice-console/keymaps/keymapes.js +375 -375
  557. package/public/spice-console/keymaps/keymapesObj.js +316 -316
  558. package/public/spice-console/keymaps/keymapus.js +317 -317
  559. package/public/spice-console/keymaps/scanCodeObjModifier.js +65 -65
  560. package/public/spice-console/keymaps/scanCodeObjProvider.js +60 -60
  561. package/public/spice-console/lib/AsyncConsumer.js +204 -204
  562. package/public/spice-console/lib/AsyncWorker.js +60 -60
  563. package/public/spice-console/lib/CollisionDetector.js +27 -27
  564. package/public/spice-console/lib/DataLogger.js +197 -197
  565. package/public/spice-console/lib/GenericObjectPool.js +152 -152
  566. package/public/spice-console/lib/GlobalPool.js +114 -114
  567. package/public/spice-console/lib/ImageUncompressor.js +138 -138
  568. package/public/spice-console/lib/IntegrationBenchmark.js +64 -64
  569. package/public/spice-console/lib/PacketWorkerIdentifier.js +107 -107
  570. package/public/spice-console/lib/SyncAsyncHandler.js +46 -46
  571. package/public/spice-console/lib/base64.js +298 -298
  572. package/public/spice-console/lib/biginteger.js +1640 -1640
  573. package/public/spice-console/lib/bowser.js +276 -276
  574. package/public/spice-console/lib/decoder/dixie.js +7930 -7930
  575. package/public/spice-console/lib/decoder/jmuxer.js +2815 -2815
  576. package/public/spice-console/lib/displayRouter.js +83 -83
  577. package/public/spice-console/lib/encrypt.js +191 -191
  578. package/public/spice-console/lib/flipper.js +39 -39
  579. package/public/spice-console/lib/graphic.js +1230 -1230
  580. package/public/spice-console/lib/graphicdebug.js +223 -223
  581. package/public/spice-console/lib/images/bitmap.js +194 -194
  582. package/public/spice-console/lib/images/jsquic_family.js +83 -83
  583. package/public/spice-console/lib/images/jsquic_rgba.js +342 -342
  584. package/public/spice-console/lib/images/jsquic_uncompress.js +529 -529
  585. package/public/spice-console/lib/images/lz.js +717 -717
  586. package/public/spice-console/lib/images/png.js +275 -275
  587. package/public/spice-console/lib/jgestures.min.js +43 -43
  588. package/public/spice-console/lib/jquery-2.0.3.js +8829 -8829
  589. package/public/spice-console/lib/jquery-mousewheel.js +83 -83
  590. package/public/spice-console/lib/jquery-visibility.min.js +1 -1
  591. package/public/spice-console/lib/jsbn.js +578 -578
  592. package/public/spice-console/lib/jsbn2.js +675 -675
  593. package/public/spice-console/lib/lodash.4.0.0.min.js +136 -136
  594. package/public/spice-console/lib/modernizr.js +39 -39
  595. package/public/spice-console/lib/pixastic.js +3244 -3244
  596. package/public/spice-console/lib/prettyprint.js +794 -794
  597. package/public/spice-console/lib/prng4.js +64 -64
  598. package/public/spice-console/lib/queue.js +259 -259
  599. package/public/spice-console/lib/rng.js +87 -87
  600. package/public/spice-console/lib/runqueue.js +103 -103
  601. package/public/spice-console/lib/sha1.js +124 -124
  602. package/public/spice-console/lib/stuckkeyshandler.js +122 -122
  603. package/public/spice-console/lib/timelapsedetector.js +62 -62
  604. package/public/spice-console/lib/utils.js +327 -327
  605. package/public/spice-console/lib/virtualjoystick.js +370 -370
  606. package/public/spice-console/network/busconnection.js +195 -195
  607. package/public/spice-console/network/clusternodechooser.js +49 -49
  608. package/public/spice-console/network/connectioncontrol.js +60 -60
  609. package/public/spice-console/network/packetcontroller.js +62 -62
  610. package/public/spice-console/network/packetextractor.js +73 -73
  611. package/public/spice-console/network/packetlinkfactory.js +64 -64
  612. package/public/spice-console/network/packetreassembler.js +77 -77
  613. package/public/spice-console/network/reassemblerfactory.js +39 -39
  614. package/public/spice-console/network/sizedefiner.js +86 -86
  615. package/public/spice-console/network/socket.js +120 -120
  616. package/public/spice-console/network/socketqueue.js +95 -95
  617. package/public/spice-console/network/websocketwrapper.js +75 -75
  618. package/public/spice-console/process/busprocess.js +309 -309
  619. package/public/spice-console/process/cursorprocess.js +110 -110
  620. package/public/spice-console/process/displaypreprocess.js +152 -152
  621. package/public/spice-console/process/displayprocess.js +210 -210
  622. package/public/spice-console/process/inputprocess.js +204 -204
  623. package/public/spice-console/process/mainprocess.js +78 -78
  624. package/public/spice-console/process/playbackprocess.js +233 -233
  625. package/public/spice-console/run.js +181 -181
  626. package/public/spice-console/spiceobjects/generated/protocol.js +537 -537
  627. package/public/spice-console/spiceobjects/spiceobjects.js +3474 -3474
  628. package/public/spice-console/swcanvas/swcanvas.js +82 -82
  629. package/public/spice-console/tools/generate.php +269 -269
  630. package/public/spice-console/tools/generateKeyboardLayout.php +63 -63
  631. package/public/spice-console/tools/generateSpiceObject.php +81 -81
  632. package/tsconfig.json +4 -4
@@ -1,578 +1,578 @@
1
- /*
2
- Copyright (c) 2016 eyeOS
3
-
4
- This file is part of Open365.
5
-
6
- Open365 is free software: you can redistribute it and/or modify
7
- it under the terms of the GNU Affero General Public License as
8
- published by the Free Software Foundation, either version 3 of the
9
- License, or (at your option) any later version.
10
-
11
- This program is distributed in the hope that it will be useful,
12
- but WITHOUT ANY WARRANTY; without even the implied warranty of
13
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
- GNU Affero General Public License for more details.
15
-
16
- You should have received a copy of the GNU Affero General Public License
17
- along with this program. If not, see <http://www.gnu.org/licenses/>.
18
- */
19
-
20
- // Copyright (c) 2005 Tom Wu
21
- // All Rights Reserved.
22
- // See "LICENSE" for details.
23
-
24
- // Basic JavaScript BN library - subset useful for RSA encryption.
25
-
26
- // Bits per digit
27
- var dbits;
28
-
29
- // JavaScript engine analysis
30
- var canary = 0xdeadbeefcafe;
31
- var j_lm = ((canary&0xffffff)==0xefcafe);
32
-
33
- // (public) Constructor
34
- function encryptionBigInteger(a,b,c) {
35
- if(a != null)
36
- if("number" == typeof a) this.fromNumber(a,b,c);
37
- else if(b == null && "string" != typeof a) this.fromString(a,256);
38
- else this.fromString(a,b);
39
- }
40
-
41
- // return new, unset encryptionBigInteger
42
- function nbi() { return new encryptionBigInteger(null); }
43
-
44
- // am: Compute w_j += (x*this_i), propagate carries,
45
- // c is initial carry, returns final carry.
46
- // c < 3*dvalue, x < 2*dvalue, this_i < dvalue
47
- // We need to select the fastest one that works in this environment.
48
-
49
- // am1: use a single mult and divide to get the high bits,
50
- // max digit bits should be 26 because
51
- // max internal value = 2*dvalue^2-2*dvalue (< 2^53)
52
- function am1(i,x,w,j,c,n) {
53
- while(--n >= 0) {
54
- var v = x*this[i++]+w[j]+c;
55
- c = Math.floor(v/0x4000000);
56
- w[j++] = v&0x3ffffff;
57
- }
58
- return c;
59
- }
60
- // am2 avoids a big mult-and-extract completely.
61
- // Max digit bits should be <= 30 because we do bitwise ops
62
- // on values up to 2*hdvalue^2-hdvalue-1 (< 2^31)
63
- function am2(i,x,w,j,c,n) {
64
- var xl = x&0x7fff, xh = x>>15;
65
- while(--n >= 0) {
66
- var l = this[i]&0x7fff;
67
- var h = this[i++]>>15;
68
- var m = xh*l+h*xl;
69
- l = xl*l+((m&0x7fff)<<15)+w[j]+(c&0x3fffffff);
70
- c = (l>>>30)+(m>>>15)+xh*h+(c>>>30);
71
- w[j++] = l&0x3fffffff;
72
- }
73
- return c;
74
- }
75
- // Alternately, set max digit bits to 28 since some
76
- // browsers slow down when dealing with 32-bit numbers.
77
- function am3(i,x,w,j,c,n) {
78
- var xl = x&0x3fff, xh = x>>14;
79
- while(--n >= 0) {
80
- var l = this[i]&0x3fff;
81
- var h = this[i++]>>14;
82
- var m = xh*l+h*xl;
83
- l = xl*l+((m&0x3fff)<<14)+w[j]+c;
84
- c = (l>>28)+(m>>14)+xh*h;
85
- w[j++] = l&0xfffffff;
86
- }
87
- return c;
88
- }
89
- if(j_lm && (navigator.appName == "Microsoft Internet Explorer")) {
90
- encryptionBigInteger.prototype.am = am2;
91
- dbits = 30;
92
- }
93
- else if(j_lm && (navigator.appName != "Netscape")) {
94
- encryptionBigInteger.prototype.am = am1;
95
- dbits = 26;
96
- }
97
- else { // Mozilla/Netscape seems to prefer am3
98
- encryptionBigInteger.prototype.am = am3;
99
- dbits = 28;
100
- }
101
-
102
- encryptionBigInteger.prototype.DB = dbits;
103
- encryptionBigInteger.prototype.DM = ((1<<dbits)-1);
104
- encryptionBigInteger.prototype.DV = (1<<dbits);
105
-
106
- var BI_FP = 52;
107
- encryptionBigInteger.prototype.FV = Math.pow(2,BI_FP);
108
- encryptionBigInteger.prototype.F1 = BI_FP-dbits;
109
- encryptionBigInteger.prototype.F2 = 2*dbits-BI_FP;
110
-
111
- // Digit conversions
112
- var BI_RM = "0123456789abcdefghijklmnopqrstuvwxyz";
113
- var BI_RC = new Array();
114
- var rr,vv;
115
- rr = "0".charCodeAt(0);
116
- for(vv = 0; vv <= 9; ++vv) BI_RC[rr++] = vv;
117
- rr = "a".charCodeAt(0);
118
- for(vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv;
119
- rr = "A".charCodeAt(0);
120
- for(vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv;
121
-
122
- function int2char(n) { return BI_RM.charAt(n); }
123
- function intAt(s,i) {
124
- var c = BI_RC[s.charCodeAt(i)];
125
- return (c==null)?-1:c;
126
- }
127
-
128
- // (protected) copy this to r
129
- function bnpCopyTo(r) {
130
- for(var i = this.t-1; i >= 0; --i) r[i] = this[i];
131
- r.t = this.t;
132
- r.s = this.s;
133
- }
134
-
135
- // (protected) set from integer value x, -DV <= x < DV
136
- function bnpFromInt(x) {
137
- this.t = 1;
138
- this.s = (x<0)?-1:0;
139
- if(x > 0) this[0] = x;
140
- else if(x < -1) this[0] = x+DV;
141
- else this.t = 0;
142
- }
143
-
144
- // return bigint initialized to value
145
- function nbv(i) { var r = nbi(); r.fromInt(i); return r; }
146
-
147
- // (protected) set from string and radix
148
- function bnpFromString(s,b) {
149
- var k;
150
- if(b == 16) k = 4;
151
- else if(b == 8) k = 3;
152
- else if(b == 256) k = 8; // byte array
153
- else if(b == 2) k = 1;
154
- else if(b == 32) k = 5;
155
- else if(b == 4) k = 2;
156
- else { this.fromRadix(s,b); return; }
157
- this.t = 0;
158
- this.s = 0;
159
- var i = s.length, mi = false, sh = 0;
160
- while(--i >= 0) {
161
- var x = (k==8)?s[i]&0xff:intAt(s,i);
162
- if(x < 0) {
163
- if(s.charAt(i) == "-") mi = true;
164
- continue;
165
- }
166
- mi = false;
167
- if(sh == 0)
168
- this[this.t++] = x;
169
- else if(sh+k > this.DB) {
170
- this[this.t-1] |= (x&((1<<(this.DB-sh))-1))<<sh;
171
- this[this.t++] = (x>>(this.DB-sh));
172
- }
173
- else
174
- this[this.t-1] |= x<<sh;
175
- sh += k;
176
- if(sh >= this.DB) sh -= this.DB;
177
- }
178
- if(k == 8 && (s[0]&0x80) != 0) {
179
- this.s = -1;
180
- if(sh > 0) this[this.t-1] |= ((1<<(this.DB-sh))-1)<<sh;
181
- }
182
- this.clamp();
183
- if(mi) encryptionBigInteger.ZERO.subTo(this,this);
184
- }
185
-
186
- // (protected) clamp off excess high words
187
- function bnpClamp() {
188
- var c = this.s&this.DM;
189
- while(this.t > 0 && this[this.t-1] == c) --this.t;
190
- }
191
-
192
- // (public) return string representation in given radix
193
- function bnToString(b) {
194
- if(this.s < 0) return "-"+this.negate().toString(b);
195
- var k;
196
- if(b == 16) k = 4;
197
- else if(b == 8) k = 3;
198
- else if(b == 2) k = 1;
199
- else if(b == 32) k = 5;
200
- else if(b == 4) k = 2;
201
- else return this.toRadix(b);
202
- var km = (1<<k)-1, d, m = false, r = "", i = this.t;
203
- var p = this.DB-(i*this.DB)%k;
204
- if(i-- > 0) {
205
- if(p < this.DB && (d = this[i]>>p) > 0) { m = true; r = int2char(d); }
206
- while(i >= 0) {
207
- if(p < k) {
208
- d = (this[i]&((1<<p)-1))<<(k-p);
209
- d |= this[--i]>>(p+=this.DB-k);
210
- }
211
- else {
212
- d = (this[i]>>(p-=k))&km;
213
- if(p <= 0) { p += this.DB; --i; }
214
- }
215
- if(d > 0) m = true;
216
- if(m) r += int2char(d);
217
- }
218
- }
219
- return m?r:"0";
220
- }
221
-
222
- // (public) -this
223
- function bnNegate() { var r = nbi(); encryptionBigInteger.ZERO.subTo(this,r); return r; }
224
-
225
- // (public) |this|
226
- function bnAbs() { return (this.s<0)?this.negate():this; }
227
-
228
- // (public) return + if this > a, - if this < a, 0 if equal
229
- function bnCompareTo(a) {
230
- var r = this.s-a.s;
231
- if(r != 0) return r;
232
- var i = this.t;
233
- r = i-a.t;
234
- if(r != 0) return (this.s<0)?-r:r;
235
- while(--i >= 0) if((r=this[i]-a[i]) != 0) return r;
236
- return 0;
237
- }
238
-
239
- // returns bit length of the integer x
240
- function nbits(x) {
241
- var r = 1, t;
242
- if((t=x>>>16) != 0) { x = t; r += 16; }
243
- if((t=x>>8) != 0) { x = t; r += 8; }
244
- if((t=x>>4) != 0) { x = t; r += 4; }
245
- if((t=x>>2) != 0) { x = t; r += 2; }
246
- if((t=x>>1) != 0) { x = t; r += 1; }
247
- return r;
248
- }
249
-
250
- // (public) return the number of bits in "this"
251
- function bnBitLength() {
252
- if(this.t <= 0) return 0;
253
- return this.DB*(this.t-1)+nbits(this[this.t-1]^(this.s&this.DM));
254
- }
255
-
256
- // (protected) r = this << n*DB
257
- function bnpDLShiftTo(n,r) {
258
- var i;
259
- for(i = this.t-1; i >= 0; --i) r[i+n] = this[i];
260
- for(i = n-1; i >= 0; --i) r[i] = 0;
261
- r.t = this.t+n;
262
- r.s = this.s;
263
- }
264
-
265
- // (protected) r = this >> n*DB
266
- function bnpDRShiftTo(n,r) {
267
- for(var i = n; i < this.t; ++i) r[i-n] = this[i];
268
- r.t = Math.max(this.t-n,0);
269
- r.s = this.s;
270
- }
271
-
272
- // (protected) r = this << n
273
- function bnpLShiftTo(n,r) {
274
- var bs = n%this.DB;
275
- var cbs = this.DB-bs;
276
- var bm = (1<<cbs)-1;
277
- var ds = Math.floor(n/this.DB), c = (this.s<<bs)&this.DM, i;
278
- for(i = this.t-1; i >= 0; --i) {
279
- r[i+ds+1] = (this[i]>>cbs)|c;
280
- c = (this[i]&bm)<<bs;
281
- }
282
- for(i = ds-1; i >= 0; --i) r[i] = 0;
283
- r[ds] = c;
284
- r.t = this.t+ds+1;
285
- r.s = this.s;
286
- r.clamp();
287
- }
288
-
289
- // (protected) r = this >> n
290
- function bnpRShiftTo(n,r) {
291
- r.s = this.s;
292
- var ds = Math.floor(n/this.DB);
293
- if(ds >= this.t) { r.t = 0; return; }
294
- var bs = n%this.DB;
295
- var cbs = this.DB-bs;
296
- var bm = (1<<bs)-1;
297
- r[0] = this[ds]>>bs;
298
- for(var i = ds+1; i < this.t; ++i) {
299
- r[i-ds-1] |= (this[i]&bm)<<cbs;
300
- r[i-ds] = this[i]>>bs;
301
- }
302
- if(bs > 0) r[this.t-ds-1] |= (this.s&bm)<<cbs;
303
- r.t = this.t-ds;
304
- r.clamp();
305
- }
306
-
307
- // (protected) r = this - a
308
- function bnpSubTo(a,r) {
309
- var i = 0, c = 0, m = Math.min(a.t,this.t);
310
- while(i < m) {
311
- c += this[i]-a[i];
312
- r[i++] = c&this.DM;
313
- c >>= this.DB;
314
- }
315
- if(a.t < this.t) {
316
- c -= a.s;
317
- while(i < this.t) {
318
- c += this[i];
319
- r[i++] = c&this.DM;
320
- c >>= this.DB;
321
- }
322
- c += this.s;
323
- }
324
- else {
325
- c += this.s;
326
- while(i < a.t) {
327
- c -= a[i];
328
- r[i++] = c&this.DM;
329
- c >>= this.DB;
330
- }
331
- c -= a.s;
332
- }
333
- r.s = (c<0)?-1:0;
334
- if(c < -1) r[i++] = this.DV+c;
335
- else if(c > 0) r[i++] = c;
336
- r.t = i;
337
- r.clamp();
338
- }
339
-
340
- // (protected) r = this * a, r != this,a (HAC 14.12)
341
- // "this" should be the larger one if appropriate.
342
- function bnpMultiplyTo(a,r) {
343
- var x = this.abs(), y = a.abs();
344
- var i = x.t;
345
- r.t = i+y.t;
346
- while(--i >= 0) r[i] = 0;
347
- for(i = 0; i < y.t; ++i) r[i+x.t] = x.am(0,y[i],r,i,0,x.t);
348
- r.s = 0;
349
- r.clamp();
350
- if(this.s != a.s) encryptionBigInteger.ZERO.subTo(r,r);
351
- }
352
-
353
- // (protected) r = this^2, r != this (HAC 14.16)
354
- function bnpSquareTo(r) {
355
- var x = this.abs();
356
- var i = r.t = 2*x.t;
357
- while(--i >= 0) r[i] = 0;
358
- for(i = 0; i < x.t-1; ++i) {
359
- var c = x.am(i,x[i],r,2*i,0,1);
360
- if((r[i+x.t]+=x.am(i+1,2*x[i],r,2*i+1,c,x.t-i-1)) >= x.DV) {
361
- r[i+x.t] -= x.DV;
362
- r[i+x.t+1] = 1;
363
- }
364
- }
365
- if(r.t > 0) r[r.t-1] += x.am(i,x[i],r,2*i,0,1);
366
- r.s = 0;
367
- r.clamp();
368
- }
369
-
370
- // (protected) divide this by m, quotient and remainder to q, r (HAC 14.20)
371
- // r != q, this != m. q or r may be null.
372
- function bnpDivRemTo(m,q,r) {
373
- var pm = m.abs();
374
- if(pm.t <= 0) return;
375
- var pt = this.abs();
376
- if(pt.t < pm.t) {
377
- if(q != null) q.fromInt(0);
378
- if(r != null) this.copyTo(r);
379
- return;
380
- }
381
- if(r == null) r = nbi();
382
- var y = nbi(), ts = this.s, ms = m.s;
383
- var nsh = this.DB-nbits(pm[pm.t-1]); // normalize modulus
384
- if(nsh > 0) { pm.lShiftTo(nsh,y); pt.lShiftTo(nsh,r); }
385
- else { pm.copyTo(y); pt.copyTo(r); }
386
- var ys = y.t;
387
- var y0 = y[ys-1];
388
- if(y0 == 0) return;
389
- var yt = y0*(1<<this.F1)+((ys>1)?y[ys-2]>>this.F2:0);
390
- var d1 = this.FV/yt, d2 = (1<<this.F1)/yt, e = 1<<this.F2;
391
- var i = r.t, j = i-ys, t = (q==null)?nbi():q;
392
- y.dlShiftTo(j,t);
393
- if(r.compareTo(t) >= 0) {
394
- r[r.t++] = 1;
395
- r.subTo(t,r);
396
- }
397
- encryptionBigInteger.ONE.dlShiftTo(ys,t);
398
- t.subTo(y,y); // "negative" y so we can replace sub with am later
399
- while(y.t < ys) y[y.t++] = 0;
400
- while(--j >= 0) {
401
- // Estimate quotient digit
402
- var qd = (r[--i]==y0)?this.DM:Math.floor(r[i]*d1+(r[i-1]+e)*d2);
403
- if((r[i]+=y.am(0,qd,r,j,0,ys)) < qd) { // Try it out
404
- y.dlShiftTo(j,t);
405
- r.subTo(t,r);
406
- while(r[i] < --qd) r.subTo(t,r);
407
- }
408
- }
409
- if(q != null) {
410
- r.drShiftTo(ys,q);
411
- if(ts != ms) encryptionBigInteger.ZERO.subTo(q,q);
412
- }
413
- r.t = ys;
414
- r.clamp();
415
- if(nsh > 0) r.rShiftTo(nsh,r); // Denormalize remainder
416
- if(ts < 0) encryptionBigInteger.ZERO.subTo(r,r);
417
- }
418
-
419
- // (public) this mod a
420
- function bnMod(a) {
421
- var r = nbi();
422
- this.abs().divRemTo(a,null,r);
423
- if(this.s < 0 && r.compareTo(encryptionBigInteger.ZERO) > 0) a.subTo(r,r);
424
- return r;
425
- }
426
-
427
- // Modular reduction using "classic" algorithm
428
- function Classic(m) { this.m = m; }
429
- function cConvert(x) {
430
- if(x.s < 0 || x.compareTo(this.m) >= 0) return x.mod(this.m);
431
- else return x;
432
- }
433
- function cRevert(x) { return x; }
434
- function cReduce(x) { x.divRemTo(this.m,null,x); }
435
- function cMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }
436
- function cSqrTo(x,r) { x.squareTo(r); this.reduce(r); }
437
-
438
- Classic.prototype.convert = cConvert;
439
- Classic.prototype.revert = cRevert;
440
- Classic.prototype.reduce = cReduce;
441
- Classic.prototype.mulTo = cMulTo;
442
- Classic.prototype.sqrTo = cSqrTo;
443
-
444
- // (protected) return "-1/this % 2^DB"; useful for Mont. reduction
445
- // justification:
446
- // xy == 1 (mod m)
447
- // xy = 1+km
448
- // xy(2-xy) = (1+km)(1-km)
449
- // x[y(2-xy)] = 1-k^2m^2
450
- // x[y(2-xy)] == 1 (mod m^2)
451
- // if y is 1/x mod m, then y(2-xy) is 1/x mod m^2
452
- // should reduce x and y(2-xy) by m^2 at each step to keep size bounded.
453
- // JS multiply "overflows" differently from C/C++, so care is needed here.
454
- function bnpInvDigit() {
455
- if(this.t < 1) return 0;
456
- var x = this[0];
457
- if((x&1) == 0) return 0;
458
- var y = x&3; // y == 1/x mod 2^2
459
- y = (y*(2-(x&0xf)*y))&0xf; // y == 1/x mod 2^4
460
- y = (y*(2-(x&0xff)*y))&0xff; // y == 1/x mod 2^8
461
- y = (y*(2-(((x&0xffff)*y)&0xffff)))&0xffff; // y == 1/x mod 2^16
462
- // last step - calculate inverse mod DV directly;
463
- // assumes 16 < DB <= 32 and assumes ability to handle 48-bit ints
464
- y = (y*(2-x*y%this.DV))%this.DV; // y == 1/x mod 2^dbits
465
- // we really want the negative inverse, and -DV < y < DV
466
- return (y>0)?this.DV-y:-y;
467
- }
468
-
469
- // Montgomery reduction
470
- function Montgomery(m) {
471
- this.m = m;
472
- this.mp = m.invDigit();
473
- this.mpl = this.mp&0x7fff;
474
- this.mph = this.mp>>15;
475
- this.um = (1<<(m.DB-15))-1;
476
- this.mt2 = 2*m.t;
477
- }
478
-
479
- // xR mod m
480
- function montConvert(x) {
481
- var r = nbi();
482
- x.abs().dlShiftTo(this.m.t,r);
483
- r.divRemTo(this.m,null,r);
484
- if(x.s < 0 && r.compareTo(encryptionBigInteger.ZERO) > 0) this.m.subTo(r,r);
485
- return r;
486
- }
487
-
488
- // x/R mod m
489
- function montRevert(x) {
490
- var r = nbi();
491
- x.copyTo(r);
492
- this.reduce(r);
493
- return r;
494
- }
495
-
496
- // x = x/R mod m (HAC 14.32)
497
- function montReduce(x) {
498
- while(x.t <= this.mt2) // pad x so am has enough room later
499
- x[x.t++] = 0;
500
- for(var i = 0; i < this.m.t; ++i) {
501
- // faster way of calculating u0 = x[i]*mp mod DV
502
- var j = x[i]&0x7fff;
503
- var u0 = (j*this.mpl+(((j*this.mph+(x[i]>>15)*this.mpl)&this.um)<<15))&x.DM;
504
- // use am to combine the multiply-shift-add into one call
505
- j = i+this.m.t;
506
- x[j] += this.m.am(0,u0,x,i,0,this.m.t);
507
- // propagate carry
508
- while(x[j] >= x.DV) { x[j] -= x.DV; x[++j]++; }
509
- }
510
- x.clamp();
511
- x.drShiftTo(this.m.t,x);
512
- if(x.compareTo(this.m) >= 0) x.subTo(this.m,x);
513
- }
514
-
515
- // r = "x^2/R mod m"; x != r
516
- function montSqrTo(x,r) { x.squareTo(r); this.reduce(r); }
517
-
518
- // r = "xy/R mod m"; x,y != r
519
- function montMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }
520
-
521
- Montgomery.prototype.convert = montConvert;
522
- Montgomery.prototype.revert = montRevert;
523
- Montgomery.prototype.reduce = montReduce;
524
- Montgomery.prototype.mulTo = montMulTo;
525
- Montgomery.prototype.sqrTo = montSqrTo;
526
-
527
- // (protected) true iff this is even
528
- function bnpIsEven() { return ((this.t>0)?(this[0]&1):this.s) == 0; }
529
-
530
- // (protected) this^e, e < 2^32, doing sqr and mul with "r" (HAC 14.79)
531
- function bnpExp(e,z) {
532
- if(e > 0xffffffff || e < 1) return encryptionBigInteger.ONE;
533
- var r = nbi(), r2 = nbi(), g = z.convert(this), i = nbits(e)-1;
534
- g.copyTo(r);
535
- while(--i >= 0) {
536
- z.sqrTo(r,r2);
537
- if((e&(1<<i)) > 0) z.mulTo(r2,g,r);
538
- else { var t = r; r = r2; r2 = t; }
539
- }
540
- return z.revert(r);
541
- }
542
-
543
- // (public) this^e % m, 0 <= e < 2^32
544
- function bnModPowInt(e,m) {
545
- var z;
546
- if(e < 256 || m.isEven()) z = new Classic(m); else z = new Montgomery(m);
547
- return this.exp(e,z);
548
- }
549
-
550
- // protected
551
- encryptionBigInteger.prototype.copyTo = bnpCopyTo;
552
- encryptionBigInteger.prototype.fromInt = bnpFromInt;
553
- encryptionBigInteger.prototype.fromString = bnpFromString;
554
- encryptionBigInteger.prototype.clamp = bnpClamp;
555
- encryptionBigInteger.prototype.dlShiftTo = bnpDLShiftTo;
556
- encryptionBigInteger.prototype.drShiftTo = bnpDRShiftTo;
557
- encryptionBigInteger.prototype.lShiftTo = bnpLShiftTo;
558
- encryptionBigInteger.prototype.rShiftTo = bnpRShiftTo;
559
- encryptionBigInteger.prototype.subTo = bnpSubTo;
560
- encryptionBigInteger.prototype.multiplyTo = bnpMultiplyTo;
561
- encryptionBigInteger.prototype.squareTo = bnpSquareTo;
562
- encryptionBigInteger.prototype.divRemTo = bnpDivRemTo;
563
- encryptionBigInteger.prototype.invDigit = bnpInvDigit;
564
- encryptionBigInteger.prototype.isEven = bnpIsEven;
565
- encryptionBigInteger.prototype.exp = bnpExp;
566
-
567
- // public
568
- encryptionBigInteger.prototype.toString = bnToString;
569
- encryptionBigInteger.prototype.negate = bnNegate;
570
- encryptionBigInteger.prototype.abs = bnAbs;
571
- encryptionBigInteger.prototype.compareTo = bnCompareTo;
572
- encryptionBigInteger.prototype.bitLength = bnBitLength;
573
- encryptionBigInteger.prototype.mod = bnMod;
574
- encryptionBigInteger.prototype.modPowInt = bnModPowInt;
575
-
576
- // "constants"
577
- encryptionBigInteger.ZERO = nbv(0);
578
- encryptionBigInteger.ONE = nbv(1);
1
+ /*
2
+ Copyright (c) 2016 eyeOS
3
+
4
+ This file is part of Open365.
5
+
6
+ Open365 is free software: you can redistribute it and/or modify
7
+ it under the terms of the GNU Affero General Public License as
8
+ published by the Free Software Foundation, either version 3 of the
9
+ License, or (at your option) any later version.
10
+
11
+ This program is distributed in the hope that it will be useful,
12
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ GNU Affero General Public License for more details.
15
+
16
+ You should have received a copy of the GNU Affero General Public License
17
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
18
+ */
19
+
20
+ // Copyright (c) 2005 Tom Wu
21
+ // All Rights Reserved.
22
+ // See "LICENSE" for details.
23
+
24
+ // Basic JavaScript BN library - subset useful for RSA encryption.
25
+
26
+ // Bits per digit
27
+ var dbits;
28
+
29
+ // JavaScript engine analysis
30
+ var canary = 0xdeadbeefcafe;
31
+ var j_lm = ((canary&0xffffff)==0xefcafe);
32
+
33
+ // (public) Constructor
34
+ function encryptionBigInteger(a,b,c) {
35
+ if(a != null)
36
+ if("number" == typeof a) this.fromNumber(a,b,c);
37
+ else if(b == null && "string" != typeof a) this.fromString(a,256);
38
+ else this.fromString(a,b);
39
+ }
40
+
41
+ // return new, unset encryptionBigInteger
42
+ function nbi() { return new encryptionBigInteger(null); }
43
+
44
+ // am: Compute w_j += (x*this_i), propagate carries,
45
+ // c is initial carry, returns final carry.
46
+ // c < 3*dvalue, x < 2*dvalue, this_i < dvalue
47
+ // We need to select the fastest one that works in this environment.
48
+
49
+ // am1: use a single mult and divide to get the high bits,
50
+ // max digit bits should be 26 because
51
+ // max internal value = 2*dvalue^2-2*dvalue (< 2^53)
52
+ function am1(i,x,w,j,c,n) {
53
+ while(--n >= 0) {
54
+ var v = x*this[i++]+w[j]+c;
55
+ c = Math.floor(v/0x4000000);
56
+ w[j++] = v&0x3ffffff;
57
+ }
58
+ return c;
59
+ }
60
+ // am2 avoids a big mult-and-extract completely.
61
+ // Max digit bits should be <= 30 because we do bitwise ops
62
+ // on values up to 2*hdvalue^2-hdvalue-1 (< 2^31)
63
+ function am2(i,x,w,j,c,n) {
64
+ var xl = x&0x7fff, xh = x>>15;
65
+ while(--n >= 0) {
66
+ var l = this[i]&0x7fff;
67
+ var h = this[i++]>>15;
68
+ var m = xh*l+h*xl;
69
+ l = xl*l+((m&0x7fff)<<15)+w[j]+(c&0x3fffffff);
70
+ c = (l>>>30)+(m>>>15)+xh*h+(c>>>30);
71
+ w[j++] = l&0x3fffffff;
72
+ }
73
+ return c;
74
+ }
75
+ // Alternately, set max digit bits to 28 since some
76
+ // browsers slow down when dealing with 32-bit numbers.
77
+ function am3(i,x,w,j,c,n) {
78
+ var xl = x&0x3fff, xh = x>>14;
79
+ while(--n >= 0) {
80
+ var l = this[i]&0x3fff;
81
+ var h = this[i++]>>14;
82
+ var m = xh*l+h*xl;
83
+ l = xl*l+((m&0x3fff)<<14)+w[j]+c;
84
+ c = (l>>28)+(m>>14)+xh*h;
85
+ w[j++] = l&0xfffffff;
86
+ }
87
+ return c;
88
+ }
89
+ if(j_lm && (navigator.appName == "Microsoft Internet Explorer")) {
90
+ encryptionBigInteger.prototype.am = am2;
91
+ dbits = 30;
92
+ }
93
+ else if(j_lm && (navigator.appName != "Netscape")) {
94
+ encryptionBigInteger.prototype.am = am1;
95
+ dbits = 26;
96
+ }
97
+ else { // Mozilla/Netscape seems to prefer am3
98
+ encryptionBigInteger.prototype.am = am3;
99
+ dbits = 28;
100
+ }
101
+
102
+ encryptionBigInteger.prototype.DB = dbits;
103
+ encryptionBigInteger.prototype.DM = ((1<<dbits)-1);
104
+ encryptionBigInteger.prototype.DV = (1<<dbits);
105
+
106
+ var BI_FP = 52;
107
+ encryptionBigInteger.prototype.FV = Math.pow(2,BI_FP);
108
+ encryptionBigInteger.prototype.F1 = BI_FP-dbits;
109
+ encryptionBigInteger.prototype.F2 = 2*dbits-BI_FP;
110
+
111
+ // Digit conversions
112
+ var BI_RM = "0123456789abcdefghijklmnopqrstuvwxyz";
113
+ var BI_RC = new Array();
114
+ var rr,vv;
115
+ rr = "0".charCodeAt(0);
116
+ for(vv = 0; vv <= 9; ++vv) BI_RC[rr++] = vv;
117
+ rr = "a".charCodeAt(0);
118
+ for(vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv;
119
+ rr = "A".charCodeAt(0);
120
+ for(vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv;
121
+
122
+ function int2char(n) { return BI_RM.charAt(n); }
123
+ function intAt(s,i) {
124
+ var c = BI_RC[s.charCodeAt(i)];
125
+ return (c==null)?-1:c;
126
+ }
127
+
128
+ // (protected) copy this to r
129
+ function bnpCopyTo(r) {
130
+ for(var i = this.t-1; i >= 0; --i) r[i] = this[i];
131
+ r.t = this.t;
132
+ r.s = this.s;
133
+ }
134
+
135
+ // (protected) set from integer value x, -DV <= x < DV
136
+ function bnpFromInt(x) {
137
+ this.t = 1;
138
+ this.s = (x<0)?-1:0;
139
+ if(x > 0) this[0] = x;
140
+ else if(x < -1) this[0] = x+DV;
141
+ else this.t = 0;
142
+ }
143
+
144
+ // return bigint initialized to value
145
+ function nbv(i) { var r = nbi(); r.fromInt(i); return r; }
146
+
147
+ // (protected) set from string and radix
148
+ function bnpFromString(s,b) {
149
+ var k;
150
+ if(b == 16) k = 4;
151
+ else if(b == 8) k = 3;
152
+ else if(b == 256) k = 8; // byte array
153
+ else if(b == 2) k = 1;
154
+ else if(b == 32) k = 5;
155
+ else if(b == 4) k = 2;
156
+ else { this.fromRadix(s,b); return; }
157
+ this.t = 0;
158
+ this.s = 0;
159
+ var i = s.length, mi = false, sh = 0;
160
+ while(--i >= 0) {
161
+ var x = (k==8)?s[i]&0xff:intAt(s,i);
162
+ if(x < 0) {
163
+ if(s.charAt(i) == "-") mi = true;
164
+ continue;
165
+ }
166
+ mi = false;
167
+ if(sh == 0)
168
+ this[this.t++] = x;
169
+ else if(sh+k > this.DB) {
170
+ this[this.t-1] |= (x&((1<<(this.DB-sh))-1))<<sh;
171
+ this[this.t++] = (x>>(this.DB-sh));
172
+ }
173
+ else
174
+ this[this.t-1] |= x<<sh;
175
+ sh += k;
176
+ if(sh >= this.DB) sh -= this.DB;
177
+ }
178
+ if(k == 8 && (s[0]&0x80) != 0) {
179
+ this.s = -1;
180
+ if(sh > 0) this[this.t-1] |= ((1<<(this.DB-sh))-1)<<sh;
181
+ }
182
+ this.clamp();
183
+ if(mi) encryptionBigInteger.ZERO.subTo(this,this);
184
+ }
185
+
186
+ // (protected) clamp off excess high words
187
+ function bnpClamp() {
188
+ var c = this.s&this.DM;
189
+ while(this.t > 0 && this[this.t-1] == c) --this.t;
190
+ }
191
+
192
+ // (public) return string representation in given radix
193
+ function bnToString(b) {
194
+ if(this.s < 0) return "-"+this.negate().toString(b);
195
+ var k;
196
+ if(b == 16) k = 4;
197
+ else if(b == 8) k = 3;
198
+ else if(b == 2) k = 1;
199
+ else if(b == 32) k = 5;
200
+ else if(b == 4) k = 2;
201
+ else return this.toRadix(b);
202
+ var km = (1<<k)-1, d, m = false, r = "", i = this.t;
203
+ var p = this.DB-(i*this.DB)%k;
204
+ if(i-- > 0) {
205
+ if(p < this.DB && (d = this[i]>>p) > 0) { m = true; r = int2char(d); }
206
+ while(i >= 0) {
207
+ if(p < k) {
208
+ d = (this[i]&((1<<p)-1))<<(k-p);
209
+ d |= this[--i]>>(p+=this.DB-k);
210
+ }
211
+ else {
212
+ d = (this[i]>>(p-=k))&km;
213
+ if(p <= 0) { p += this.DB; --i; }
214
+ }
215
+ if(d > 0) m = true;
216
+ if(m) r += int2char(d);
217
+ }
218
+ }
219
+ return m?r:"0";
220
+ }
221
+
222
+ // (public) -this
223
+ function bnNegate() { var r = nbi(); encryptionBigInteger.ZERO.subTo(this,r); return r; }
224
+
225
+ // (public) |this|
226
+ function bnAbs() { return (this.s<0)?this.negate():this; }
227
+
228
+ // (public) return + if this > a, - if this < a, 0 if equal
229
+ function bnCompareTo(a) {
230
+ var r = this.s-a.s;
231
+ if(r != 0) return r;
232
+ var i = this.t;
233
+ r = i-a.t;
234
+ if(r != 0) return (this.s<0)?-r:r;
235
+ while(--i >= 0) if((r=this[i]-a[i]) != 0) return r;
236
+ return 0;
237
+ }
238
+
239
+ // returns bit length of the integer x
240
+ function nbits(x) {
241
+ var r = 1, t;
242
+ if((t=x>>>16) != 0) { x = t; r += 16; }
243
+ if((t=x>>8) != 0) { x = t; r += 8; }
244
+ if((t=x>>4) != 0) { x = t; r += 4; }
245
+ if((t=x>>2) != 0) { x = t; r += 2; }
246
+ if((t=x>>1) != 0) { x = t; r += 1; }
247
+ return r;
248
+ }
249
+
250
+ // (public) return the number of bits in "this"
251
+ function bnBitLength() {
252
+ if(this.t <= 0) return 0;
253
+ return this.DB*(this.t-1)+nbits(this[this.t-1]^(this.s&this.DM));
254
+ }
255
+
256
+ // (protected) r = this << n*DB
257
+ function bnpDLShiftTo(n,r) {
258
+ var i;
259
+ for(i = this.t-1; i >= 0; --i) r[i+n] = this[i];
260
+ for(i = n-1; i >= 0; --i) r[i] = 0;
261
+ r.t = this.t+n;
262
+ r.s = this.s;
263
+ }
264
+
265
+ // (protected) r = this >> n*DB
266
+ function bnpDRShiftTo(n,r) {
267
+ for(var i = n; i < this.t; ++i) r[i-n] = this[i];
268
+ r.t = Math.max(this.t-n,0);
269
+ r.s = this.s;
270
+ }
271
+
272
+ // (protected) r = this << n
273
+ function bnpLShiftTo(n,r) {
274
+ var bs = n%this.DB;
275
+ var cbs = this.DB-bs;
276
+ var bm = (1<<cbs)-1;
277
+ var ds = Math.floor(n/this.DB), c = (this.s<<bs)&this.DM, i;
278
+ for(i = this.t-1; i >= 0; --i) {
279
+ r[i+ds+1] = (this[i]>>cbs)|c;
280
+ c = (this[i]&bm)<<bs;
281
+ }
282
+ for(i = ds-1; i >= 0; --i) r[i] = 0;
283
+ r[ds] = c;
284
+ r.t = this.t+ds+1;
285
+ r.s = this.s;
286
+ r.clamp();
287
+ }
288
+
289
+ // (protected) r = this >> n
290
+ function bnpRShiftTo(n,r) {
291
+ r.s = this.s;
292
+ var ds = Math.floor(n/this.DB);
293
+ if(ds >= this.t) { r.t = 0; return; }
294
+ var bs = n%this.DB;
295
+ var cbs = this.DB-bs;
296
+ var bm = (1<<bs)-1;
297
+ r[0] = this[ds]>>bs;
298
+ for(var i = ds+1; i < this.t; ++i) {
299
+ r[i-ds-1] |= (this[i]&bm)<<cbs;
300
+ r[i-ds] = this[i]>>bs;
301
+ }
302
+ if(bs > 0) r[this.t-ds-1] |= (this.s&bm)<<cbs;
303
+ r.t = this.t-ds;
304
+ r.clamp();
305
+ }
306
+
307
+ // (protected) r = this - a
308
+ function bnpSubTo(a,r) {
309
+ var i = 0, c = 0, m = Math.min(a.t,this.t);
310
+ while(i < m) {
311
+ c += this[i]-a[i];
312
+ r[i++] = c&this.DM;
313
+ c >>= this.DB;
314
+ }
315
+ if(a.t < this.t) {
316
+ c -= a.s;
317
+ while(i < this.t) {
318
+ c += this[i];
319
+ r[i++] = c&this.DM;
320
+ c >>= this.DB;
321
+ }
322
+ c += this.s;
323
+ }
324
+ else {
325
+ c += this.s;
326
+ while(i < a.t) {
327
+ c -= a[i];
328
+ r[i++] = c&this.DM;
329
+ c >>= this.DB;
330
+ }
331
+ c -= a.s;
332
+ }
333
+ r.s = (c<0)?-1:0;
334
+ if(c < -1) r[i++] = this.DV+c;
335
+ else if(c > 0) r[i++] = c;
336
+ r.t = i;
337
+ r.clamp();
338
+ }
339
+
340
+ // (protected) r = this * a, r != this,a (HAC 14.12)
341
+ // "this" should be the larger one if appropriate.
342
+ function bnpMultiplyTo(a,r) {
343
+ var x = this.abs(), y = a.abs();
344
+ var i = x.t;
345
+ r.t = i+y.t;
346
+ while(--i >= 0) r[i] = 0;
347
+ for(i = 0; i < y.t; ++i) r[i+x.t] = x.am(0,y[i],r,i,0,x.t);
348
+ r.s = 0;
349
+ r.clamp();
350
+ if(this.s != a.s) encryptionBigInteger.ZERO.subTo(r,r);
351
+ }
352
+
353
+ // (protected) r = this^2, r != this (HAC 14.16)
354
+ function bnpSquareTo(r) {
355
+ var x = this.abs();
356
+ var i = r.t = 2*x.t;
357
+ while(--i >= 0) r[i] = 0;
358
+ for(i = 0; i < x.t-1; ++i) {
359
+ var c = x.am(i,x[i],r,2*i,0,1);
360
+ if((r[i+x.t]+=x.am(i+1,2*x[i],r,2*i+1,c,x.t-i-1)) >= x.DV) {
361
+ r[i+x.t] -= x.DV;
362
+ r[i+x.t+1] = 1;
363
+ }
364
+ }
365
+ if(r.t > 0) r[r.t-1] += x.am(i,x[i],r,2*i,0,1);
366
+ r.s = 0;
367
+ r.clamp();
368
+ }
369
+
370
+ // (protected) divide this by m, quotient and remainder to q, r (HAC 14.20)
371
+ // r != q, this != m. q or r may be null.
372
+ function bnpDivRemTo(m,q,r) {
373
+ var pm = m.abs();
374
+ if(pm.t <= 0) return;
375
+ var pt = this.abs();
376
+ if(pt.t < pm.t) {
377
+ if(q != null) q.fromInt(0);
378
+ if(r != null) this.copyTo(r);
379
+ return;
380
+ }
381
+ if(r == null) r = nbi();
382
+ var y = nbi(), ts = this.s, ms = m.s;
383
+ var nsh = this.DB-nbits(pm[pm.t-1]); // normalize modulus
384
+ if(nsh > 0) { pm.lShiftTo(nsh,y); pt.lShiftTo(nsh,r); }
385
+ else { pm.copyTo(y); pt.copyTo(r); }
386
+ var ys = y.t;
387
+ var y0 = y[ys-1];
388
+ if(y0 == 0) return;
389
+ var yt = y0*(1<<this.F1)+((ys>1)?y[ys-2]>>this.F2:0);
390
+ var d1 = this.FV/yt, d2 = (1<<this.F1)/yt, e = 1<<this.F2;
391
+ var i = r.t, j = i-ys, t = (q==null)?nbi():q;
392
+ y.dlShiftTo(j,t);
393
+ if(r.compareTo(t) >= 0) {
394
+ r[r.t++] = 1;
395
+ r.subTo(t,r);
396
+ }
397
+ encryptionBigInteger.ONE.dlShiftTo(ys,t);
398
+ t.subTo(y,y); // "negative" y so we can replace sub with am later
399
+ while(y.t < ys) y[y.t++] = 0;
400
+ while(--j >= 0) {
401
+ // Estimate quotient digit
402
+ var qd = (r[--i]==y0)?this.DM:Math.floor(r[i]*d1+(r[i-1]+e)*d2);
403
+ if((r[i]+=y.am(0,qd,r,j,0,ys)) < qd) { // Try it out
404
+ y.dlShiftTo(j,t);
405
+ r.subTo(t,r);
406
+ while(r[i] < --qd) r.subTo(t,r);
407
+ }
408
+ }
409
+ if(q != null) {
410
+ r.drShiftTo(ys,q);
411
+ if(ts != ms) encryptionBigInteger.ZERO.subTo(q,q);
412
+ }
413
+ r.t = ys;
414
+ r.clamp();
415
+ if(nsh > 0) r.rShiftTo(nsh,r); // Denormalize remainder
416
+ if(ts < 0) encryptionBigInteger.ZERO.subTo(r,r);
417
+ }
418
+
419
+ // (public) this mod a
420
+ function bnMod(a) {
421
+ var r = nbi();
422
+ this.abs().divRemTo(a,null,r);
423
+ if(this.s < 0 && r.compareTo(encryptionBigInteger.ZERO) > 0) a.subTo(r,r);
424
+ return r;
425
+ }
426
+
427
+ // Modular reduction using "classic" algorithm
428
+ function Classic(m) { this.m = m; }
429
+ function cConvert(x) {
430
+ if(x.s < 0 || x.compareTo(this.m) >= 0) return x.mod(this.m);
431
+ else return x;
432
+ }
433
+ function cRevert(x) { return x; }
434
+ function cReduce(x) { x.divRemTo(this.m,null,x); }
435
+ function cMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }
436
+ function cSqrTo(x,r) { x.squareTo(r); this.reduce(r); }
437
+
438
+ Classic.prototype.convert = cConvert;
439
+ Classic.prototype.revert = cRevert;
440
+ Classic.prototype.reduce = cReduce;
441
+ Classic.prototype.mulTo = cMulTo;
442
+ Classic.prototype.sqrTo = cSqrTo;
443
+
444
+ // (protected) return "-1/this % 2^DB"; useful for Mont. reduction
445
+ // justification:
446
+ // xy == 1 (mod m)
447
+ // xy = 1+km
448
+ // xy(2-xy) = (1+km)(1-km)
449
+ // x[y(2-xy)] = 1-k^2m^2
450
+ // x[y(2-xy)] == 1 (mod m^2)
451
+ // if y is 1/x mod m, then y(2-xy) is 1/x mod m^2
452
+ // should reduce x and y(2-xy) by m^2 at each step to keep size bounded.
453
+ // JS multiply "overflows" differently from C/C++, so care is needed here.
454
+ function bnpInvDigit() {
455
+ if(this.t < 1) return 0;
456
+ var x = this[0];
457
+ if((x&1) == 0) return 0;
458
+ var y = x&3; // y == 1/x mod 2^2
459
+ y = (y*(2-(x&0xf)*y))&0xf; // y == 1/x mod 2^4
460
+ y = (y*(2-(x&0xff)*y))&0xff; // y == 1/x mod 2^8
461
+ y = (y*(2-(((x&0xffff)*y)&0xffff)))&0xffff; // y == 1/x mod 2^16
462
+ // last step - calculate inverse mod DV directly;
463
+ // assumes 16 < DB <= 32 and assumes ability to handle 48-bit ints
464
+ y = (y*(2-x*y%this.DV))%this.DV; // y == 1/x mod 2^dbits
465
+ // we really want the negative inverse, and -DV < y < DV
466
+ return (y>0)?this.DV-y:-y;
467
+ }
468
+
469
+ // Montgomery reduction
470
+ function Montgomery(m) {
471
+ this.m = m;
472
+ this.mp = m.invDigit();
473
+ this.mpl = this.mp&0x7fff;
474
+ this.mph = this.mp>>15;
475
+ this.um = (1<<(m.DB-15))-1;
476
+ this.mt2 = 2*m.t;
477
+ }
478
+
479
+ // xR mod m
480
+ function montConvert(x) {
481
+ var r = nbi();
482
+ x.abs().dlShiftTo(this.m.t,r);
483
+ r.divRemTo(this.m,null,r);
484
+ if(x.s < 0 && r.compareTo(encryptionBigInteger.ZERO) > 0) this.m.subTo(r,r);
485
+ return r;
486
+ }
487
+
488
+ // x/R mod m
489
+ function montRevert(x) {
490
+ var r = nbi();
491
+ x.copyTo(r);
492
+ this.reduce(r);
493
+ return r;
494
+ }
495
+
496
+ // x = x/R mod m (HAC 14.32)
497
+ function montReduce(x) {
498
+ while(x.t <= this.mt2) // pad x so am has enough room later
499
+ x[x.t++] = 0;
500
+ for(var i = 0; i < this.m.t; ++i) {
501
+ // faster way of calculating u0 = x[i]*mp mod DV
502
+ var j = x[i]&0x7fff;
503
+ var u0 = (j*this.mpl+(((j*this.mph+(x[i]>>15)*this.mpl)&this.um)<<15))&x.DM;
504
+ // use am to combine the multiply-shift-add into one call
505
+ j = i+this.m.t;
506
+ x[j] += this.m.am(0,u0,x,i,0,this.m.t);
507
+ // propagate carry
508
+ while(x[j] >= x.DV) { x[j] -= x.DV; x[++j]++; }
509
+ }
510
+ x.clamp();
511
+ x.drShiftTo(this.m.t,x);
512
+ if(x.compareTo(this.m) >= 0) x.subTo(this.m,x);
513
+ }
514
+
515
+ // r = "x^2/R mod m"; x != r
516
+ function montSqrTo(x,r) { x.squareTo(r); this.reduce(r); }
517
+
518
+ // r = "xy/R mod m"; x,y != r
519
+ function montMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }
520
+
521
+ Montgomery.prototype.convert = montConvert;
522
+ Montgomery.prototype.revert = montRevert;
523
+ Montgomery.prototype.reduce = montReduce;
524
+ Montgomery.prototype.mulTo = montMulTo;
525
+ Montgomery.prototype.sqrTo = montSqrTo;
526
+
527
+ // (protected) true iff this is even
528
+ function bnpIsEven() { return ((this.t>0)?(this[0]&1):this.s) == 0; }
529
+
530
+ // (protected) this^e, e < 2^32, doing sqr and mul with "r" (HAC 14.79)
531
+ function bnpExp(e,z) {
532
+ if(e > 0xffffffff || e < 1) return encryptionBigInteger.ONE;
533
+ var r = nbi(), r2 = nbi(), g = z.convert(this), i = nbits(e)-1;
534
+ g.copyTo(r);
535
+ while(--i >= 0) {
536
+ z.sqrTo(r,r2);
537
+ if((e&(1<<i)) > 0) z.mulTo(r2,g,r);
538
+ else { var t = r; r = r2; r2 = t; }
539
+ }
540
+ return z.revert(r);
541
+ }
542
+
543
+ // (public) this^e % m, 0 <= e < 2^32
544
+ function bnModPowInt(e,m) {
545
+ var z;
546
+ if(e < 256 || m.isEven()) z = new Classic(m); else z = new Montgomery(m);
547
+ return this.exp(e,z);
548
+ }
549
+
550
+ // protected
551
+ encryptionBigInteger.prototype.copyTo = bnpCopyTo;
552
+ encryptionBigInteger.prototype.fromInt = bnpFromInt;
553
+ encryptionBigInteger.prototype.fromString = bnpFromString;
554
+ encryptionBigInteger.prototype.clamp = bnpClamp;
555
+ encryptionBigInteger.prototype.dlShiftTo = bnpDLShiftTo;
556
+ encryptionBigInteger.prototype.drShiftTo = bnpDRShiftTo;
557
+ encryptionBigInteger.prototype.lShiftTo = bnpLShiftTo;
558
+ encryptionBigInteger.prototype.rShiftTo = bnpRShiftTo;
559
+ encryptionBigInteger.prototype.subTo = bnpSubTo;
560
+ encryptionBigInteger.prototype.multiplyTo = bnpMultiplyTo;
561
+ encryptionBigInteger.prototype.squareTo = bnpSquareTo;
562
+ encryptionBigInteger.prototype.divRemTo = bnpDivRemTo;
563
+ encryptionBigInteger.prototype.invDigit = bnpInvDigit;
564
+ encryptionBigInteger.prototype.isEven = bnpIsEven;
565
+ encryptionBigInteger.prototype.exp = bnpExp;
566
+
567
+ // public
568
+ encryptionBigInteger.prototype.toString = bnToString;
569
+ encryptionBigInteger.prototype.negate = bnNegate;
570
+ encryptionBigInteger.prototype.abs = bnAbs;
571
+ encryptionBigInteger.prototype.compareTo = bnCompareTo;
572
+ encryptionBigInteger.prototype.bitLength = bnBitLength;
573
+ encryptionBigInteger.prototype.mod = bnMod;
574
+ encryptionBigInteger.prototype.modPowInt = bnModPowInt;
575
+
576
+ // "constants"
577
+ encryptionBigInteger.ZERO = nbv(0);
578
+ encryptionBigInteger.ONE = nbv(1);