@sendbird/uikit-react 3.5.0-rc.0 → 3.5.0

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 (936) hide show
  1. package/App.js +312 -235
  2. package/App.js.map +1 -1
  3. package/CHANGELOG.md +544 -0
  4. package/Channel/components/ChannelHeader.js +46 -41
  5. package/Channel/components/ChannelHeader.js.map +1 -1
  6. package/Channel/components/ChannelUI.js +104 -131
  7. package/Channel/components/ChannelUI.js.map +1 -1
  8. package/Channel/components/FileViewer.js +56 -52
  9. package/Channel/components/FileViewer.js.map +1 -1
  10. package/Channel/components/FrozenNotification.js +12 -7
  11. package/Channel/components/FrozenNotification.js.map +1 -1
  12. package/Channel/components/Message.js +240 -230
  13. package/Channel/components/Message.js.map +1 -1
  14. package/Channel/components/MessageInput.js +152 -129
  15. package/Channel/components/MessageInput.js.map +1 -1
  16. package/Channel/components/MessageList.js +260 -175
  17. package/Channel/components/MessageList.js.map +1 -1
  18. package/Channel/components/RemoveMessageModal.js +34 -30
  19. package/Channel/components/RemoveMessageModal.js.map +1 -1
  20. package/Channel/components/SuggestedMentionList.js +139 -193
  21. package/Channel/components/SuggestedMentionList.js.map +1 -1
  22. package/Channel/components/TypingIndicator.js +44 -61
  23. package/Channel/components/TypingIndicator.js.map +1 -1
  24. package/Channel/components/UnreadCount.js +18 -20
  25. package/Channel/components/UnreadCount.js.map +1 -1
  26. package/Channel/context.js +12 -19
  27. package/Channel/context.js.map +1 -1
  28. package/Channel.js +69 -44
  29. package/Channel.js.map +1 -1
  30. package/ChannelList/components/AddChannel.js +29 -30
  31. package/ChannelList/components/AddChannel.js.map +1 -1
  32. package/ChannelList/components/ChannelListHeader.js +32 -28
  33. package/ChannelList/components/ChannelListHeader.js.map +1 -1
  34. package/ChannelList/components/ChannelListUI.js +101 -142
  35. package/ChannelList/components/ChannelListUI.js.map +1 -1
  36. package/ChannelList/components/ChannelPreview.js +72 -82
  37. package/ChannelList/components/ChannelPreview.js.map +1 -1
  38. package/ChannelList/components/ChannelPreviewAction.js +36 -36
  39. package/ChannelList/components/ChannelPreviewAction.js.map +1 -1
  40. package/ChannelList/context.js +7 -8
  41. package/ChannelList/context.js.map +1 -1
  42. package/ChannelList.js +32 -31
  43. package/ChannelList.js.map +1 -1
  44. package/{ChannelListProvider-ade145a7.js → ChannelListProvider-4cf5c0f5.js} +233 -285
  45. package/ChannelListProvider-4cf5c0f5.js.map +1 -0
  46. package/{ChannelProvider-c9db10c0.js → ChannelProvider-6e8e99df.js} +659 -726
  47. package/ChannelProvider-6e8e99df.js.map +1 -0
  48. package/ChannelSettings/components/ChannelProfile.js +33 -46
  49. package/ChannelSettings/components/ChannelProfile.js.map +1 -1
  50. package/ChannelSettings/components/ChannelSettingsUI.js +45 -48
  51. package/ChannelSettings/components/ChannelSettingsUI.js.map +1 -1
  52. package/ChannelSettings/components/EditDetailsModal.js +47 -58
  53. package/ChannelSettings/components/EditDetailsModal.js.map +1 -1
  54. package/ChannelSettings/components/LeaveChannel.js +40 -46
  55. package/ChannelSettings/components/LeaveChannel.js.map +1 -1
  56. package/ChannelSettings/components/ModerationPanel.js +522 -605
  57. package/ChannelSettings/components/ModerationPanel.js.map +1 -1
  58. package/ChannelSettings/components/UserListItem.js +71 -72
  59. package/ChannelSettings/components/UserListItem.js.map +1 -1
  60. package/ChannelSettings/components/UserPanel.js +29 -32
  61. package/ChannelSettings/components/UserPanel.js.map +1 -1
  62. package/ChannelSettings/context.js +53 -57
  63. package/ChannelSettings/context.js.map +1 -1
  64. package/ChannelSettings.js +20 -20
  65. package/ChannelSettings.js.map +1 -1
  66. package/CreateChannel/components/CreateChannelUI.js +24 -24
  67. package/CreateChannel/components/CreateChannelUI.js.map +1 -1
  68. package/CreateChannel/components/InviteUsers.js +102 -124
  69. package/CreateChannel/components/InviteUsers.js.map +1 -1
  70. package/CreateChannel/components/SelectChannelType.js +41 -42
  71. package/CreateChannel/components/SelectChannelType.js.map +1 -1
  72. package/CreateChannel/context.js +4 -4
  73. package/CreateChannel.js +22 -21
  74. package/CreateChannel.js.map +1 -1
  75. package/CreateChannelProvider-34603fa5.js +44 -0
  76. package/CreateChannelProvider-34603fa5.js.map +1 -0
  77. package/CreateOpenChannel/components/CreateOpenChannelUI.js +33 -43
  78. package/CreateOpenChannel/components/CreateOpenChannelUI.js.map +1 -1
  79. package/CreateOpenChannel/context.js +33 -33
  80. package/CreateOpenChannel/context.js.map +1 -1
  81. package/CreateOpenChannel.js +18 -17
  82. package/CreateOpenChannel.js.map +1 -1
  83. package/EditUserProfile/components/EditUserProfileUI.js +12 -13
  84. package/EditUserProfile/components/EditUserProfileUI.js.map +1 -1
  85. package/EditUserProfile/context.js +0 -2
  86. package/EditUserProfile/context.js.map +1 -1
  87. package/EditUserProfile.js +18 -17
  88. package/EditUserProfile.js.map +1 -1
  89. package/LocalizationContext-04c0c9dc.js +20 -0
  90. package/{LocalizationContext-60894e38.js.map → LocalizationContext-04c0c9dc.js.map} +1 -1
  91. package/MediaQueryContext-ff9dca2b.js +87 -0
  92. package/MediaQueryContext-ff9dca2b.js.map +1 -0
  93. package/MemberList-9bf26111.js +403 -0
  94. package/MemberList-9bf26111.js.map +1 -0
  95. package/Message/context.js +31 -0
  96. package/Message/context.js.map +1 -0
  97. package/MessageSearch/components/MessageSearchUI.js +62 -71
  98. package/MessageSearch/components/MessageSearchUI.js.map +1 -1
  99. package/MessageSearch/context.js +201 -224
  100. package/MessageSearch/context.js.map +1 -1
  101. package/MessageSearch.js +46 -58
  102. package/MessageSearch.js.map +1 -1
  103. package/OpenChannel/components/FrozenChannelNotification.js +8 -6
  104. package/OpenChannel/components/FrozenChannelNotification.js.map +1 -1
  105. package/OpenChannel/components/OpenChannelHeader.js +27 -25
  106. package/OpenChannel/components/OpenChannelHeader.js.map +1 -1
  107. package/OpenChannel/components/OpenChannelInput.js +50 -35
  108. package/OpenChannel/components/OpenChannelInput.js.map +1 -1
  109. package/OpenChannel/components/OpenChannelMessage.js +174 -191
  110. package/OpenChannel/components/OpenChannelMessage.js.map +1 -1
  111. package/OpenChannel/components/OpenChannelMessageList.js +72 -92
  112. package/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
  113. package/OpenChannel/components/OpenChannelUI.js +52 -49
  114. package/OpenChannel/components/OpenChannelUI.js.map +1 -1
  115. package/OpenChannel/context.js +8 -9
  116. package/OpenChannel/context.js.map +1 -1
  117. package/OpenChannel.js +36 -30
  118. package/OpenChannel.js.map +1 -1
  119. package/OpenChannelList/components/OpenChannelListUI.js +61 -76
  120. package/OpenChannelList/components/OpenChannelListUI.js.map +1 -1
  121. package/OpenChannelList/components/OpenChannelPreview.js +21 -22
  122. package/OpenChannelList/components/OpenChannelPreview.js.map +1 -1
  123. package/OpenChannelList/context.js +3 -4
  124. package/OpenChannelList/context.js.map +1 -1
  125. package/OpenChannelList.js +26 -24
  126. package/OpenChannelList.js.map +1 -1
  127. package/OpenChannelListProvider-d7372692.js +429 -0
  128. package/OpenChannelListProvider-d7372692.js.map +1 -0
  129. package/OpenChannelProvider-24cd68b9.js +1885 -0
  130. package/OpenChannelProvider-24cd68b9.js.map +1 -0
  131. package/OpenChannelSettings/components/EditDetailsModal.js +47 -56
  132. package/OpenChannelSettings/components/EditDetailsModal.js.map +1 -1
  133. package/OpenChannelSettings/components/OpenChannelProfile.js +26 -31
  134. package/OpenChannelSettings/components/OpenChannelProfile.js.map +1 -1
  135. package/OpenChannelSettings/components/OpenChannelSettingsUI.js +45 -43
  136. package/OpenChannelSettings/components/OpenChannelSettingsUI.js.map +1 -1
  137. package/OpenChannelSettings/components/OperatorUI.js +516 -586
  138. package/OpenChannelSettings/components/OperatorUI.js.map +1 -1
  139. package/OpenChannelSettings/components/ParticipantUI.js +15 -16
  140. package/OpenChannelSettings/components/ParticipantUI.js.map +1 -1
  141. package/OpenChannelSettings/context.js +56 -69
  142. package/OpenChannelSettings/context.js.map +1 -1
  143. package/OpenChannelSettings.js +19 -20
  144. package/OpenChannelSettings.js.map +1 -1
  145. package/README.md +62 -13
  146. package/RemoveMessageModal-94e2bf9e.js +36 -0
  147. package/RemoveMessageModal-94e2bf9e.js.map +1 -0
  148. package/SendbirdProvider.js +749 -408
  149. package/SendbirdProvider.js.map +1 -1
  150. package/Thread/components/ParentMessageInfo.js +238 -217
  151. package/Thread/components/ParentMessageInfo.js.map +1 -1
  152. package/Thread/components/ParentMessageInfoItem.js +112 -89
  153. package/Thread/components/ParentMessageInfoItem.js.map +1 -1
  154. package/Thread/components/ThreadHeader.js +22 -23
  155. package/Thread/components/ThreadHeader.js.map +1 -1
  156. package/Thread/components/ThreadList.js +108 -83
  157. package/Thread/components/ThreadList.js.map +1 -1
  158. package/Thread/components/ThreadListItem.js +306 -276
  159. package/Thread/components/ThreadListItem.js.map +1 -1
  160. package/Thread/components/ThreadMessageInput.js +146 -113
  161. package/Thread/components/ThreadMessageInput.js.map +1 -1
  162. package/Thread/components/ThreadUI.js +169 -138
  163. package/Thread/components/ThreadUI.js.map +1 -1
  164. package/Thread/context/types.js +9 -14
  165. package/Thread/context/types.js.map +1 -1
  166. package/Thread/context.js +8 -8
  167. package/Thread.js +87 -57
  168. package/Thread.js.map +1 -1
  169. package/ThreadProvider-203b94f3.js +1695 -0
  170. package/ThreadProvider-203b94f3.js.map +1 -0
  171. package/{UserProfileContext-33a26cc4.js → UserProfileContext-c776d522.js} +1 -4
  172. package/{UserProfileContext-33a26cc4.js.map → UserProfileContext-c776d522.js.map} +1 -1
  173. package/VoiceMessageInputWrapper-77d8f487.js +170 -0
  174. package/VoiceMessageInputWrapper-77d8f487.js.map +1 -0
  175. package/VoicePlayer/context.js +7 -0
  176. package/{NotificationChannel → VoicePlayer}/context.js.map +1 -1
  177. package/VoicePlayer/useVoicePlayer.js +84 -0
  178. package/VoicePlayer/useVoicePlayer.js.map +1 -0
  179. package/VoiceRecorder/context.js +156 -0
  180. package/VoiceRecorder/context.js.map +1 -0
  181. package/VoiceRecorder/useVoiceRecorder.js +121 -0
  182. package/VoiceRecorder/useVoiceRecorder.js.map +1 -0
  183. package/WebAudioUtils-62e6d3a7.js +123 -0
  184. package/WebAudioUtils-62e6d3a7.js.map +1 -0
  185. package/{_rollupPluginBabelHelpers-ed44209e.js → _rollupPluginBabelHelpers-fb0e05a4.js} +17 -11
  186. package/_rollupPluginBabelHelpers-fb0e05a4.js.map +1 -0
  187. package/actionTypes-1db5749d.js +8 -0
  188. package/actionTypes-1db5749d.js.map +1 -0
  189. package/cjs/App.js +312 -235
  190. package/cjs/App.js.map +1 -1
  191. package/cjs/Channel/components/ChannelHeader.js +46 -41
  192. package/cjs/Channel/components/ChannelHeader.js.map +1 -1
  193. package/cjs/Channel/components/ChannelUI.js +102 -129
  194. package/cjs/Channel/components/ChannelUI.js.map +1 -1
  195. package/cjs/Channel/components/FileViewer.js +56 -52
  196. package/cjs/Channel/components/FileViewer.js.map +1 -1
  197. package/cjs/Channel/components/FrozenNotification.js +12 -7
  198. package/cjs/Channel/components/FrozenNotification.js.map +1 -1
  199. package/cjs/Channel/components/Message.js +243 -233
  200. package/cjs/Channel/components/Message.js.map +1 -1
  201. package/cjs/Channel/components/MessageInput.js +151 -128
  202. package/cjs/Channel/components/MessageInput.js.map +1 -1
  203. package/cjs/Channel/components/MessageList.js +260 -175
  204. package/cjs/Channel/components/MessageList.js.map +1 -1
  205. package/cjs/Channel/components/RemoveMessageModal.js +34 -30
  206. package/cjs/Channel/components/RemoveMessageModal.js.map +1 -1
  207. package/cjs/Channel/components/SuggestedMentionList.js +139 -193
  208. package/cjs/Channel/components/SuggestedMentionList.js.map +1 -1
  209. package/cjs/Channel/components/TypingIndicator.js +44 -61
  210. package/cjs/Channel/components/TypingIndicator.js.map +1 -1
  211. package/cjs/Channel/components/UnreadCount.js +18 -20
  212. package/cjs/Channel/components/UnreadCount.js.map +1 -1
  213. package/cjs/Channel/context.js +12 -23
  214. package/cjs/Channel/context.js.map +1 -1
  215. package/cjs/Channel.js +69 -44
  216. package/cjs/Channel.js.map +1 -1
  217. package/cjs/ChannelList/components/AddChannel.js +29 -30
  218. package/cjs/ChannelList/components/AddChannel.js.map +1 -1
  219. package/cjs/ChannelList/components/ChannelListHeader.js +32 -28
  220. package/cjs/ChannelList/components/ChannelListHeader.js.map +1 -1
  221. package/cjs/ChannelList/components/ChannelListUI.js +100 -141
  222. package/cjs/ChannelList/components/ChannelListUI.js.map +1 -1
  223. package/cjs/ChannelList/components/ChannelPreview.js +72 -82
  224. package/cjs/ChannelList/components/ChannelPreview.js.map +1 -1
  225. package/cjs/ChannelList/components/ChannelPreviewAction.js +36 -36
  226. package/cjs/ChannelList/components/ChannelPreviewAction.js.map +1 -1
  227. package/cjs/ChannelList/context.js +7 -8
  228. package/cjs/ChannelList/context.js.map +1 -1
  229. package/cjs/ChannelList.js +32 -31
  230. package/cjs/ChannelList.js.map +1 -1
  231. package/cjs/{ChannelListProvider-65473831.js → ChannelListProvider-e0ce316a.js} +232 -284
  232. package/cjs/ChannelListProvider-e0ce316a.js.map +1 -0
  233. package/cjs/{ChannelProvider-1e08a7a9.js → ChannelProvider-0df75472.js} +657 -724
  234. package/cjs/ChannelProvider-0df75472.js.map +1 -0
  235. package/cjs/ChannelSettings/components/ChannelProfile.js +33 -46
  236. package/cjs/ChannelSettings/components/ChannelProfile.js.map +1 -1
  237. package/cjs/ChannelSettings/components/ChannelSettingsUI.js +45 -48
  238. package/cjs/ChannelSettings/components/ChannelSettingsUI.js.map +1 -1
  239. package/cjs/ChannelSettings/components/EditDetailsModal.js +47 -58
  240. package/cjs/ChannelSettings/components/EditDetailsModal.js.map +1 -1
  241. package/cjs/ChannelSettings/components/LeaveChannel.js +40 -46
  242. package/cjs/ChannelSettings/components/LeaveChannel.js.map +1 -1
  243. package/cjs/ChannelSettings/components/ModerationPanel.js +522 -605
  244. package/cjs/ChannelSettings/components/ModerationPanel.js.map +1 -1
  245. package/cjs/ChannelSettings/components/UserListItem.js +71 -72
  246. package/cjs/ChannelSettings/components/UserListItem.js.map +1 -1
  247. package/cjs/ChannelSettings/components/UserPanel.js +29 -32
  248. package/cjs/ChannelSettings/components/UserPanel.js.map +1 -1
  249. package/cjs/ChannelSettings/context.js +55 -59
  250. package/cjs/ChannelSettings/context.js.map +1 -1
  251. package/cjs/ChannelSettings.js +20 -20
  252. package/cjs/ChannelSettings.js.map +1 -1
  253. package/cjs/CreateChannel/components/CreateChannelUI.js +24 -24
  254. package/cjs/CreateChannel/components/CreateChannelUI.js.map +1 -1
  255. package/cjs/CreateChannel/components/InviteUsers.js +102 -124
  256. package/cjs/CreateChannel/components/InviteUsers.js.map +1 -1
  257. package/cjs/CreateChannel/components/SelectChannelType.js +41 -42
  258. package/cjs/CreateChannel/components/SelectChannelType.js.map +1 -1
  259. package/cjs/CreateChannel/context.js +4 -4
  260. package/cjs/CreateChannel.js +22 -21
  261. package/cjs/CreateChannel.js.map +1 -1
  262. package/cjs/CreateChannelProvider-c0fca0a5.js +52 -0
  263. package/cjs/CreateChannelProvider-c0fca0a5.js.map +1 -0
  264. package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js +33 -43
  265. package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js.map +1 -1
  266. package/cjs/CreateOpenChannel/context.js +33 -33
  267. package/cjs/CreateOpenChannel/context.js.map +1 -1
  268. package/cjs/CreateOpenChannel.js +18 -17
  269. package/cjs/CreateOpenChannel.js.map +1 -1
  270. package/cjs/EditUserProfile/components/EditUserProfileUI.js +12 -13
  271. package/cjs/EditUserProfile/components/EditUserProfileUI.js.map +1 -1
  272. package/cjs/EditUserProfile/context.js +0 -2
  273. package/cjs/EditUserProfile/context.js.map +1 -1
  274. package/cjs/EditUserProfile.js +18 -17
  275. package/cjs/EditUserProfile.js.map +1 -1
  276. package/cjs/{LocalizationContext-8780a64e.js → LocalizationContext-0e429c3d.js} +9 -11
  277. package/cjs/{LocalizationContext-8780a64e.js.map → LocalizationContext-0e429c3d.js.map} +1 -1
  278. package/cjs/MediaQueryContext-33fc3b17.js +94 -0
  279. package/cjs/MediaQueryContext-33fc3b17.js.map +1 -0
  280. package/cjs/MemberList-a45a51c4.js +409 -0
  281. package/cjs/MemberList-a45a51c4.js.map +1 -0
  282. package/cjs/Message/context.js +40 -0
  283. package/cjs/Message/context.js.map +1 -0
  284. package/cjs/MessageSearch/components/MessageSearchUI.js +61 -70
  285. package/cjs/MessageSearch/components/MessageSearchUI.js.map +1 -1
  286. package/cjs/MessageSearch/context.js +201 -224
  287. package/cjs/MessageSearch/context.js.map +1 -1
  288. package/cjs/MessageSearch.js +46 -58
  289. package/cjs/MessageSearch.js.map +1 -1
  290. package/cjs/OpenChannel/components/FrozenChannelNotification.js +8 -6
  291. package/cjs/OpenChannel/components/FrozenChannelNotification.js.map +1 -1
  292. package/cjs/OpenChannel/components/OpenChannelHeader.js +27 -25
  293. package/cjs/OpenChannel/components/OpenChannelHeader.js.map +1 -1
  294. package/cjs/OpenChannel/components/OpenChannelInput.js +50 -35
  295. package/cjs/OpenChannel/components/OpenChannelInput.js.map +1 -1
  296. package/cjs/OpenChannel/components/OpenChannelMessage.js +174 -191
  297. package/cjs/OpenChannel/components/OpenChannelMessage.js.map +1 -1
  298. package/cjs/OpenChannel/components/OpenChannelMessageList.js +72 -92
  299. package/cjs/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
  300. package/cjs/OpenChannel/components/OpenChannelUI.js +52 -49
  301. package/cjs/OpenChannel/components/OpenChannelUI.js.map +1 -1
  302. package/cjs/OpenChannel/context.js +8 -9
  303. package/cjs/OpenChannel/context.js.map +1 -1
  304. package/cjs/OpenChannel.js +36 -30
  305. package/cjs/OpenChannel.js.map +1 -1
  306. package/cjs/OpenChannelList/components/OpenChannelListUI.js +61 -76
  307. package/cjs/OpenChannelList/components/OpenChannelListUI.js.map +1 -1
  308. package/cjs/OpenChannelList/components/OpenChannelPreview.js +21 -22
  309. package/cjs/OpenChannelList/components/OpenChannelPreview.js.map +1 -1
  310. package/cjs/OpenChannelList/context.js +3 -4
  311. package/cjs/OpenChannelList/context.js.map +1 -1
  312. package/cjs/OpenChannelList.js +26 -24
  313. package/cjs/OpenChannelList.js.map +1 -1
  314. package/cjs/OpenChannelListProvider-fc8b53ee.js +439 -0
  315. package/cjs/OpenChannelListProvider-fc8b53ee.js.map +1 -0
  316. package/cjs/OpenChannelProvider-217a8ac2.js +1894 -0
  317. package/cjs/OpenChannelProvider-217a8ac2.js.map +1 -0
  318. package/cjs/OpenChannelSettings/components/EditDetailsModal.js +47 -56
  319. package/cjs/OpenChannelSettings/components/EditDetailsModal.js.map +1 -1
  320. package/cjs/OpenChannelSettings/components/OpenChannelProfile.js +26 -31
  321. package/cjs/OpenChannelSettings/components/OpenChannelProfile.js.map +1 -1
  322. package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js +45 -43
  323. package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js.map +1 -1
  324. package/cjs/OpenChannelSettings/components/OperatorUI.js +516 -586
  325. package/cjs/OpenChannelSettings/components/OperatorUI.js.map +1 -1
  326. package/cjs/OpenChannelSettings/components/ParticipantUI.js +15 -16
  327. package/cjs/OpenChannelSettings/components/ParticipantUI.js.map +1 -1
  328. package/cjs/OpenChannelSettings/context.js +57 -70
  329. package/cjs/OpenChannelSettings/context.js.map +1 -1
  330. package/cjs/OpenChannelSettings.js +19 -20
  331. package/cjs/OpenChannelSettings.js.map +1 -1
  332. package/cjs/{RemoveMessageModal-0da4f94b.js → RemoveMessageModal-5903f232.js} +19 -14
  333. package/cjs/RemoveMessageModal-5903f232.js.map +1 -0
  334. package/cjs/SendbirdProvider.js +748 -408
  335. package/cjs/SendbirdProvider.js.map +1 -1
  336. package/cjs/Thread/components/ParentMessageInfo.js +237 -216
  337. package/cjs/Thread/components/ParentMessageInfo.js.map +1 -1
  338. package/cjs/Thread/components/ParentMessageInfoItem.js +111 -88
  339. package/cjs/Thread/components/ParentMessageInfoItem.js.map +1 -1
  340. package/cjs/Thread/components/ThreadHeader.js +22 -23
  341. package/cjs/Thread/components/ThreadHeader.js.map +1 -1
  342. package/cjs/Thread/components/ThreadList.js +108 -83
  343. package/cjs/Thread/components/ThreadList.js.map +1 -1
  344. package/cjs/Thread/components/ThreadListItem.js +305 -275
  345. package/cjs/Thread/components/ThreadListItem.js.map +1 -1
  346. package/cjs/Thread/components/ThreadMessageInput.js +146 -113
  347. package/cjs/Thread/components/ThreadMessageInput.js.map +1 -1
  348. package/cjs/Thread/components/ThreadUI.js +170 -139
  349. package/cjs/Thread/components/ThreadUI.js.map +1 -1
  350. package/cjs/Thread/context/types.js +13 -14
  351. package/cjs/Thread/context/types.js.map +1 -1
  352. package/cjs/Thread/context.js +8 -8
  353. package/cjs/Thread.js +87 -57
  354. package/cjs/Thread.js.map +1 -1
  355. package/cjs/ThreadProvider-8ee179c2.js +1704 -0
  356. package/cjs/ThreadProvider-8ee179c2.js.map +1 -0
  357. package/cjs/{UserProfileContext-0808e413.js → UserProfileContext-87580795.js} +1 -4
  358. package/cjs/{UserProfileContext-0808e413.js.map → UserProfileContext-87580795.js.map} +1 -1
  359. package/cjs/VoiceMessageInputWrapper-4fdc8ef1.js +176 -0
  360. package/cjs/VoiceMessageInputWrapper-4fdc8ef1.js.map +1 -0
  361. package/cjs/VoicePlayer/context.js +17 -0
  362. package/cjs/{NotificationChannel → VoicePlayer}/context.js.map +1 -1
  363. package/cjs/VoicePlayer/useVoicePlayer.js +88 -0
  364. package/cjs/VoicePlayer/useVoicePlayer.js.map +1 -0
  365. package/cjs/VoiceRecorder/context.js +166 -0
  366. package/cjs/VoiceRecorder/context.js.map +1 -0
  367. package/cjs/VoiceRecorder/useVoiceRecorder.js +126 -0
  368. package/cjs/VoiceRecorder/useVoiceRecorder.js.map +1 -0
  369. package/cjs/WebAudioUtils-e226789c.js +126 -0
  370. package/cjs/WebAudioUtils-e226789c.js.map +1 -0
  371. package/cjs/{_rollupPluginBabelHelpers-bd6baf0a.js → _rollupPluginBabelHelpers-c89f311a.js} +17 -10
  372. package/cjs/_rollupPluginBabelHelpers-c89f311a.js.map +1 -0
  373. package/cjs/actionTypes-0fa2943d.js +10 -0
  374. package/cjs/actionTypes-0fa2943d.js.map +1 -0
  375. package/cjs/{color-fdbe394d.js → color-bada0fc7.js} +13 -21
  376. package/cjs/color-bada0fc7.js.map +1 -0
  377. package/cjs/{compareIds-d0c02eca.js → compareIds-ccccfe86.js} +5 -6
  378. package/cjs/compareIds-ccccfe86.js.map +1 -0
  379. package/cjs/const-a85f3364.js +20 -0
  380. package/cjs/const-a85f3364.js.map +1 -0
  381. package/cjs/{const-8785e4ad.js → const-d8cece19.js} +4 -4
  382. package/cjs/const-d8cece19.js.map +1 -0
  383. package/cjs/consts-1c3020ad.js +6 -0
  384. package/cjs/consts-1c3020ad.js.map +1 -0
  385. package/cjs/consts-1d94dc61.js +6 -0
  386. package/cjs/consts-1d94dc61.js.map +1 -0
  387. package/cjs/consts-5e0f96b3.js +41 -0
  388. package/cjs/consts-5e0f96b3.js.map +1 -0
  389. package/cjs/consts-740f60b8.js +6 -0
  390. package/cjs/consts-740f60b8.js.map +1 -0
  391. package/cjs/{context-012aecd1.js → context-8e7e8457.js} +6 -5
  392. package/cjs/{context-012aecd1.js.map → context-8e7e8457.js.map} +1 -1
  393. package/cjs/dist/index.css +1682 -1229
  394. package/cjs/dist/index.css.map +1 -1
  395. package/cjs/handlers/OpenChannelHandler.js.map +1 -1
  396. package/cjs/handlers/SessionHandler.js.map +1 -1
  397. package/cjs/{index-48d85d8f.js → index-016f7106.js} +1 -1
  398. package/cjs/{index-48d85d8f.js.map → index-016f7106.js.map} +1 -1
  399. package/cjs/{index-e8544e24.js → index-1613ae03.js} +29 -37
  400. package/cjs/index-1613ae03.js.map +1 -0
  401. package/cjs/index-2be14d85.js +57 -0
  402. package/cjs/index-2be14d85.js.map +1 -0
  403. package/cjs/index-3b30939e.js +79 -0
  404. package/cjs/index-3b30939e.js.map +1 -0
  405. package/cjs/index-5231fde8.js +585 -0
  406. package/cjs/index-5231fde8.js.map +1 -0
  407. package/cjs/index-648c06ed.js +330 -0
  408. package/cjs/index-648c06ed.js.map +1 -0
  409. package/cjs/{index-bdd889a2.js → index-6cb0d040.js} +11 -25
  410. package/cjs/index-6cb0d040.js.map +1 -0
  411. package/cjs/{index-ebb542c3.js → index-71fdaa1b.js} +55 -63
  412. package/cjs/index-71fdaa1b.js.map +1 -0
  413. package/cjs/{index-abe135e6.js → index-7d125728.js} +2 -2
  414. package/cjs/{index-abe135e6.js.map → index-7d125728.js.map} +1 -1
  415. package/cjs/{index-e191d245.js → index-7f6bbe0c.js} +42 -51
  416. package/cjs/index-7f6bbe0c.js.map +1 -0
  417. package/cjs/{index-5ea12b7a.js → index-869e9a94.js} +2 -2
  418. package/cjs/{index-5ea12b7a.js.map → index-869e9a94.js.map} +1 -1
  419. package/cjs/index-89d81dad.js +456 -0
  420. package/cjs/index-89d81dad.js.map +1 -0
  421. package/cjs/{index-c13771a7.js → index-8affdde5.js} +57 -3
  422. package/cjs/index-8affdde5.js.map +1 -0
  423. package/cjs/index-99f16473.js +202 -0
  424. package/cjs/index-99f16473.js.map +1 -0
  425. package/cjs/index-c9d348b6.js +367 -0
  426. package/cjs/index-c9d348b6.js.map +1 -0
  427. package/cjs/index-e8c0080f.js +161 -0
  428. package/cjs/index-e8c0080f.js.map +1 -0
  429. package/cjs/{index-08d232f8.js → index-f570d25c.js} +1 -1
  430. package/cjs/index-f570d25c.js.map +1 -0
  431. package/cjs/index.js +84 -63
  432. package/cjs/index.js.map +1 -1
  433. package/cjs/index.module-0585715f.js +6 -0
  434. package/cjs/index.module-0585715f.js.map +1 -0
  435. package/cjs/lame.all.js +2541 -0
  436. package/cjs/lame.all.js.map +1 -0
  437. package/cjs/resolvedReplyType-67e78c63.js +32 -0
  438. package/cjs/resolvedReplyType-67e78c63.js.map +1 -0
  439. package/cjs/sendbirdSelectors.js +307 -417
  440. package/cjs/sendbirdSelectors.js.map +1 -1
  441. package/cjs/{stringSet-60660a99.js → stringSet-106da549.js} +112 -90
  442. package/cjs/stringSet-106da549.js.map +1 -0
  443. package/cjs/tokenize-2aa0f876.js +164 -0
  444. package/cjs/tokenize-2aa0f876.js.map +1 -0
  445. package/cjs/topics-b384e6b3.js +18 -0
  446. package/cjs/topics-b384e6b3.js.map +1 -0
  447. package/cjs/types-e0b77c8c.js +17 -0
  448. package/cjs/types-e0b77c8c.js.map +1 -0
  449. package/cjs/ui/Accordion.js +21 -24
  450. package/cjs/ui/Accordion.js.map +1 -1
  451. package/cjs/ui/AccordionGroup.js +10 -13
  452. package/cjs/ui/AccordionGroup.js.map +1 -1
  453. package/cjs/ui/AdminMessage.js +10 -13
  454. package/cjs/ui/AdminMessage.js.map +1 -1
  455. package/cjs/ui/Avatar.js +57 -79
  456. package/cjs/ui/Avatar.js.map +1 -1
  457. package/cjs/ui/Badge.js +16 -15
  458. package/cjs/ui/Badge.js.map +1 -1
  459. package/cjs/ui/BottomSheet.js +14 -12
  460. package/cjs/ui/BottomSheet.js.map +1 -1
  461. package/cjs/ui/Button.js +20 -35
  462. package/cjs/ui/Button.js.map +1 -1
  463. package/cjs/ui/ChannelAvatar.js +38 -41
  464. package/cjs/ui/ChannelAvatar.js.map +1 -1
  465. package/cjs/ui/Checkbox.js +11 -13
  466. package/cjs/ui/Checkbox.js.map +1 -1
  467. package/cjs/ui/ConnectionStatus.js +7 -5
  468. package/cjs/ui/ConnectionStatus.js.map +1 -1
  469. package/cjs/ui/ContextMenu.js +175 -199
  470. package/cjs/ui/ContextMenu.js.map +1 -1
  471. package/cjs/ui/DateSeparator.js +12 -14
  472. package/cjs/ui/DateSeparator.js.map +1 -1
  473. package/cjs/ui/EmojiReactions.js +299 -107
  474. package/cjs/ui/EmojiReactions.js.map +1 -1
  475. package/cjs/ui/FileMessageItemBody.js +22 -23
  476. package/cjs/ui/FileMessageItemBody.js.map +1 -1
  477. package/cjs/ui/FileViewer.js +36 -36
  478. package/cjs/ui/FileViewer.js.map +1 -1
  479. package/cjs/ui/Icon.js +447 -623
  480. package/cjs/ui/Icon.js.map +1 -1
  481. package/cjs/ui/IconButton.js +20 -31
  482. package/cjs/ui/IconButton.js.map +1 -1
  483. package/cjs/ui/ImageRenderer.js +34 -43
  484. package/cjs/ui/ImageRenderer.js.map +1 -1
  485. package/cjs/ui/Input.js +16 -16
  486. package/cjs/ui/Input.js.map +1 -1
  487. package/cjs/ui/Label.js +2 -2
  488. package/cjs/ui/LinkLabel.js +4 -3
  489. package/cjs/ui/LinkLabel.js.map +1 -1
  490. package/cjs/ui/Loader.js +10 -12
  491. package/cjs/ui/Loader.js.map +1 -1
  492. package/cjs/ui/MentionLabel.js +58 -65
  493. package/cjs/ui/MentionLabel.js.map +1 -1
  494. package/cjs/ui/MentionUserLabel.js +12 -10
  495. package/cjs/ui/MentionUserLabel.js.map +1 -1
  496. package/cjs/ui/MessageContent.js +212 -548
  497. package/cjs/ui/MessageContent.js.map +1 -1
  498. package/cjs/ui/MessageInput.js +392 -119
  499. package/cjs/ui/MessageInput.js.map +1 -1
  500. package/cjs/ui/MessageItemMenu.js +83 -83
  501. package/cjs/ui/MessageItemMenu.js.map +1 -1
  502. package/cjs/ui/MessageItemReactionMenu.js +58 -62
  503. package/cjs/ui/MessageItemReactionMenu.js.map +1 -1
  504. package/cjs/ui/MessageSearchFileItem.js +56 -51
  505. package/cjs/ui/MessageSearchFileItem.js.map +1 -1
  506. package/cjs/ui/MessageSearchItem.js +42 -41
  507. package/cjs/ui/MessageSearchItem.js.map +1 -1
  508. package/cjs/ui/MessageStatus.js +10 -11
  509. package/cjs/ui/MessageStatus.js.map +1 -1
  510. package/cjs/ui/Modal.js +52 -46
  511. package/cjs/ui/Modal.js.map +1 -1
  512. package/cjs/ui/MutedAvatarOverlay.js +10 -10
  513. package/cjs/ui/MutedAvatarOverlay.js.map +1 -1
  514. package/cjs/ui/OGMessageItemBody.js +67 -63
  515. package/cjs/ui/OGMessageItemBody.js.map +1 -1
  516. package/cjs/ui/OpenChannelAdminMessage.js +8 -7
  517. package/cjs/ui/OpenChannelAdminMessage.js.map +1 -1
  518. package/cjs/ui/OpenChannelAvatar.js +18 -17
  519. package/cjs/ui/OpenChannelAvatar.js.map +1 -1
  520. package/cjs/ui/OpenchannelConversationHeader.js +17 -13
  521. package/cjs/ui/OpenchannelConversationHeader.js.map +1 -1
  522. package/cjs/ui/OpenchannelFileMessage.js +140 -151
  523. package/cjs/ui/OpenchannelFileMessage.js.map +1 -1
  524. package/cjs/ui/OpenchannelOGMessage.js +204 -233
  525. package/cjs/ui/OpenchannelOGMessage.js.map +1 -1
  526. package/cjs/ui/OpenchannelThumbnailMessage.js +215 -222
  527. package/cjs/ui/OpenchannelThumbnailMessage.js.map +1 -1
  528. package/cjs/ui/OpenchannelUserMessage.js +168 -178
  529. package/cjs/ui/OpenchannelUserMessage.js.map +1 -1
  530. package/cjs/ui/PlaceHolder.js +5 -6
  531. package/cjs/ui/PlaceHolder.js.map +1 -1
  532. package/cjs/ui/PlaybackTime.js +35 -0
  533. package/cjs/ui/PlaybackTime.js.map +1 -0
  534. package/cjs/ui/ProgressBar.js +40 -0
  535. package/cjs/ui/ProgressBar.js.map +1 -0
  536. package/cjs/ui/QuoteMessage.js +50 -44
  537. package/cjs/ui/QuoteMessage.js.map +1 -1
  538. package/cjs/ui/QuoteMessageInput.js +31 -29
  539. package/cjs/ui/QuoteMessageInput.js.map +1 -1
  540. package/cjs/ui/ReactionBadge.js +13 -21
  541. package/cjs/ui/ReactionBadge.js.map +1 -1
  542. package/cjs/ui/ReactionButton.js +30 -27
  543. package/cjs/ui/ReactionButton.js.map +1 -1
  544. package/cjs/ui/SortByRow.js +14 -18
  545. package/cjs/ui/SortByRow.js.map +1 -1
  546. package/cjs/ui/TextButton.js +13 -21
  547. package/cjs/ui/TextButton.js.map +1 -1
  548. package/cjs/ui/TextMessageItemBody.js +41 -48
  549. package/cjs/ui/TextMessageItemBody.js.map +1 -1
  550. package/cjs/ui/ThreadReplies.js +25 -22
  551. package/cjs/ui/ThreadReplies.js.map +1 -1
  552. package/cjs/ui/ThumbnailMessageItemBody.js +36 -45
  553. package/cjs/ui/ThumbnailMessageItemBody.js.map +1 -1
  554. package/cjs/ui/Toggle.js +202 -0
  555. package/cjs/ui/Toggle.js.map +1 -0
  556. package/cjs/ui/Tooltip.js +8 -9
  557. package/cjs/ui/Tooltip.js.map +1 -1
  558. package/cjs/ui/TooltipWrapper.js +17 -20
  559. package/cjs/ui/TooltipWrapper.js.map +1 -1
  560. package/cjs/ui/UnknownMessageItemBody.js +21 -22
  561. package/cjs/ui/UnknownMessageItemBody.js.map +1 -1
  562. package/cjs/ui/UserListItem.js +76 -76
  563. package/cjs/ui/UserListItem.js.map +1 -1
  564. package/cjs/ui/UserProfile.js +31 -29
  565. package/cjs/ui/UserProfile.js.map +1 -1
  566. package/cjs/ui/VoiceMessageItemBody.js +119 -0
  567. package/cjs/ui/VoiceMessageItemBody.js.map +1 -0
  568. package/cjs/ui/VoiceMessgeInput.js +22 -0
  569. package/cjs/ui/VoiceMessgeInput.js.map +1 -0
  570. package/cjs/ui/Word.js +31 -39
  571. package/cjs/ui/Word.js.map +1 -1
  572. package/cjs/useDirtyGetMentions-b8ca5675.js +77 -0
  573. package/cjs/useDirtyGetMentions-b8ca5675.js.map +1 -0
  574. package/cjs/useLongPress-8037894e.js +87 -0
  575. package/cjs/useLongPress-8037894e.js.map +1 -0
  576. package/cjs/useSendbirdStateContext.js +2 -3
  577. package/cjs/useSendbirdStateContext.js.map +1 -1
  578. package/cjs/utils/message/getOutgoingMessageState.js +16 -21
  579. package/cjs/utils/message/getOutgoingMessageState.js.map +1 -1
  580. package/cjs/utils/message/isVoiceMessage.js +12 -0
  581. package/cjs/utils/message/isVoiceMessage.js.map +1 -0
  582. package/cjs/{utils-ba58eacf.js → utils-01ff5332.js} +3 -7
  583. package/cjs/{utils-ba58eacf.js.map → utils-01ff5332.js.map} +1 -1
  584. package/cjs/utils-2edcddc8.js +35 -0
  585. package/cjs/utils-2edcddc8.js.map +1 -0
  586. package/cjs/utils-5ac3db44.js +31 -0
  587. package/cjs/utils-5ac3db44.js.map +1 -0
  588. package/cjs/{utils-708aa730.js → utils-ad7b5b82.js} +1 -1
  589. package/cjs/{utils-708aa730.js.map → utils-ad7b5b82.js.map} +1 -1
  590. package/cjs/uuid-12b01f73.js +15 -0
  591. package/cjs/{uuid-a9006ea2.js.map → uuid-12b01f73.js.map} +1 -1
  592. package/cjs/withSendbird.js +5 -6
  593. package/cjs/withSendbird.js.map +1 -1
  594. package/{color-c39702d1.js → color-347926b6.js} +5 -14
  595. package/{color-c39702d1.js.map → color-347926b6.js.map} +1 -1
  596. package/{compareIds-063e5503.js → compareIds-3a43c11b.js} +5 -6
  597. package/compareIds-3a43c11b.js.map +1 -0
  598. package/const-18dba7a4.js +13 -0
  599. package/const-18dba7a4.js.map +1 -0
  600. package/{const-1510a671.js → const-c608f749.js} +4 -4
  601. package/const-c608f749.js.map +1 -0
  602. package/consts-6bca01c7.js +4 -0
  603. package/consts-6bca01c7.js.map +1 -0
  604. package/consts-7a169a0f.js +4 -0
  605. package/consts-7a169a0f.js.map +1 -0
  606. package/consts-c1baf70a.js +27 -0
  607. package/consts-c1baf70a.js.map +1 -0
  608. package/consts-fb4d475a.js +4 -0
  609. package/consts-fb4d475a.js.map +1 -0
  610. package/context-786ef1a2.js +13 -0
  611. package/{context-d5dc28c9.js.map → context-786ef1a2.js.map} +1 -1
  612. package/dist/index.css +1682 -1229
  613. package/dist/index.css.map +1 -1
  614. package/handlers/OpenChannelHandler.js.map +1 -1
  615. package/handlers/SessionHandler.js.map +1 -1
  616. package/{index-7c1f570b.js → index-06b854f7.js} +55 -63
  617. package/index-06b854f7.js.map +1 -0
  618. package/index-2673effb.js +360 -0
  619. package/index-2673effb.js.map +1 -0
  620. package/{index-5e776774.js → index-319984d0.js} +1 -1
  621. package/{index-5e776774.js.map → index-319984d0.js.map} +1 -1
  622. package/{index-eadca08d.js → index-4455855e.js} +2 -2
  623. package/{index-eadca08d.js.map → index-4455855e.js.map} +1 -1
  624. package/index-6663ce18.js +450 -0
  625. package/index-6663ce18.js.map +1 -0
  626. package/{index-b19486f5.js → index-6c252d25.js} +2 -2
  627. package/{index-b19486f5.js.map → index-6c252d25.js.map} +1 -1
  628. package/index-71a20863.js +320 -0
  629. package/index-71a20863.js.map +1 -0
  630. package/index-7d71b26c.js +154 -0
  631. package/index-7d71b26c.js.map +1 -0
  632. package/{index-d81c515b.js → index-9a4e0846.js} +1 -1
  633. package/index-9a4e0846.js.map +1 -0
  634. package/{index-fd15e3b0.js → index-9cd77b08.js} +29 -37
  635. package/index-9cd77b08.js.map +1 -0
  636. package/index-c149ea48.js +187 -0
  637. package/index-c149ea48.js.map +1 -0
  638. package/index-cf3939c6.js +76 -0
  639. package/index-cf3939c6.js.map +1 -0
  640. package/index-cf859f03.js +540 -0
  641. package/index-cf859f03.js.map +1 -0
  642. package/{index-95ac9232.js → index-e33f7f55.js} +11 -25
  643. package/index-e33f7f55.js.map +1 -0
  644. package/{index-b8de16d6.js → index-eabd1e7e.js} +39 -48
  645. package/index-eabd1e7e.js.map +1 -0
  646. package/index-ebb62af1.js +51 -0
  647. package/index-ebb62af1.js.map +1 -0
  648. package/{index-0fd24497.js → index-edf844f0.js} +57 -4
  649. package/index-edf844f0.js.map +1 -0
  650. package/index.d.ts +176 -124
  651. package/index.js +84 -63
  652. package/index.js.map +1 -1
  653. package/index.module-6b7ed635.js +4 -0
  654. package/index.module-6b7ed635.js.map +1 -0
  655. package/lame.all.js +2537 -0
  656. package/lame.all.js.map +1 -0
  657. package/package.json +62 -41
  658. package/resolvedReplyType-8776d777.js +29 -0
  659. package/resolvedReplyType-8776d777.js.map +1 -0
  660. package/sendbirdSelectors.js +307 -417
  661. package/sendbirdSelectors.js.map +1 -1
  662. package/{stringSet-7ace5726.js → stringSet-e0ee1265.js} +112 -90
  663. package/stringSet-e0ee1265.js.map +1 -0
  664. package/tokenize-1b053c86.js +159 -0
  665. package/tokenize-1b053c86.js.map +1 -0
  666. package/topics-70f569e9.js +16 -0
  667. package/topics-70f569e9.js.map +1 -0
  668. package/types-77bbdda6.js +15 -0
  669. package/types-77bbdda6.js.map +1 -0
  670. package/ui/Accordion.js +21 -24
  671. package/ui/Accordion.js.map +1 -1
  672. package/ui/AccordionGroup.js +10 -13
  673. package/ui/AccordionGroup.js.map +1 -1
  674. package/ui/AdminMessage.js +10 -13
  675. package/ui/AdminMessage.js.map +1 -1
  676. package/ui/Avatar.js +57 -79
  677. package/ui/Avatar.js.map +1 -1
  678. package/ui/Badge.js +16 -15
  679. package/ui/Badge.js.map +1 -1
  680. package/ui/BottomSheet.js +14 -12
  681. package/ui/BottomSheet.js.map +1 -1
  682. package/ui/Button.js +20 -35
  683. package/ui/Button.js.map +1 -1
  684. package/ui/ChannelAvatar.js +38 -41
  685. package/ui/ChannelAvatar.js.map +1 -1
  686. package/ui/Checkbox.js +11 -13
  687. package/ui/Checkbox.js.map +1 -1
  688. package/ui/ConnectionStatus.js +7 -5
  689. package/ui/ConnectionStatus.js.map +1 -1
  690. package/ui/ContextMenu.js +176 -200
  691. package/ui/ContextMenu.js.map +1 -1
  692. package/ui/DateSeparator.js +12 -14
  693. package/ui/DateSeparator.js.map +1 -1
  694. package/ui/EmojiReactions.js +300 -108
  695. package/ui/EmojiReactions.js.map +1 -1
  696. package/ui/FileMessageItemBody.js +22 -23
  697. package/ui/FileMessageItemBody.js.map +1 -1
  698. package/ui/FileViewer.js +36 -36
  699. package/ui/FileViewer.js.map +1 -1
  700. package/ui/Icon.js +448 -622
  701. package/ui/Icon.js.map +1 -1
  702. package/ui/IconButton.js +20 -31
  703. package/ui/IconButton.js.map +1 -1
  704. package/ui/ImageRenderer.js +34 -43
  705. package/ui/ImageRenderer.js.map +1 -1
  706. package/ui/Input.js +16 -16
  707. package/ui/Input.js.map +1 -1
  708. package/ui/Label.js +2 -2
  709. package/ui/LinkLabel.js +4 -3
  710. package/ui/LinkLabel.js.map +1 -1
  711. package/ui/Loader.js +10 -12
  712. package/ui/Loader.js.map +1 -1
  713. package/ui/MentionLabel.js +58 -65
  714. package/ui/MentionLabel.js.map +1 -1
  715. package/ui/MentionUserLabel.js +12 -10
  716. package/ui/MentionUserLabel.js.map +1 -1
  717. package/ui/MessageContent.js +215 -551
  718. package/ui/MessageContent.js.map +1 -1
  719. package/ui/MessageInput.js +392 -120
  720. package/ui/MessageInput.js.map +1 -1
  721. package/ui/MessageItemMenu.js +83 -83
  722. package/ui/MessageItemMenu.js.map +1 -1
  723. package/ui/MessageItemReactionMenu.js +58 -62
  724. package/ui/MessageItemReactionMenu.js.map +1 -1
  725. package/ui/MessageSearchFileItem.js +55 -50
  726. package/ui/MessageSearchFileItem.js.map +1 -1
  727. package/ui/MessageSearchItem.js +41 -40
  728. package/ui/MessageSearchItem.js.map +1 -1
  729. package/ui/MessageStatus.js +10 -11
  730. package/ui/MessageStatus.js.map +1 -1
  731. package/ui/Modal.js +52 -46
  732. package/ui/Modal.js.map +1 -1
  733. package/ui/MutedAvatarOverlay.js +10 -10
  734. package/ui/MutedAvatarOverlay.js.map +1 -1
  735. package/ui/OGMessageItemBody.js +68 -64
  736. package/ui/OGMessageItemBody.js.map +1 -1
  737. package/ui/OpenChannelAdminMessage.js +8 -7
  738. package/ui/OpenChannelAdminMessage.js.map +1 -1
  739. package/ui/OpenChannelAvatar.js +18 -17
  740. package/ui/OpenChannelAvatar.js.map +1 -1
  741. package/ui/OpenchannelConversationHeader.js +17 -13
  742. package/ui/OpenchannelConversationHeader.js.map +1 -1
  743. package/ui/OpenchannelFileMessage.js +140 -151
  744. package/ui/OpenchannelFileMessage.js.map +1 -1
  745. package/ui/OpenchannelOGMessage.js +204 -233
  746. package/ui/OpenchannelOGMessage.js.map +1 -1
  747. package/ui/OpenchannelThumbnailMessage.js +215 -222
  748. package/ui/OpenchannelThumbnailMessage.js.map +1 -1
  749. package/ui/OpenchannelUserMessage.js +168 -178
  750. package/ui/OpenchannelUserMessage.js.map +1 -1
  751. package/ui/PlaceHolder.js +5 -6
  752. package/ui/PlaceHolder.js.map +1 -1
  753. package/ui/PlaybackTime.js +26 -0
  754. package/ui/PlaybackTime.js.map +1 -0
  755. package/ui/ProgressBar.js +30 -0
  756. package/ui/ProgressBar.js.map +1 -0
  757. package/ui/QuoteMessage.js +50 -44
  758. package/ui/QuoteMessage.js.map +1 -1
  759. package/ui/QuoteMessageInput.js +31 -29
  760. package/ui/QuoteMessageInput.js.map +1 -1
  761. package/ui/ReactionBadge.js +13 -21
  762. package/ui/ReactionBadge.js.map +1 -1
  763. package/ui/ReactionButton.js +30 -27
  764. package/ui/ReactionButton.js.map +1 -1
  765. package/ui/SortByRow.js +14 -18
  766. package/ui/SortByRow.js.map +1 -1
  767. package/ui/TextButton.js +13 -21
  768. package/ui/TextButton.js.map +1 -1
  769. package/ui/TextMessageItemBody.js +41 -48
  770. package/ui/TextMessageItemBody.js.map +1 -1
  771. package/ui/ThreadReplies.js +25 -22
  772. package/ui/ThreadReplies.js.map +1 -1
  773. package/ui/ThumbnailMessageItemBody.js +36 -45
  774. package/ui/ThumbnailMessageItemBody.js.map +1 -1
  775. package/ui/Toggle.js +191 -0
  776. package/ui/Toggle.js.map +1 -0
  777. package/ui/Tooltip.js +8 -9
  778. package/ui/Tooltip.js.map +1 -1
  779. package/ui/TooltipWrapper.js +17 -20
  780. package/ui/TooltipWrapper.js.map +1 -1
  781. package/ui/UnknownMessageItemBody.js +21 -22
  782. package/ui/UnknownMessageItemBody.js.map +1 -1
  783. package/ui/UserListItem.js +76 -76
  784. package/ui/UserListItem.js.map +1 -1
  785. package/ui/UserProfile.js +31 -29
  786. package/ui/UserProfile.js.map +1 -1
  787. package/ui/VoiceMessageItemBody.js +110 -0
  788. package/ui/VoiceMessageItemBody.js.map +1 -0
  789. package/ui/VoiceMessgeInput.js +14 -0
  790. package/ui/VoiceMessgeInput.js.map +1 -0
  791. package/ui/Word.js +31 -39
  792. package/ui/Word.js.map +1 -1
  793. package/useDirtyGetMentions-f00f1f94.js +75 -0
  794. package/useDirtyGetMentions-f00f1f94.js.map +1 -0
  795. package/useLongPress-1ab49410.js +85 -0
  796. package/useLongPress-1ab49410.js.map +1 -0
  797. package/useSendbirdStateContext.js +2 -3
  798. package/useSendbirdStateContext.js.map +1 -1
  799. package/utils/message/getOutgoingMessageState.js +9 -15
  800. package/utils/message/getOutgoingMessageState.js.map +1 -1
  801. package/utils/message/isVoiceMessage.js +8 -0
  802. package/utils/message/isVoiceMessage.js.map +1 -0
  803. package/{utils-30c326f7.js → utils-56cb7de5.js} +1 -1
  804. package/{utils-30c326f7.js.map → utils-56cb7de5.js.map} +1 -1
  805. package/utils-77f7e8b2.js +29 -0
  806. package/utils-77f7e8b2.js.map +1 -0
  807. package/{utils-ded73fa5.js → utils-7f3d0d8c.js} +3 -7
  808. package/{utils-ded73fa5.js.map → utils-7f3d0d8c.js.map} +1 -1
  809. package/utils-af9b1c06.js +31 -0
  810. package/utils-af9b1c06.js.map +1 -0
  811. package/uuid-92d22300.js +13 -0
  812. package/{uuid-968941a0.js.map → uuid-92d22300.js.map} +1 -1
  813. package/withSendbird.js +5 -6
  814. package/withSendbird.js.map +1 -1
  815. package/ChannelListProvider-ade145a7.js.map +0 -1
  816. package/ChannelProvider-c9db10c0.js.map +0 -1
  817. package/CreateChannelProvider-be2dfe96.js +0 -55
  818. package/CreateChannelProvider-be2dfe96.js.map +0 -1
  819. package/LocalizationContext-60894e38.js +0 -22
  820. package/MediaQueryContext-bcf72e28.js +0 -90
  821. package/MediaQueryContext-bcf72e28.js.map +0 -1
  822. package/MemberList-ce1fd162.js +0 -435
  823. package/MemberList-ce1fd162.js.map +0 -1
  824. package/NotificationChannel/components/NotificationChannelUI.js +0 -119
  825. package/NotificationChannel/components/NotificationChannelUI.js.map +0 -1
  826. package/NotificationChannel/components/NotificationList.js +0 -111
  827. package/NotificationChannel/components/NotificationList.js.map +0 -1
  828. package/NotificationChannel/components/NotificationMessageWrap.js +0 -136
  829. package/NotificationChannel/components/NotificationMessageWrap.js.map +0 -1
  830. package/NotificationChannel/context.js +0 -12
  831. package/NotificationChannel.js +0 -58
  832. package/NotificationChannel.js.map +0 -1
  833. package/NotificationChannelProvider-2cb7ca21.js +0 -535
  834. package/NotificationChannelProvider-2cb7ca21.js.map +0 -1
  835. package/OpenChannelListProvider-0bdafda1.js +0 -434
  836. package/OpenChannelListProvider-0bdafda1.js.map +0 -1
  837. package/OpenChannelProvider-a72c6fb7.js +0 -2000
  838. package/OpenChannelProvider-a72c6fb7.js.map +0 -1
  839. package/RemoveMessageModal-b025d4a7.js +0 -31
  840. package/RemoveMessageModal-b025d4a7.js.map +0 -1
  841. package/ThreadProvider-de5a7889.js +0 -1644
  842. package/ThreadProvider-de5a7889.js.map +0 -1
  843. package/_rollupPluginBabelHelpers-ed44209e.js.map +0 -1
  844. package/actionTypes-aa58fd27.js +0 -6
  845. package/actionTypes-aa58fd27.js.map +0 -1
  846. package/cjs/ChannelListProvider-65473831.js.map +0 -1
  847. package/cjs/ChannelProvider-1e08a7a9.js.map +0 -1
  848. package/cjs/CreateChannelProvider-cbf490c6.js +0 -62
  849. package/cjs/CreateChannelProvider-cbf490c6.js.map +0 -1
  850. package/cjs/MediaQueryContext-e455934a.js +0 -97
  851. package/cjs/MediaQueryContext-e455934a.js.map +0 -1
  852. package/cjs/MemberList-aee91fce.js +0 -441
  853. package/cjs/MemberList-aee91fce.js.map +0 -1
  854. package/cjs/NotificationChannel/components/NotificationChannelUI.js +0 -125
  855. package/cjs/NotificationChannel/components/NotificationChannelUI.js.map +0 -1
  856. package/cjs/NotificationChannel/components/NotificationList.js +0 -117
  857. package/cjs/NotificationChannel/components/NotificationList.js.map +0 -1
  858. package/cjs/NotificationChannel/components/NotificationMessageWrap.js +0 -142
  859. package/cjs/NotificationChannel/components/NotificationMessageWrap.js.map +0 -1
  860. package/cjs/NotificationChannel/context.js +0 -21
  861. package/cjs/NotificationChannel.js +0 -64
  862. package/cjs/NotificationChannel.js.map +0 -1
  863. package/cjs/NotificationChannelProvider-4cc9575f.js +0 -543
  864. package/cjs/NotificationChannelProvider-4cc9575f.js.map +0 -1
  865. package/cjs/OpenChannelListProvider-4aab4391.js +0 -443
  866. package/cjs/OpenChannelListProvider-4aab4391.js.map +0 -1
  867. package/cjs/OpenChannelProvider-a763b71c.js +0 -2009
  868. package/cjs/OpenChannelProvider-a763b71c.js.map +0 -1
  869. package/cjs/RemoveMessageModal-0da4f94b.js.map +0 -1
  870. package/cjs/ThreadProvider-51be09a5.js +0 -1653
  871. package/cjs/ThreadProvider-51be09a5.js.map +0 -1
  872. package/cjs/_rollupPluginBabelHelpers-bd6baf0a.js.map +0 -1
  873. package/cjs/actionTypes-561bdde9.js +0 -10
  874. package/cjs/actionTypes-561bdde9.js.map +0 -1
  875. package/cjs/color-fdbe394d.js.map +0 -1
  876. package/cjs/compareIds-d0c02eca.js.map +0 -1
  877. package/cjs/const-8785e4ad.js.map +0 -1
  878. package/cjs/const-beb25e10.js +0 -20
  879. package/cjs/const-beb25e10.js.map +0 -1
  880. package/cjs/index-08d232f8.js.map +0 -1
  881. package/cjs/index-8a4b2f10.js +0 -59
  882. package/cjs/index-8a4b2f10.js.map +0 -1
  883. package/cjs/index-8c350889.js +0 -194
  884. package/cjs/index-8c350889.js.map +0 -1
  885. package/cjs/index-b3371ef2.js +0 -701
  886. package/cjs/index-b3371ef2.js.map +0 -1
  887. package/cjs/index-bdd889a2.js.map +0 -1
  888. package/cjs/index-c13771a7.js.map +0 -1
  889. package/cjs/index-e191d245.js.map +0 -1
  890. package/cjs/index-e8544e24.js.map +0 -1
  891. package/cjs/index-ebb542c3.js.map +0 -1
  892. package/cjs/index-f032bd2c.js +0 -360
  893. package/cjs/index-f032bd2c.js.map +0 -1
  894. package/cjs/stringSet-60660a99.js.map +0 -1
  895. package/cjs/topics-f3f74edc.js +0 -22
  896. package/cjs/topics-f3f74edc.js.map +0 -1
  897. package/cjs/tslib.es6-5a7eb30d.js +0 -110
  898. package/cjs/tslib.es6-5a7eb30d.js.map +0 -1
  899. package/cjs/useLongPress-e7140087.js +0 -118
  900. package/cjs/useLongPress-e7140087.js.map +0 -1
  901. package/cjs/utils-693dd952.js +0 -38
  902. package/cjs/utils-693dd952.js.map +0 -1
  903. package/cjs/utils-b6001dd4.js +0 -32
  904. package/cjs/utils-b6001dd4.js.map +0 -1
  905. package/cjs/uuid-a9006ea2.js +0 -19
  906. package/compareIds-063e5503.js.map +0 -1
  907. package/const-14919575.js +0 -14
  908. package/const-14919575.js.map +0 -1
  909. package/const-1510a671.js.map +0 -1
  910. package/context-d5dc28c9.js +0 -12
  911. package/index-0fd24497.js.map +0 -1
  912. package/index-2561104e.js +0 -179
  913. package/index-2561104e.js.map +0 -1
  914. package/index-54843058.js +0 -57
  915. package/index-54843058.js.map +0 -1
  916. package/index-58e5d82d.js +0 -662
  917. package/index-58e5d82d.js.map +0 -1
  918. package/index-7c1f570b.js.map +0 -1
  919. package/index-95ac9232.js.map +0 -1
  920. package/index-b8de16d6.js.map +0 -1
  921. package/index-d07faed8.js +0 -353
  922. package/index-d07faed8.js.map +0 -1
  923. package/index-d81c515b.js.map +0 -1
  924. package/index-fd15e3b0.js.map +0 -1
  925. package/stringSet-7ace5726.js.map +0 -1
  926. package/topics-d390daf6.js +0 -13
  927. package/topics-d390daf6.js.map +0 -1
  928. package/tslib.es6-d9fa3716.js +0 -104
  929. package/tslib.es6-d9fa3716.js.map +0 -1
  930. package/useLongPress-7d9a5f67.js +0 -116
  931. package/useLongPress-7d9a5f67.js.map +0 -1
  932. package/utils-40ce4da5.js +0 -34
  933. package/utils-40ce4da5.js.map +0 -1
  934. package/utils-d485030c.js +0 -30
  935. package/utils-d485030c.js.map +0 -1
  936. package/uuid-968941a0.js +0 -17
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lame.all.js","sources":["../src/_externals/lamejs/lame.all.js"],"sourcesContent":["function $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\nvar $parcel$global =\ntypeof globalThis !== 'undefined'\n ? globalThis\n : typeof self !== 'undefined'\n ? self\n : typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {};\nvar $parcel$modules = {};\nvar $parcel$inits = {};\n\nvar parcelRequire = $parcel$global[\"parcelRequire3f09\"];\nif (parcelRequire == null) {\n parcelRequire = function(id) {\n if (id in $parcel$modules) {\n return $parcel$modules[id].exports;\n }\n if (id in $parcel$inits) {\n var init = $parcel$inits[id];\n delete $parcel$inits[id];\n var module = {id: id, exports: {}};\n $parcel$modules[id] = module;\n init.call(module.exports, module, module.exports);\n return module.exports;\n }\n var err = new Error(\"Cannot find module '\" + id + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n };\n\n parcelRequire.register = function register(id, init) {\n $parcel$inits[id] = init;\n };\n\n $parcel$global[\"parcelRequire3f09\"] = parcelRequire;\n}\nparcelRequire.register(\"kk1yk\", function(module, exports) {\n\nvar $3YDN3 = parcelRequire(\"3YDN3\");\nvar $ecb6e13812bdc08b$var$System = $3YDN3.System;\nvar $ecb6e13812bdc08b$var$VbrMode = $3YDN3.VbrMode;\nvar $ecb6e13812bdc08b$var$Float = $3YDN3.Float;\nvar $ecb6e13812bdc08b$var$ShortBlock = $3YDN3.ShortBlock;\nvar $ecb6e13812bdc08b$var$Util = $3YDN3.Util;\nvar $ecb6e13812bdc08b$var$Arrays = $3YDN3.Arrays;\nvar $ecb6e13812bdc08b$var$new_array_n = $3YDN3.new_array_n;\nvar $ecb6e13812bdc08b$var$new_byte = $3YDN3.new_byte;\nvar $ecb6e13812bdc08b$var$new_double = $3YDN3.new_double;\nvar $ecb6e13812bdc08b$var$new_float = $3YDN3.new_float;\nvar $ecb6e13812bdc08b$var$new_float_n = $3YDN3.new_float_n;\nvar $ecb6e13812bdc08b$var$new_int = $3YDN3.new_int;\nvar $ecb6e13812bdc08b$var$new_int_n = $3YDN3.new_int_n;\nvar $ecb6e13812bdc08b$var$new_short_n = $3YDN3.new_short_n;\nvar $ecb6e13812bdc08b$var$assert = $3YDN3.assert;\n\nvar $d2VP0 = parcelRequire(\"d2VP0\");\n\nvar $5HJeD = parcelRequire(\"5HJeD\");\n\nvar $4SDnr = parcelRequire(\"4SDnr\");\n\nvar $cU3Yf = parcelRequire(\"cU3Yf\");\n\nvar $2qGTD = parcelRequire(\"2qGTD\");\n\nvar $e32wu = parcelRequire(\"e32wu\");\n\nvar $ctaQC = parcelRequire(\"ctaQC\");\n\nvar $dQDcS = parcelRequire(\"dQDcS\");\n\nvar $cPNKB = parcelRequire(\"cPNKB\");\n\nfunction $ecb6e13812bdc08b$var$Lame() {\n var MPEGMode = (parcelRequire(\"jL6I1\"));\n var self = this;\n var LAME_MAXALBUMART = 131072;\n $ecb6e13812bdc08b$var$Lame.V9 = 410;\n $ecb6e13812bdc08b$var$Lame.V8 = 420;\n $ecb6e13812bdc08b$var$Lame.V7 = 430;\n $ecb6e13812bdc08b$var$Lame.V6 = 440;\n $ecb6e13812bdc08b$var$Lame.V5 = 450;\n $ecb6e13812bdc08b$var$Lame.V4 = 460;\n $ecb6e13812bdc08b$var$Lame.V3 = 470;\n $ecb6e13812bdc08b$var$Lame.V2 = 480;\n $ecb6e13812bdc08b$var$Lame.V1 = 490;\n $ecb6e13812bdc08b$var$Lame.V0 = 500;\n /* still there for compatibility */ $ecb6e13812bdc08b$var$Lame.R3MIX = 1000;\n $ecb6e13812bdc08b$var$Lame.STANDARD = 1001;\n $ecb6e13812bdc08b$var$Lame.EXTREME = 1002;\n $ecb6e13812bdc08b$var$Lame.INSANE = 1003;\n $ecb6e13812bdc08b$var$Lame.STANDARD_FAST = 1004;\n $ecb6e13812bdc08b$var$Lame.EXTREME_FAST = 1005;\n $ecb6e13812bdc08b$var$Lame.MEDIUM = 1006;\n $ecb6e13812bdc08b$var$Lame.MEDIUM_FAST = 1007;\n /**\n * maximum size of mp3buffer needed if you encode at most 1152 samples for\n * each call to lame_encode_buffer. see lame_encode_buffer() below\n * (LAME_MAXMP3BUFFER is now obsolete)\n */ var LAME_MAXMP3BUFFER = 16384 + LAME_MAXALBUMART;\n $ecb6e13812bdc08b$var$Lame.LAME_MAXMP3BUFFER = LAME_MAXMP3BUFFER;\n var ga;\n var bs;\n var p;\n var qupvt;\n var qu;\n var psy = new $d2VP0();\n var vbr;\n var ver;\n var id3;\n var mpglib;\n this.enc = new $cPNKB();\n this.setModules = function(_ga, _bs, _p, _qupvt, _qu, _vbr, _ver, _id3, _mpglib) {\n ga = _ga;\n bs = _bs;\n p = _p;\n qupvt = _qupvt;\n qu = _qu;\n vbr = _vbr;\n ver = _ver;\n id3 = _id3;\n mpglib = _mpglib;\n this.enc.setModules(bs, psy, qupvt, vbr);\n };\n /**\n * PSY Model related stuff\n */ function PSY() {\n /**\n * The dbQ stuff.\n */ this.mask_adjust = 0.;\n /**\n * The dbQ stuff.\n */ this.mask_adjust_short = 0.;\n /* at transition from one scalefactor band to next */ /**\n * Band weight long scalefactor bands.\n */ this.bo_l_weight = $ecb6e13812bdc08b$var$new_float($cPNKB.SBMAX_l);\n /**\n * Band weight short scalefactor bands.\n */ this.bo_s_weight = $ecb6e13812bdc08b$var$new_float($cPNKB.SBMAX_s);\n }\n function LowPassHighPass() {\n this.lowerlimit = 0.;\n }\n function BandPass(bitrate, lPass) {\n this.lowpass = lPass;\n }\n var LAME_ID = 0xFFF88E3B;\n function lame_init_old(gfp) {\n var gfc;\n gfp.class_id = LAME_ID;\n gfc = gfp.internal_flags = new $4SDnr();\n /* Global flags. set defaults here for non-zero values */ /* see lame.h for description */ /*\n * set integer values to -1 to mean that LAME will compute the best\n * value, UNLESS the calling program as set it (and the value is no\n * longer -1)\n */ gfp.mode = MPEGMode.NOT_SET;\n gfp.original = 1;\n gfp.in_samplerate = 44100;\n gfp.num_channels = 2;\n gfp.num_samples = -1;\n gfp.bWriteVbrTag = true;\n gfp.quality = -1;\n gfp.short_blocks = null;\n gfc.subblock_gain = -1;\n gfp.lowpassfreq = 0;\n gfp.highpassfreq = 0;\n gfp.lowpasswidth = -1;\n gfp.highpasswidth = -1;\n gfp.VBR = $ecb6e13812bdc08b$var$VbrMode.vbr_off;\n gfp.VBR_q = 4;\n gfp.ATHcurve = -1;\n gfp.VBR_mean_bitrate_kbps = 128;\n gfp.VBR_min_bitrate_kbps = 0;\n gfp.VBR_max_bitrate_kbps = 0;\n gfp.VBR_hard_min = 0;\n gfc.VBR_min_bitrate = 1;\n /* not 0 ????? */ gfc.VBR_max_bitrate = 13;\n /* not 14 ????? */ gfp.quant_comp = -1;\n gfp.quant_comp_short = -1;\n gfp.msfix = -1;\n gfc.resample_ratio = 1;\n gfc.OldValue[0] = 180;\n gfc.OldValue[1] = 180;\n gfc.CurrentStep[0] = 4;\n gfc.CurrentStep[1] = 4;\n gfc.masking_lower = 1;\n gfc.nsPsy.attackthre = -1;\n gfc.nsPsy.attackthre_s = -1;\n gfp.scale = -1;\n gfp.athaa_type = -1;\n gfp.ATHtype = -1;\n /* default = -1 = set in lame_init_params */ gfp.athaa_loudapprox = -1;\n /* 1 = flat loudness approx. (total energy) */ /* 2 = equal loudness curve */ gfp.athaa_sensitivity = 0.0;\n /* no offset */ gfp.useTemporal = null;\n gfp.interChRatio = -1;\n /*\n * The reason for int mf_samples_to_encode = ENCDELAY + POSTDELAY;\n * ENCDELAY = internal encoder delay. And then we have to add\n * POSTDELAY=288 because of the 50% MDCT overlap. A 576 MDCT granule\n * decodes to 1152 samples. To synthesize the 576 samples centered under\n * this granule we need the previous granule for the first 288 samples\n * (no problem), and the next granule for the next 288 samples (not\n * possible if this is last granule). So we need to pad with 288 samples\n * to make sure we can encode the 576 samples we are interested in.\n */ gfc.mf_samples_to_encode = $cPNKB.ENCDELAY + $cPNKB.POSTDELAY;\n gfp.encoder_padding = 0;\n gfc.mf_size = $cPNKB.ENCDELAY - $cPNKB.MDCTDELAY;\n /*\n * we pad input with this many 0's\n */ gfp.findReplayGain = false;\n gfp.decode_on_the_fly = false;\n gfc.decode_on_the_fly = false;\n gfc.findReplayGain = false;\n gfc.findPeakSample = false;\n gfc.RadioGain = 0;\n gfc.AudiophileGain = 0;\n gfc.noclipGainChange = 0;\n gfc.noclipScale = -1;\n gfp.preset = 0;\n gfp.write_id3tag_automatic = true;\n return 0;\n }\n this.lame_init = function() {\n var gfp = new $5HJeD();\n var ret = lame_init_old(gfp);\n if (ret != 0) return null;\n gfp.lame_allocated_gfp = 1;\n return gfp;\n };\n function filter_coef(x) {\n if (x > 1.0) return 0.0;\n if (x <= 0.0) return 1.0;\n return Math.cos(Math.PI / 2 * x);\n }\n this.nearestBitrateFullIndex = function(bitrate) {\n /* borrowed from DM abr presets */ var full_bitrate_table = [\n 8,\n 16,\n 24,\n 32,\n 40,\n 48,\n 56,\n 64,\n 80,\n 96,\n 112,\n 128,\n 160,\n 192,\n 224,\n 256,\n 320\n ];\n var lower_range = 0, lower_range_kbps = 0, upper_range = 0, upper_range_kbps = 0;\n /* We assume specified bitrate will be 320kbps */ upper_range_kbps = full_bitrate_table[16];\n upper_range = 16;\n lower_range_kbps = full_bitrate_table[16];\n lower_range = 16;\n /*\n * Determine which significant bitrates the value specified falls\n * between, if loop ends without breaking then we were correct above\n * that the value was 320\n */ for(var b = 0; b < 16; b++)if (Math.max(bitrate, full_bitrate_table[b + 1]) != bitrate) {\n upper_range_kbps = full_bitrate_table[b + 1];\n upper_range = b + 1;\n lower_range_kbps = full_bitrate_table[b];\n lower_range = b;\n break;\n /* We found upper range */ }\n /* Determine which range the value specified is closer to */ if (upper_range_kbps - bitrate > bitrate - lower_range_kbps) return lower_range;\n return upper_range;\n };\n function optimum_samplefreq(lowpassfreq, input_samplefreq) {\n /*\n * Rules:\n *\n * - if possible, sfb21 should NOT be used\n */ var suggested_samplefreq = 44100;\n if (input_samplefreq >= 48000) suggested_samplefreq = 48000;\n else if (input_samplefreq >= 44100) suggested_samplefreq = 44100;\n else if (input_samplefreq >= 32000) suggested_samplefreq = 32000;\n else if (input_samplefreq >= 24000) suggested_samplefreq = 24000;\n else if (input_samplefreq >= 22050) suggested_samplefreq = 22050;\n else if (input_samplefreq >= 16000) suggested_samplefreq = 16000;\n else if (input_samplefreq >= 12000) suggested_samplefreq = 12000;\n else if (input_samplefreq >= 11025) suggested_samplefreq = 11025;\n else if (input_samplefreq >= 8000) suggested_samplefreq = 8000;\n if (lowpassfreq == -1) return suggested_samplefreq;\n if (lowpassfreq <= 15960) suggested_samplefreq = 44100;\n if (lowpassfreq <= 15250) suggested_samplefreq = 32000;\n if (lowpassfreq <= 11220) suggested_samplefreq = 24000;\n if (lowpassfreq <= 9970) suggested_samplefreq = 22050;\n if (lowpassfreq <= 7230) suggested_samplefreq = 16000;\n if (lowpassfreq <= 5420) suggested_samplefreq = 12000;\n if (lowpassfreq <= 4510) suggested_samplefreq = 11025;\n if (lowpassfreq <= 3970) suggested_samplefreq = 8000;\n if (input_samplefreq < suggested_samplefreq) {\n /*\n * choose a valid MPEG sample frequency above the input sample\n * frequency to avoid SFB21/12 bitrate bloat rh 061115\n */ if (input_samplefreq > 44100) return 48000;\n if (input_samplefreq > 32000) return 44100;\n if (input_samplefreq > 24000) return 32000;\n if (input_samplefreq > 22050) return 24000;\n if (input_samplefreq > 16000) return 22050;\n if (input_samplefreq > 12000) return 16000;\n if (input_samplefreq > 11025) return 12000;\n if (input_samplefreq > 8000) return 11025;\n return 8000;\n }\n return suggested_samplefreq;\n }\n /**\n * convert samp freq in Hz to index\n */ function SmpFrqIndex(sample_freq, gpf) {\n switch(sample_freq){\n case 44100:\n gpf.version = 1;\n return 0;\n case 48000:\n gpf.version = 1;\n return 1;\n case 32000:\n gpf.version = 1;\n return 2;\n case 22050:\n gpf.version = 0;\n return 0;\n case 24000:\n gpf.version = 0;\n return 1;\n case 16000:\n gpf.version = 0;\n return 2;\n case 11025:\n gpf.version = 0;\n return 0;\n case 12000:\n gpf.version = 0;\n return 1;\n case 8000:\n gpf.version = 0;\n return 2;\n default:\n gpf.version = 0;\n return -1;\n }\n }\n /**\n * @param bRate\n * legal rates from 8 to 320\n */ function FindNearestBitrate(bRate, version, samplerate) {\n /* MPEG-1 or MPEG-2 LSF */ if (samplerate < 16000) version = 2;\n var bitrate = $dQDcS.bitrate_table[version][1];\n for(var i = 2; i <= 14; i++){\n if ($dQDcS.bitrate_table[version][i] > 0) {\n if (Math.abs($dQDcS.bitrate_table[version][i] - bRate) < Math.abs(bitrate - bRate)) bitrate = $dQDcS.bitrate_table[version][i];\n }\n }\n return bitrate;\n }\n /**\n * @param bRate\n * legal rates from 32 to 448 kbps\n * @param version\n * MPEG-1 or MPEG-2/2.5 LSF\n */ function BitrateIndex(bRate, version, samplerate) {\n /* convert bitrate in kbps to index */ if (samplerate < 16000) version = 2;\n for(var i = 0; i <= 14; i++)if ($dQDcS.bitrate_table[version][i] > 0) {\n if ($dQDcS.bitrate_table[version][i] == bRate) return i;\n }\n return -1;\n }\n function optimum_bandwidth(lh, bitrate) {\n /**\n * <PRE>\n * Input:\n * bitrate total bitrate in kbps\n *\n * Output:\n * lowerlimit: best lowpass frequency limit for input filter in Hz\n * upperlimit: best highpass frequency limit for input filter in Hz\n * </PRE>\n */ var freq_map = [\n new BandPass(8, 2000),\n new BandPass(16, 3700),\n new BandPass(24, 3900),\n new BandPass(32, 5500),\n new BandPass(40, 7000),\n new BandPass(48, 7500),\n new BandPass(56, 10000),\n new BandPass(64, 11000),\n new BandPass(80, 13500),\n new BandPass(96, 15100),\n new BandPass(112, 15600),\n new BandPass(128, 17000),\n new BandPass(160, 17500),\n new BandPass(192, 18600),\n new BandPass(224, 19400),\n new BandPass(256, 19700),\n new BandPass(320, 20500)\n ];\n var table_index = self.nearestBitrateFullIndex(bitrate);\n lh.lowerlimit = freq_map[table_index].lowpass;\n }\n function lame_init_params_ppflt(gfp) {\n var gfc = gfp.internal_flags;\n /***************************************************************/ /* compute info needed for polyphase filter (filter type==0, default) */ /***************************************************************/ var lowpass_band = 32;\n var highpass_band = -1;\n if (gfc.lowpass1 > 0) {\n var minband = 999;\n for(var band = 0; band <= 31; band++){\n var freq = band / 31.0;\n /* this band and above will be zeroed: */ if (freq >= gfc.lowpass2) lowpass_band = Math.min(lowpass_band, band);\n if (gfc.lowpass1 < freq && freq < gfc.lowpass2) minband = Math.min(minband, band);\n }\n /*\n * compute the *actual* transition band implemented by the polyphase\n * filter\n */ if (minband == 999) gfc.lowpass1 = (lowpass_band - .75) / 31.0;\n else gfc.lowpass1 = (minband - .75) / 31.0;\n gfc.lowpass2 = lowpass_band / 31.0;\n }\n /*\n * make sure highpass filter is within 90% of what the effective\n * highpass frequency will be\n */ if (gfc.highpass2 > 0) {\n if (gfc.highpass2 < .9 * (.75 / 31.0)) {\n gfc.highpass1 = 0;\n gfc.highpass2 = 0;\n $ecb6e13812bdc08b$var$System.err.println(\"Warning: highpass filter disabled. highpass frequency too small\\n\");\n }\n }\n if (gfc.highpass2 > 0) {\n var maxband = -1;\n for(var band = 0; band <= 31; band++){\n var freq = band / 31.0;\n /* this band and below will be zereod */ if (freq <= gfc.highpass1) highpass_band = Math.max(highpass_band, band);\n if (gfc.highpass1 < freq && freq < gfc.highpass2) maxband = Math.max(maxband, band);\n }\n /*\n * compute the *actual* transition band implemented by the polyphase\n * filter\n */ gfc.highpass1 = highpass_band / 31.0;\n if (maxband == -1) gfc.highpass2 = (highpass_band + .75) / 31.0;\n else gfc.highpass2 = (maxband + .75) / 31.0;\n }\n for(var band = 0; band < 32; band++){\n var fc1, fc2;\n var freq = band / 31.0;\n if (gfc.highpass2 > gfc.highpass1) fc1 = filter_coef((gfc.highpass2 - freq) / (gfc.highpass2 - gfc.highpass1 + 1e-20));\n else fc1 = 1.0;\n if (gfc.lowpass2 > gfc.lowpass1) fc2 = filter_coef((freq - gfc.lowpass1) / (gfc.lowpass2 - gfc.lowpass1 + 1e-20));\n else fc2 = 1.0;\n gfc.amp_filter[band] = fc1 * fc2;\n }\n }\n function lame_init_qval(gfp) {\n var gfc = gfp.internal_flags;\n switch(gfp.quality){\n default:\n case 9:\n /* no psymodel, no noise shaping */ gfc.psymodel = 0;\n gfc.noise_shaping = 0;\n gfc.noise_shaping_amp = 0;\n gfc.noise_shaping_stop = 0;\n gfc.use_best_huffman = 0;\n gfc.full_outer_loop = 0;\n break;\n case 8:\n gfp.quality = 7;\n //$FALL-THROUGH$\n case 7:\n /*\n * use psymodel (for short block and m/s switching), but no noise\n * shapping\n */ gfc.psymodel = 1;\n gfc.noise_shaping = 0;\n gfc.noise_shaping_amp = 0;\n gfc.noise_shaping_stop = 0;\n gfc.use_best_huffman = 0;\n gfc.full_outer_loop = 0;\n break;\n case 6:\n gfc.psymodel = 1;\n if (gfc.noise_shaping == 0) gfc.noise_shaping = 1;\n gfc.noise_shaping_amp = 0;\n gfc.noise_shaping_stop = 0;\n if (gfc.subblock_gain == -1) gfc.subblock_gain = 1;\n gfc.use_best_huffman = 0;\n gfc.full_outer_loop = 0;\n break;\n case 5:\n gfc.psymodel = 1;\n if (gfc.noise_shaping == 0) gfc.noise_shaping = 1;\n gfc.noise_shaping_amp = 0;\n gfc.noise_shaping_stop = 0;\n if (gfc.subblock_gain == -1) gfc.subblock_gain = 1;\n gfc.use_best_huffman = 0;\n gfc.full_outer_loop = 0;\n break;\n case 4:\n gfc.psymodel = 1;\n if (gfc.noise_shaping == 0) gfc.noise_shaping = 1;\n gfc.noise_shaping_amp = 0;\n gfc.noise_shaping_stop = 0;\n if (gfc.subblock_gain == -1) gfc.subblock_gain = 1;\n gfc.use_best_huffman = 1;\n gfc.full_outer_loop = 0;\n break;\n case 3:\n gfc.psymodel = 1;\n if (gfc.noise_shaping == 0) gfc.noise_shaping = 1;\n gfc.noise_shaping_amp = 1;\n gfc.noise_shaping_stop = 1;\n if (gfc.subblock_gain == -1) gfc.subblock_gain = 1;\n gfc.use_best_huffman = 1;\n gfc.full_outer_loop = 0;\n break;\n case 2:\n gfc.psymodel = 1;\n if (gfc.noise_shaping == 0) gfc.noise_shaping = 1;\n if (gfc.substep_shaping == 0) gfc.substep_shaping = 2;\n gfc.noise_shaping_amp = 1;\n gfc.noise_shaping_stop = 1;\n if (gfc.subblock_gain == -1) gfc.subblock_gain = 1;\n gfc.use_best_huffman = 1;\n /* inner loop */ gfc.full_outer_loop = 0;\n break;\n case 1:\n gfc.psymodel = 1;\n if (gfc.noise_shaping == 0) gfc.noise_shaping = 1;\n if (gfc.substep_shaping == 0) gfc.substep_shaping = 2;\n gfc.noise_shaping_amp = 2;\n gfc.noise_shaping_stop = 1;\n if (gfc.subblock_gain == -1) gfc.subblock_gain = 1;\n gfc.use_best_huffman = 1;\n gfc.full_outer_loop = 0;\n break;\n case 0:\n gfc.psymodel = 1;\n if (gfc.noise_shaping == 0) gfc.noise_shaping = 1;\n if (gfc.substep_shaping == 0) gfc.substep_shaping = 2;\n gfc.noise_shaping_amp = 2;\n gfc.noise_shaping_stop = 1;\n if (gfc.subblock_gain == -1) gfc.subblock_gain = 1;\n gfc.use_best_huffman = 1;\n /*\n * type 2 disabled because of it slowness, in favor of full outer\n * loop search\n */ gfc.full_outer_loop = 0;\n break;\n }\n }\n function lame_init_bitstream(gfp) {\n var gfc = gfp.internal_flags;\n gfp.frameNum = 0;\n if (gfp.write_id3tag_automatic) id3.id3tag_write_v2(gfp);\n /* initialize histogram data optionally used by frontend */ gfc.bitrate_stereoMode_Hist = $ecb6e13812bdc08b$var$new_int_n([\n 16,\n 5\n ]);\n gfc.bitrate_blockType_Hist = $ecb6e13812bdc08b$var$new_int_n([\n 16,\n 6\n ]);\n gfc.PeakSample = 0.0;\n /* Write initial VBR Header to bitstream and init VBR data */ if (gfp.bWriteVbrTag) vbr.InitVbrTag(gfp);\n }\n /********************************************************************\n * initialize internal params based on data in gf (globalflags struct filled\n * in by calling program)\n *\n * OUTLINE:\n *\n * We first have some complex code to determine bitrate, output samplerate\n * and mode. It is complicated by the fact that we allow the user to set\n * some or all of these parameters, and need to determine best possible\n * values for the rest of them:\n *\n * 1. set some CPU related flags 2. check if we are mono.mono, stereo.mono\n * or stereo.stereo 3. compute bitrate and output samplerate: user may have\n * set compression ratio user may have set a bitrate user may have set a\n * output samplerate 4. set some options which depend on output samplerate\n * 5. compute the actual compression ratio 6. set mode based on compression\n * ratio\n *\n * The remaining code is much simpler - it just sets options based on the\n * mode & compression ratio:\n *\n * set allow_diff_short based on mode select lowpass filter based on\n * compression ratio & mode set the bitrate index, and min/max bitrates for\n * VBR modes disable VBR tag if it is not appropriate initialize the\n * bitstream initialize scalefac_band data set sideinfo_len (based on\n * channels, CRC, out_samplerate) write an id3v2 tag into the bitstream\n * write VBR tag into the bitstream set mpeg1/2 flag estimate the number of\n * frames (based on a lot of data)\n *\n * now we set more flags: nspsytune: see code VBR modes see code CBR/ABR see\n * code\n *\n * Finally, we set the algorithm flags based on the gfp.quality value\n * lame_init_qval(gfp);\n *\n ********************************************************************/ this.lame_init_params = function(gfp) {\n var gfc = gfp.internal_flags;\n gfc.Class_ID = 0;\n if (gfc.ATH == null) gfc.ATH = new $cU3Yf();\n if (gfc.PSY == null) gfc.PSY = new PSY();\n if (gfc.rgdata == null) gfc.rgdata = new $2qGTD();\n gfc.channels_in = gfp.num_channels;\n if (gfc.channels_in == 1) gfp.mode = MPEGMode.MONO;\n gfc.channels_out = gfp.mode == MPEGMode.MONO ? 1 : 2;\n gfc.mode_ext = $cPNKB.MPG_MD_MS_LR;\n if (gfp.mode == MPEGMode.MONO) gfp.force_ms = false;\n /*\n * don't allow forced mid/side stereo for mono output\n */ if (gfp.VBR == $ecb6e13812bdc08b$var$VbrMode.vbr_off && gfp.VBR_mean_bitrate_kbps != 128 && gfp.brate == 0) gfp.brate = gfp.VBR_mean_bitrate_kbps;\n if (gfp.VBR == $ecb6e13812bdc08b$var$VbrMode.vbr_off || gfp.VBR == $ecb6e13812bdc08b$var$VbrMode.vbr_mtrh || gfp.VBR == $ecb6e13812bdc08b$var$VbrMode.vbr_mt) ;\n else gfp.free_format = false;\n if (gfp.VBR == $ecb6e13812bdc08b$var$VbrMode.vbr_off && gfp.brate == 0) /* no bitrate or compression ratio specified, use 11.025 */ {\n if ($ctaQC.EQ(gfp.compression_ratio, 0)) gfp.compression_ratio = 11.025;\n }\n /* find bitrate if user specify a compression ratio */ if (gfp.VBR == $ecb6e13812bdc08b$var$VbrMode.vbr_off && gfp.compression_ratio > 0) {\n if (gfp.out_samplerate == 0) gfp.out_samplerate = map2MP3Frequency(int(0.97 * gfp.in_samplerate));\n /*\n * round up with a margin of 3 %\n */ /*\n * choose a bitrate for the output samplerate which achieves\n * specified compression ratio\n */ gfp.brate = 0 | gfp.out_samplerate * 16 * gfc.channels_out / (1.e3 * gfp.compression_ratio);\n /* we need the version for the bitrate table look up */ gfc.samplerate_index = SmpFrqIndex(gfp.out_samplerate, gfp);\n if (!gfp.free_format) /*\n * for non Free Format find the nearest allowed\n * bitrate\n */ gfp.brate = FindNearestBitrate(gfp.brate, gfp.version, gfp.out_samplerate);\n }\n if (gfp.out_samplerate != 0) {\n if (gfp.out_samplerate < 16000) {\n gfp.VBR_mean_bitrate_kbps = Math.max(gfp.VBR_mean_bitrate_kbps, 8);\n gfp.VBR_mean_bitrate_kbps = Math.min(gfp.VBR_mean_bitrate_kbps, 64);\n } else if (gfp.out_samplerate < 32000) {\n gfp.VBR_mean_bitrate_kbps = Math.max(gfp.VBR_mean_bitrate_kbps, 8);\n gfp.VBR_mean_bitrate_kbps = Math.min(gfp.VBR_mean_bitrate_kbps, 160);\n } else {\n gfp.VBR_mean_bitrate_kbps = Math.max(gfp.VBR_mean_bitrate_kbps, 32);\n gfp.VBR_mean_bitrate_kbps = Math.min(gfp.VBR_mean_bitrate_kbps, 320);\n }\n }\n /****************************************************************/ /* if a filter has not been enabled, see if we should add one: */ /****************************************************************/ if (gfp.lowpassfreq == 0) {\n var lowpass = 16000.;\n switch(gfp.VBR){\n case $ecb6e13812bdc08b$var$VbrMode.vbr_off:\n var lh = new LowPassHighPass();\n optimum_bandwidth(lh, gfp.brate);\n lowpass = lh.lowerlimit;\n break;\n case $ecb6e13812bdc08b$var$VbrMode.vbr_abr:\n var lh = new LowPassHighPass();\n optimum_bandwidth(lh, gfp.VBR_mean_bitrate_kbps);\n lowpass = lh.lowerlimit;\n break;\n case $ecb6e13812bdc08b$var$VbrMode.vbr_rh:\n var x = [\n 19500,\n 19000,\n 18600,\n 18000,\n 17500,\n 16000,\n 15600,\n 14900,\n 12500,\n 10000,\n 3950\n ];\n if (0 <= gfp.VBR_q && gfp.VBR_q <= 9) {\n var a = x[gfp.VBR_q], b = x[gfp.VBR_q + 1], m = gfp.VBR_q_frac;\n lowpass = linear_int(a, b, m);\n } else lowpass = 19500;\n break;\n default:\n var x = [\n 19500,\n 19000,\n 18500,\n 18000,\n 17500,\n 16500,\n 15500,\n 14500,\n 12500,\n 9500,\n 3950\n ];\n if (0 <= gfp.VBR_q && gfp.VBR_q <= 9) {\n var a = x[gfp.VBR_q], b = x[gfp.VBR_q + 1], m = gfp.VBR_q_frac;\n lowpass = linear_int(a, b, m);\n } else lowpass = 19500;\n }\n if (gfp.mode == MPEGMode.MONO && (gfp.VBR == $ecb6e13812bdc08b$var$VbrMode.vbr_off || gfp.VBR == $ecb6e13812bdc08b$var$VbrMode.vbr_abr)) lowpass *= 1.5;\n gfp.lowpassfreq = lowpass | 0;\n }\n if (gfp.out_samplerate == 0) {\n if (2 * gfp.lowpassfreq > gfp.in_samplerate) gfp.lowpassfreq = gfp.in_samplerate / 2;\n gfp.out_samplerate = optimum_samplefreq(gfp.lowpassfreq | 0, gfp.in_samplerate);\n }\n gfp.lowpassfreq = Math.min(20500, gfp.lowpassfreq);\n gfp.lowpassfreq = Math.min(gfp.out_samplerate / 2, gfp.lowpassfreq);\n if (gfp.VBR == $ecb6e13812bdc08b$var$VbrMode.vbr_off) gfp.compression_ratio = gfp.out_samplerate * 16 * gfc.channels_out / (1.e3 * gfp.brate);\n if (gfp.VBR == $ecb6e13812bdc08b$var$VbrMode.vbr_abr) gfp.compression_ratio = gfp.out_samplerate * 16 * gfc.channels_out / (1.e3 * gfp.VBR_mean_bitrate_kbps);\n /*\n * do not compute ReplayGain values and do not find the peak sample if\n * we can't store them\n */ if (!gfp.bWriteVbrTag) {\n gfp.findReplayGain = false;\n gfp.decode_on_the_fly = false;\n gfc.findPeakSample = false;\n }\n gfc.findReplayGain = gfp.findReplayGain;\n gfc.decode_on_the_fly = gfp.decode_on_the_fly;\n if (gfc.decode_on_the_fly) gfc.findPeakSample = true;\n if (gfc.findReplayGain) {\n if (ga.InitGainAnalysis(gfc.rgdata, gfp.out_samplerate) == GainAnalysis.INIT_GAIN_ANALYSIS_ERROR) {\n gfp.internal_flags = null;\n return -6;\n }\n }\n if (gfc.decode_on_the_fly && !gfp.decode_only) {\n if (gfc.hip != null) mpglib.hip_decode_exit(gfc.hip);\n gfc.hip = mpglib.hip_decode_init();\n }\n gfc.mode_gr = gfp.out_samplerate <= 24000 ? 1 : 2;\n /*\n * Number of granules per frame\n */ gfp.framesize = 576 * gfc.mode_gr;\n gfp.encoder_delay = $cPNKB.ENCDELAY;\n gfc.resample_ratio = gfp.in_samplerate / gfp.out_samplerate;\n /**\n * <PRE>\n * sample freq bitrate compression ratio\n * [kHz] [kbps/channel] for 16 bit input\n * 44.1 56 12.6\n * 44.1 64 11.025\n * 44.1 80 8.82\n * 22.05 24 14.7\n * 22.05 32 11.025\n * 22.05 40 8.82\n * 16 16 16.0\n * 16 24 10.667\n * </PRE>\n */ /**\n * <PRE>\n * For VBR, take a guess at the compression_ratio.\n * For example:\n *\n * VBR_q compression like\n * - 4.4 320 kbps/44 kHz\n * 0...1 5.5 256 kbps/44 kHz\n * 2 7.3 192 kbps/44 kHz\n * 4 8.8 160 kbps/44 kHz\n * 6 11 128 kbps/44 kHz\n * 9 14.7 96 kbps\n *\n * for lower bitrates, downsample with --resample\n * </PRE>\n */ switch(gfp.VBR){\n case $ecb6e13812bdc08b$var$VbrMode.vbr_mt:\n case $ecb6e13812bdc08b$var$VbrMode.vbr_rh:\n case $ecb6e13812bdc08b$var$VbrMode.vbr_mtrh:\n /* numbers are a bit strange, but they determine the lowpass value */ var cmp = [\n 5.7,\n 6.5,\n 7.3,\n 8.2,\n 10,\n 11.9,\n 13,\n 14,\n 15,\n 16.5\n ];\n gfp.compression_ratio = cmp[gfp.VBR_q];\n break;\n case $ecb6e13812bdc08b$var$VbrMode.vbr_abr:\n gfp.compression_ratio = gfp.out_samplerate * 16 * gfc.channels_out / (1.e3 * gfp.VBR_mean_bitrate_kbps);\n break;\n default:\n gfp.compression_ratio = gfp.out_samplerate * 16 * gfc.channels_out / (1.e3 * gfp.brate);\n break;\n }\n /*\n * mode = -1 (not set by user) or mode = MONO (because of only 1 input\n * channel). If mode has not been set, then select J-STEREO\n */ if (gfp.mode == MPEGMode.NOT_SET) gfp.mode = MPEGMode.JOINT_STEREO;\n /* apply user driven high pass filter */ if (gfp.highpassfreq > 0) {\n gfc.highpass1 = 2. * gfp.highpassfreq;\n if (gfp.highpasswidth >= 0) gfc.highpass2 = 2. * (gfp.highpassfreq + gfp.highpasswidth);\n else /* 0% above on default */ gfc.highpass2 = 2 * gfp.highpassfreq;\n gfc.highpass1 /= gfp.out_samplerate;\n gfc.highpass2 /= gfp.out_samplerate;\n } else {\n gfc.highpass1 = 0;\n gfc.highpass2 = 0;\n }\n /* apply user driven low pass filter */ if (gfp.lowpassfreq > 0) {\n gfc.lowpass2 = 2. * gfp.lowpassfreq;\n if (gfp.lowpasswidth >= 0) {\n gfc.lowpass1 = 2. * (gfp.lowpassfreq - gfp.lowpasswidth);\n if (gfc.lowpass1 < 0) /* has to be >= 0 */ gfc.lowpass1 = 0;\n } else gfc.lowpass1 = 2 * gfp.lowpassfreq;\n gfc.lowpass1 /= gfp.out_samplerate;\n gfc.lowpass2 /= gfp.out_samplerate;\n } else {\n gfc.lowpass1 = 0;\n gfc.lowpass2 = 0;\n }\n /**********************************************************************/ /* compute info needed for polyphase filter (filter type==0, default) */ /**********************************************************************/ lame_init_params_ppflt(gfp);\n /*******************************************************\n * samplerate and bitrate index\n *******************************************************/ gfc.samplerate_index = SmpFrqIndex(gfp.out_samplerate, gfp);\n if (gfc.samplerate_index < 0) {\n gfp.internal_flags = null;\n return -1;\n }\n if (gfp.VBR == $ecb6e13812bdc08b$var$VbrMode.vbr_off) {\n if (gfp.free_format) gfc.bitrate_index = 0;\n else {\n gfp.brate = FindNearestBitrate(gfp.brate, gfp.version, gfp.out_samplerate);\n gfc.bitrate_index = BitrateIndex(gfp.brate, gfp.version, gfp.out_samplerate);\n if (gfc.bitrate_index <= 0) {\n gfp.internal_flags = null;\n return -1;\n }\n }\n } else gfc.bitrate_index = 1;\n /* for CBR, we will write an \"info\" tag. */ if (gfp.analysis) gfp.bWriteVbrTag = false;\n /* some file options not allowed if output is: not specified or stdout */ if (gfc.pinfo != null) gfp.bWriteVbrTag = false;\n /* disable Xing VBR tag */ bs.init_bit_stream_w(gfc);\n var j = gfc.samplerate_index + 3 * gfp.version + 6 * (gfp.out_samplerate < 16000 ? 1 : 0);\n for(var i = 0; i < $cPNKB.SBMAX_l + 1; i++)gfc.scalefac_band.l[i] = qupvt.sfBandIndex[j].l[i];\n for(var i = 0; i < $cPNKB.PSFB21 + 1; i++){\n var size = (gfc.scalefac_band.l[22] - gfc.scalefac_band.l[21]) / $cPNKB.PSFB21;\n var start = gfc.scalefac_band.l[21] + i * size;\n gfc.scalefac_band.psfb21[i] = start;\n }\n gfc.scalefac_band.psfb21[$cPNKB.PSFB21] = 576;\n for(var i = 0; i < $cPNKB.SBMAX_s + 1; i++)gfc.scalefac_band.s[i] = qupvt.sfBandIndex[j].s[i];\n for(var i = 0; i < $cPNKB.PSFB12 + 1; i++){\n var size = (gfc.scalefac_band.s[13] - gfc.scalefac_band.s[12]) / $cPNKB.PSFB12;\n var start = gfc.scalefac_band.s[12] + i * size;\n gfc.scalefac_band.psfb12[i] = start;\n }\n gfc.scalefac_band.psfb12[$cPNKB.PSFB12] = 192;\n /* determine the mean bitrate for main data */ if (gfp.version == 1) /* MPEG 1 */ gfc.sideinfo_len = gfc.channels_out == 1 ? 21 : 36;\n else /* MPEG 2 */ gfc.sideinfo_len = gfc.channels_out == 1 ? 13 : 21;\n if (gfp.error_protection) gfc.sideinfo_len += 2;\n lame_init_bitstream(gfp);\n gfc.Class_ID = LAME_ID;\n var k;\n for(k = 0; k < 19; k++)gfc.nsPsy.pefirbuf[k] = 700 * gfc.mode_gr * gfc.channels_out;\n if (gfp.ATHtype == -1) gfp.ATHtype = 4;\n $ecb6e13812bdc08b$var$assert(gfp.VBR_q <= 9);\n $ecb6e13812bdc08b$var$assert(gfp.VBR_q >= 0);\n switch(gfp.VBR){\n case $ecb6e13812bdc08b$var$VbrMode.vbr_mt:\n gfp.VBR = $ecb6e13812bdc08b$var$VbrMode.vbr_mtrh;\n //$FALL-THROUGH$\n case $ecb6e13812bdc08b$var$VbrMode.vbr_mtrh:\n if (gfp.useTemporal == null) gfp.useTemporal = false;\n p.apply_preset(gfp, 500 - gfp.VBR_q * 10, 0);\n /**\n * <PRE>\n * The newer VBR code supports only a limited\n * subset of quality levels:\n * 9-5=5 are the same, uses x^3/4 quantization\n * 4-0=0 are the same 5 plus best huffman divide code\n * </PRE>\n */ if (gfp.quality < 0) gfp.quality = LAME_DEFAULT_QUALITY;\n if (gfp.quality < 5) gfp.quality = 0;\n if (gfp.quality > 5) gfp.quality = 5;\n gfc.PSY.mask_adjust = gfp.maskingadjust;\n gfc.PSY.mask_adjust_short = gfp.maskingadjust_short;\n /*\n * sfb21 extra only with MPEG-1 at higher sampling rates\n */ if (gfp.experimentalY) gfc.sfb21_extra = false;\n else gfc.sfb21_extra = gfp.out_samplerate > 44000;\n gfc.iteration_loop = new VBRNewIterationLoop(qu);\n break;\n case $ecb6e13812bdc08b$var$VbrMode.vbr_rh:\n p.apply_preset(gfp, 500 - gfp.VBR_q * 10, 0);\n gfc.PSY.mask_adjust = gfp.maskingadjust;\n gfc.PSY.mask_adjust_short = gfp.maskingadjust_short;\n /*\n * sfb21 extra only with MPEG-1 at higher sampling rates\n */ if (gfp.experimentalY) gfc.sfb21_extra = false;\n else gfc.sfb21_extra = gfp.out_samplerate > 44000;\n /*\n * VBR needs at least the output of GPSYCHO, so we have to garantee\n * that by setting a minimum quality level, actually level 6 does\n * it. down to level 6\n */ if (gfp.quality > 6) gfp.quality = 6;\n if (gfp.quality < 0) gfp.quality = LAME_DEFAULT_QUALITY;\n gfc.iteration_loop = new VBROldIterationLoop(qu);\n break;\n default:\n var vbrmode;\n /*\n * no sfb21 extra with CBR code\n */ gfc.sfb21_extra = false;\n if (gfp.quality < 0) gfp.quality = LAME_DEFAULT_QUALITY;\n vbrmode = gfp.VBR;\n if (vbrmode == $ecb6e13812bdc08b$var$VbrMode.vbr_off) gfp.VBR_mean_bitrate_kbps = gfp.brate;\n /* second, set parameters depending on bitrate */ p.apply_preset(gfp, gfp.VBR_mean_bitrate_kbps, 0);\n gfp.VBR = vbrmode;\n gfc.PSY.mask_adjust = gfp.maskingadjust;\n gfc.PSY.mask_adjust_short = gfp.maskingadjust_short;\n if (vbrmode == $ecb6e13812bdc08b$var$VbrMode.vbr_off) gfc.iteration_loop = new $e32wu(qu);\n else gfc.iteration_loop = new ABRIterationLoop(qu);\n break;\n }\n $ecb6e13812bdc08b$var$assert(gfp.scale >= 0);\n /* initialize default values common for all modes */ if (gfp.VBR != $ecb6e13812bdc08b$var$VbrMode.vbr_off) {\n /* if the user didn't specify VBR_max_bitrate: */ gfc.VBR_min_bitrate = 1;\n /*\n * default: allow 8 kbps (MPEG-2) or 32 kbps (MPEG-1)\n */ gfc.VBR_max_bitrate = 14;\n /*\n * default: allow 160 kbps (MPEG-2) or 320 kbps (MPEG-1)\n */ if (gfp.out_samplerate < 16000) gfc.VBR_max_bitrate = 8;\n /* default: allow 64 kbps (MPEG-2.5) */ if (gfp.VBR_min_bitrate_kbps != 0) {\n gfp.VBR_min_bitrate_kbps = FindNearestBitrate(gfp.VBR_min_bitrate_kbps, gfp.version, gfp.out_samplerate);\n gfc.VBR_min_bitrate = BitrateIndex(gfp.VBR_min_bitrate_kbps, gfp.version, gfp.out_samplerate);\n if (gfc.VBR_min_bitrate < 0) return -1;\n }\n if (gfp.VBR_max_bitrate_kbps != 0) {\n gfp.VBR_max_bitrate_kbps = FindNearestBitrate(gfp.VBR_max_bitrate_kbps, gfp.version, gfp.out_samplerate);\n gfc.VBR_max_bitrate = BitrateIndex(gfp.VBR_max_bitrate_kbps, gfp.version, gfp.out_samplerate);\n if (gfc.VBR_max_bitrate < 0) return -1;\n }\n gfp.VBR_min_bitrate_kbps = $dQDcS.bitrate_table[gfp.version][gfc.VBR_min_bitrate];\n gfp.VBR_max_bitrate_kbps = $dQDcS.bitrate_table[gfp.version][gfc.VBR_max_bitrate];\n gfp.VBR_mean_bitrate_kbps = Math.min($dQDcS.bitrate_table[gfp.version][gfc.VBR_max_bitrate], gfp.VBR_mean_bitrate_kbps);\n gfp.VBR_mean_bitrate_kbps = Math.max($dQDcS.bitrate_table[gfp.version][gfc.VBR_min_bitrate], gfp.VBR_mean_bitrate_kbps);\n }\n /* just another daily changing developer switch */ if (gfp.tune) {\n gfc.PSY.mask_adjust += gfp.tune_value_a;\n gfc.PSY.mask_adjust_short += gfp.tune_value_a;\n }\n /* initialize internal qval settings */ lame_init_qval(gfp);\n $ecb6e13812bdc08b$var$assert(gfp.scale >= 0);\n /*\n * automatic ATH adjustment on\n */ if (gfp.athaa_type < 0) gfc.ATH.useAdjust = 3;\n else gfc.ATH.useAdjust = gfp.athaa_type;\n /* initialize internal adaptive ATH settings -jd */ gfc.ATH.aaSensitivityP = Math.pow(10.0, gfp.athaa_sensitivity / -10);\n if (gfp.short_blocks == null) gfp.short_blocks = $ecb6e13812bdc08b$var$ShortBlock.short_block_allowed;\n /*\n * Note Jan/2003: Many hardware decoders cannot handle short blocks in\n * regular stereo mode unless they are coupled (same type in both\n * channels) it is a rare event (1 frame per min. or so) that LAME would\n * use uncoupled short blocks, so lets turn them off until we decide how\n * to handle this. No other encoders allow uncoupled short blocks, even\n * though it is in the standard.\n */ /*\n * rh 20040217: coupling makes no sense for mono and dual-mono streams\n */ if (gfp.short_blocks == $ecb6e13812bdc08b$var$ShortBlock.short_block_allowed && (gfp.mode == MPEGMode.JOINT_STEREO || gfp.mode == MPEGMode.STEREO)) gfp.short_blocks = $ecb6e13812bdc08b$var$ShortBlock.short_block_coupled;\n if (gfp.quant_comp < 0) gfp.quant_comp = 1;\n if (gfp.quant_comp_short < 0) gfp.quant_comp_short = 0;\n if (gfp.msfix < 0) gfp.msfix = 0;\n /* select psychoacoustic model */ gfp.exp_nspsytune = gfp.exp_nspsytune | 1;\n if (gfp.internal_flags.nsPsy.attackthre < 0) gfp.internal_flags.nsPsy.attackthre = $d2VP0.NSATTACKTHRE;\n if (gfp.internal_flags.nsPsy.attackthre_s < 0) gfp.internal_flags.nsPsy.attackthre_s = $d2VP0.NSATTACKTHRE_S;\n $ecb6e13812bdc08b$var$assert(gfp.scale >= 0);\n if (gfp.scale < 0) gfp.scale = 1;\n if (gfp.ATHtype < 0) gfp.ATHtype = 4;\n if (gfp.ATHcurve < 0) gfp.ATHcurve = 4;\n if (gfp.athaa_loudapprox < 0) gfp.athaa_loudapprox = 2;\n if (gfp.interChRatio < 0) gfp.interChRatio = 0;\n if (gfp.useTemporal == null) gfp.useTemporal = true;\n /* on by default */ /*\n * padding method as described in\n * \"MPEG-Layer3 / Bitstream Syntax and Decoding\" by Martin Sieler, Ralph\n * Sperschneider\n *\n * note: there is no padding for the very first frame\n *\n * Robert Hegemann 2000-06-22\n */ gfc.slot_lag = gfc.frac_SpF = 0;\n if (gfp.VBR == $ecb6e13812bdc08b$var$VbrMode.vbr_off) gfc.slot_lag = gfc.frac_SpF = (gfp.version + 1) * 72000 * gfp.brate % gfp.out_samplerate | 0;\n qupvt.iteration_init(gfp);\n psy.psymodel_init(gfp);\n $ecb6e13812bdc08b$var$assert(gfp.scale >= 0);\n return 0;\n };\n function update_inbuffer_size(gfc, nsamples) {\n if (gfc.in_buffer_0 == null || gfc.in_buffer_nsamples < nsamples) {\n gfc.in_buffer_0 = $ecb6e13812bdc08b$var$new_float(nsamples);\n gfc.in_buffer_1 = $ecb6e13812bdc08b$var$new_float(nsamples);\n gfc.in_buffer_nsamples = nsamples;\n }\n }\n this.lame_encode_flush = function(gfp, mp3buffer, mp3bufferPos, mp3buffer_size) {\n var gfc = gfp.internal_flags;\n var buffer = $ecb6e13812bdc08b$var$new_short_n([\n 2,\n 1152\n ]);\n var imp3 = 0, mp3count, mp3buffer_size_remaining;\n /*\n * we always add POSTDELAY=288 padding to make sure granule with real\n * data can be complety decoded (because of 50% overlap with next\n * granule\n */ var end_padding;\n var frames_left;\n var samples_to_encode = gfc.mf_samples_to_encode - $cPNKB.POSTDELAY;\n var mf_needed = calcNeeded(gfp);\n /* Was flush already called? */ if (gfc.mf_samples_to_encode < 1) return 0;\n mp3count = 0;\n if (gfp.in_samplerate != gfp.out_samplerate) /*\n * delay due to resampling; needs to be fixed, if resampling code\n * gets changed\n */ samples_to_encode += 16. * gfp.out_samplerate / gfp.in_samplerate;\n end_padding = gfp.framesize - samples_to_encode % gfp.framesize;\n if (end_padding < 576) end_padding += gfp.framesize;\n gfp.encoder_padding = end_padding;\n frames_left = (samples_to_encode + end_padding) / gfp.framesize;\n /*\n * send in a frame of 0 padding until all internal sample buffers are\n * flushed\n */ while(frames_left > 0 && imp3 >= 0){\n var bunch = mf_needed - gfc.mf_size;\n var frame_num = gfp.frameNum;\n bunch *= gfp.in_samplerate;\n bunch /= gfp.out_samplerate;\n if (bunch > 1152) bunch = 1152;\n if (bunch < 1) bunch = 1;\n mp3buffer_size_remaining = mp3buffer_size - mp3count;\n /* if user specifed buffer size = 0, dont check size */ if (mp3buffer_size == 0) mp3buffer_size_remaining = 0;\n imp3 = this.lame_encode_buffer(gfp, buffer[0], buffer[1], bunch, mp3buffer, mp3bufferPos, mp3buffer_size_remaining);\n mp3bufferPos += imp3;\n mp3count += imp3;\n frames_left -= frame_num != gfp.frameNum ? 1 : 0;\n }\n /*\n * Set gfc.mf_samples_to_encode to 0, so we may detect and break loops\n * calling it more than once in a row.\n */ gfc.mf_samples_to_encode = 0;\n if (imp3 < 0) /* some type of fatal error */ return imp3;\n mp3buffer_size_remaining = mp3buffer_size - mp3count;\n /* if user specifed buffer size = 0, dont check size */ if (mp3buffer_size == 0) mp3buffer_size_remaining = 0;\n /* mp3 related stuff. bit buffer might still contain some mp3 data */ bs.flush_bitstream(gfp);\n imp3 = bs.copy_buffer(gfc, mp3buffer, mp3bufferPos, mp3buffer_size_remaining, 1);\n if (imp3 < 0) /* some type of fatal error */ return imp3;\n mp3bufferPos += imp3;\n mp3count += imp3;\n mp3buffer_size_remaining = mp3buffer_size - mp3count;\n /* if user specifed buffer size = 0, dont check size */ if (mp3buffer_size == 0) mp3buffer_size_remaining = 0;\n if (gfp.write_id3tag_automatic) {\n /* write a id3 tag to the bitstream */ id3.id3tag_write_v1(gfp);\n imp3 = bs.copy_buffer(gfc, mp3buffer, mp3bufferPos, mp3buffer_size_remaining, 0);\n if (imp3 < 0) return imp3;\n mp3count += imp3;\n }\n return mp3count;\n };\n this.lame_encode_buffer = function(gfp, buffer_l, buffer_r, nsamples, mp3buf, mp3bufPos, mp3buf_size) {\n var gfc = gfp.internal_flags;\n var in_buffer = [\n null,\n null\n ];\n if (gfc.Class_ID != LAME_ID) return -3;\n if (nsamples == 0) return 0;\n update_inbuffer_size(gfc, nsamples);\n in_buffer[0] = gfc.in_buffer_0;\n in_buffer[1] = gfc.in_buffer_1;\n /* make a copy of input buffer, changing type to sample_t */ for(var i = 0; i < nsamples; i++){\n in_buffer[0][i] = buffer_l[i];\n if (gfc.channels_in > 1) in_buffer[1][i] = buffer_r[i];\n }\n return lame_encode_buffer_sample(gfp, in_buffer[0], in_buffer[1], nsamples, mp3buf, mp3bufPos, mp3buf_size);\n };\n function calcNeeded(gfp) {\n var mf_needed = $cPNKB.BLKSIZE + gfp.framesize - $cPNKB.FFTOFFSET;\n /*\n * amount needed for FFT\n */ mf_needed = Math.max(mf_needed, 512 + gfp.framesize - 32);\n $ecb6e13812bdc08b$var$assert($4SDnr.MFSIZE >= mf_needed);\n return mf_needed;\n }\n function lame_encode_buffer_sample(gfp, buffer_l, buffer_r, nsamples, mp3buf, mp3bufPos, mp3buf_size) {\n var gfc = gfp.internal_flags;\n var mp3size = 0, ret, i, ch, mf_needed;\n var mp3out;\n var mfbuf = [\n null,\n null\n ];\n var in_buffer = [\n null,\n null\n ];\n if (gfc.Class_ID != LAME_ID) return -3;\n if (nsamples == 0) return 0;\n /* copy out any tags that may have been written into bitstream */ mp3out = bs.copy_buffer(gfc, mp3buf, mp3bufPos, mp3buf_size, 0);\n if (mp3out < 0) return mp3out;\n /* not enough buffer space */ mp3bufPos += mp3out;\n mp3size += mp3out;\n in_buffer[0] = buffer_l;\n in_buffer[1] = buffer_r;\n /* Apply user defined re-scaling */ /* user selected scaling of the samples */ if ($ctaQC.NEQ(gfp.scale, 0) && $ctaQC.NEQ(gfp.scale, 1.0)) for(i = 0; i < nsamples; ++i){\n in_buffer[0][i] *= gfp.scale;\n if (gfc.channels_out == 2) in_buffer[1][i] *= gfp.scale;\n }\n /* user selected scaling of the channel 0 (left) samples */ if ($ctaQC.NEQ(gfp.scale_left, 0) && $ctaQC.NEQ(gfp.scale_left, 1.0)) for(i = 0; i < nsamples; ++i)in_buffer[0][i] *= gfp.scale_left;\n /* user selected scaling of the channel 1 (right) samples */ if ($ctaQC.NEQ(gfp.scale_right, 0) && $ctaQC.NEQ(gfp.scale_right, 1.0)) for(i = 0; i < nsamples; ++i)in_buffer[1][i] *= gfp.scale_right;\n /* Downsample to Mono if 2 channels in and 1 channel out */ if (gfp.num_channels == 2 && gfc.channels_out == 1) for(i = 0; i < nsamples; ++i){\n in_buffer[0][i] = 0.5 * (in_buffer[0][i] + in_buffer[1][i]);\n in_buffer[1][i] = 0.0;\n }\n mf_needed = calcNeeded(gfp);\n mfbuf[0] = gfc.mfbuf[0];\n mfbuf[1] = gfc.mfbuf[1];\n var in_bufferPos = 0;\n while(nsamples > 0){\n var in_buffer_ptr = [\n null,\n null\n ];\n var n_in = 0;\n /* number of input samples processed with fill_buffer */ var n_out = 0;\n /* number of samples output with fill_buffer */ /* n_in <> n_out if we are resampling */ in_buffer_ptr[0] = in_buffer[0];\n in_buffer_ptr[1] = in_buffer[1];\n /* copy in new samples into mfbuf, with resampling */ var inOut = new InOut();\n fill_buffer(gfp, mfbuf, in_buffer_ptr, in_bufferPos, nsamples, inOut);\n n_in = inOut.n_in;\n n_out = inOut.n_out;\n /* compute ReplayGain of resampled input if requested */ if (gfc.findReplayGain && !gfc.decode_on_the_fly) {\n if (ga.AnalyzeSamples(gfc.rgdata, mfbuf[0], gfc.mf_size, mfbuf[1], gfc.mf_size, n_out, gfc.channels_out) == GainAnalysis.GAIN_ANALYSIS_ERROR) return -6;\n }\n /* update in_buffer counters */ nsamples -= n_in;\n in_bufferPos += n_in;\n gfc.channels_out; // in_bufferPos += n_in;\n /* update mfbuf[] counters */ gfc.mf_size += n_out;\n $ecb6e13812bdc08b$var$assert(gfc.mf_size <= $4SDnr.MFSIZE);\n /*\n * lame_encode_flush may have set gfc.mf_sample_to_encode to 0 so we\n * have to reinitialize it here when that happened.\n */ if (gfc.mf_samples_to_encode < 1) gfc.mf_samples_to_encode = $cPNKB.ENCDELAY + $cPNKB.POSTDELAY;\n gfc.mf_samples_to_encode += n_out;\n if (gfc.mf_size >= mf_needed) {\n /* encode the frame. */ /* mp3buf = pointer to current location in buffer */ /* mp3buf_size = size of original mp3 output buffer */ /* = 0 if we should not worry about the */ /* buffer size because calling program is */ /* to lazy to compute it */ /* mp3size = size of data written to buffer so far */ /* mp3buf_size-mp3size = amount of space avalable */ var buf_size = mp3buf_size - mp3size;\n if (mp3buf_size == 0) buf_size = 0;\n ret = lame_encode_frame(gfp, mfbuf[0], mfbuf[1], mp3buf, mp3bufPos, buf_size);\n if (ret < 0) return ret;\n mp3bufPos += ret;\n mp3size += ret;\n /* shift out old samples */ gfc.mf_size -= gfp.framesize;\n gfc.mf_samples_to_encode -= gfp.framesize;\n for(ch = 0; ch < gfc.channels_out; ch++)for(i = 0; i < gfc.mf_size; i++)mfbuf[ch][i] = mfbuf[ch][i + gfp.framesize];\n }\n }\n $ecb6e13812bdc08b$var$assert(nsamples == 0);\n return mp3size;\n }\n function lame_encode_frame(gfp, inbuf_l, inbuf_r, mp3buf, mp3bufPos, mp3buf_size) {\n var ret = self.enc.lame_encode_mp3_frame(gfp, inbuf_l, inbuf_r, mp3buf, mp3bufPos, mp3buf_size);\n gfp.frameNum++;\n return ret;\n }\n function InOut() {\n this.n_in = 0;\n this.n_out = 0;\n }\n function NumUsed() {\n this.num_used = 0;\n }\n /**\n * Greatest common divisor.\n * <p>\n * Joint work of Euclid and M. Hendry\n */ function gcd(i, j) {\n return j != 0 ? gcd(j, i % j) : i;\n }\n /**\n * Resampling via FIR filter, blackman window.\n */ function blackman(x, fcn, l) {\n /*\n * This algorithm from: SIGNAL PROCESSING ALGORITHMS IN FORTRAN AND C\n * S.D. Stearns and R.A. David, Prentice-Hall, 1992\n */ var wcn = Math.PI * fcn;\n x /= l;\n if (x < 0) x = 0;\n if (x > 1) x = 1;\n var x2 = x - .5;\n var bkwn = 0.42 - 0.5 * Math.cos(2 * x * Math.PI) + 0.08 * Math.cos(4 * x * Math.PI);\n if (Math.abs(x2) < 1e-9) return wcn / Math.PI;\n else return bkwn * Math.sin(l * wcn * x2) / (Math.PI * l * x2);\n }\n function fill_buffer_resample(gfp, outbuf, outbufPos, desired_len, inbuf, in_bufferPos, len, num_used, ch) {\n var gfc = gfp.internal_flags;\n var i, j = 0, k;\n /* number of convolution functions to pre-compute */ var bpc = gfp.out_samplerate / gcd(gfp.out_samplerate, gfp.in_samplerate);\n if (bpc > $4SDnr.BPC) bpc = $4SDnr.BPC;\n var intratio = Math.abs(gfc.resample_ratio - Math.floor(.5 + gfc.resample_ratio)) < .0001 ? 1 : 0;\n var fcn = 1.00 / gfc.resample_ratio;\n if (fcn > 1.00) fcn = 1.00;\n var filter_l = 31;\n if (0 == filter_l % 2) --filter_l;\n /* must be odd */ filter_l += intratio;\n /* unless resample_ratio=int, it must be even */ var BLACKSIZE = filter_l + 1;\n /* size of data needed for FIR */ if (gfc.fill_buffer_resample_init == 0) {\n gfc.inbuf_old[0] = $ecb6e13812bdc08b$var$new_float(BLACKSIZE);\n gfc.inbuf_old[1] = $ecb6e13812bdc08b$var$new_float(BLACKSIZE);\n for(i = 0; i <= 2 * bpc; ++i)gfc.blackfilt[i] = $ecb6e13812bdc08b$var$new_float(BLACKSIZE);\n gfc.itime[0] = 0;\n gfc.itime[1] = 0;\n /* precompute blackman filter coefficients */ for(j = 0; j <= 2 * bpc; j++){\n var sum = 0.;\n var offset = (j - bpc) / (2. * bpc);\n for(i = 0; i <= filter_l; i++)sum += gfc.blackfilt[j][i] = blackman(i - offset, fcn, filter_l);\n for(i = 0; i <= filter_l; i++)gfc.blackfilt[j][i] /= sum;\n }\n gfc.fill_buffer_resample_init = 1;\n }\n var inbuf_old = gfc.inbuf_old[ch];\n /* time of j'th element in inbuf = itime + j/ifreq; */ /* time of k'th element in outbuf = j/ofreq */ for(k = 0; k < desired_len; k++){\n var time0;\n var joff;\n time0 = k * gfc.resample_ratio;\n /* time of k'th output sample */ j = 0 | Math.floor(time0 - gfc.itime[ch]);\n /* check if we need more input data */ if (filter_l + j - filter_l / 2 >= len) break;\n /* blackman filter. by default, window centered at j+.5(filter_l%2) */ /* but we want a window centered at time0. */ var offset = time0 - gfc.itime[ch] - (j + .5 * (filter_l % 2));\n $ecb6e13812bdc08b$var$assert(Math.abs(offset) <= .501);\n /* find the closest precomputed window for this offset: */ joff = 0 | Math.floor(offset * 2 * bpc + bpc + .5);\n var xvalue = 0.;\n for(i = 0; i <= filter_l; ++i){\n /* force integer index */ var j2 = 0 | i + j - filter_l / 2;\n var y;\n $ecb6e13812bdc08b$var$assert(j2 < len);\n $ecb6e13812bdc08b$var$assert(j2 + BLACKSIZE >= 0);\n y = j2 < 0 ? inbuf_old[BLACKSIZE + j2] : inbuf[in_bufferPos + j2];\n xvalue += y * gfc.blackfilt[joff][i];\n }\n outbuf[outbufPos + k] = xvalue;\n }\n /* k = number of samples added to outbuf */ /* last k sample used data from [j-filter_l/2,j+filter_l-filter_l/2] */ /* how many samples of input data were used: */ num_used.num_used = Math.min(len, filter_l + j - filter_l / 2);\n /*\n * adjust our input time counter. Incriment by the number of samples\n * used, then normalize so that next output sample is at time 0, next\n * input buffer is at time itime[ch]\n */ gfc.itime[ch] += num_used.num_used - k * gfc.resample_ratio;\n /* save the last BLACKSIZE samples into the inbuf_old buffer */ if (num_used.num_used >= BLACKSIZE) for(i = 0; i < BLACKSIZE; i++)inbuf_old[i] = inbuf[in_bufferPos + num_used.num_used + i - BLACKSIZE];\n else {\n /* shift in num_used.num_used samples into inbuf_old */ var n_shift = BLACKSIZE - num_used.num_used;\n /*\n * number of samples to\n * shift\n */ /*\n * shift n_shift samples by num_used.num_used, to make room for the\n * num_used new samples\n */ for(i = 0; i < n_shift; ++i)inbuf_old[i] = inbuf_old[i + num_used.num_used];\n /* shift in the num_used.num_used samples */ for(j = 0; i < BLACKSIZE; ++i, ++j)inbuf_old[i] = inbuf[in_bufferPos + j];\n $ecb6e13812bdc08b$var$assert(j == num_used.num_used);\n }\n return k;\n /* return the number samples created at the new samplerate */ }\n function fill_buffer(gfp, mfbuf, in_buffer, in_bufferPos, nsamples, io) {\n var gfc = gfp.internal_flags;\n /* copy in new samples into mfbuf, with resampling if necessary */ if (gfc.resample_ratio < .9999 || gfc.resample_ratio > 1.0001) for(var ch = 0; ch < gfc.channels_out; ch++){\n var numUsed = new NumUsed();\n io.n_out = fill_buffer_resample(gfp, mfbuf[ch], gfc.mf_size, gfp.framesize, in_buffer[ch], in_bufferPos, nsamples, numUsed, ch);\n io.n_in = numUsed.num_used;\n }\n else {\n io.n_out = Math.min(gfp.framesize, nsamples);\n io.n_in = io.n_out;\n for(var i = 0; i < io.n_out; ++i){\n mfbuf[0][gfc.mf_size + i] = in_buffer[0][in_bufferPos + i];\n if (gfc.channels_out == 2) mfbuf[1][gfc.mf_size + i] = in_buffer[1][in_bufferPos + i];\n }\n }\n }\n}\nmodule.exports = $ecb6e13812bdc08b$var$Lame;\n\n});\nparcelRequire.register(\"3YDN3\", function(module, exports) {\nfunction $2e55d7364d01815c$var$new_byte(count) {\n return new Int8Array(count);\n}\nfunction $2e55d7364d01815c$var$new_short(count) {\n return new Int16Array(count);\n}\nfunction $2e55d7364d01815c$var$new_int(count) {\n return new Int32Array(count);\n}\nfunction $2e55d7364d01815c$var$new_float(count) {\n return new Float32Array(count);\n}\nfunction $2e55d7364d01815c$var$new_double(count) {\n return new Float64Array(count);\n}\nfunction $2e55d7364d01815c$var$new_float_n(args) {\n if (args.length == 1) return $2e55d7364d01815c$var$new_float(args[0]);\n var sz = args[0];\n args = args.slice(1);\n var A = [];\n for(var i = 0; i < sz; i++)A.push($2e55d7364d01815c$var$new_float_n(args));\n return A;\n}\nfunction $2e55d7364d01815c$var$new_int_n(args) {\n if (args.length == 1) return $2e55d7364d01815c$var$new_int(args[0]);\n var sz = args[0];\n args = args.slice(1);\n var A = [];\n for(var i = 0; i < sz; i++)A.push($2e55d7364d01815c$var$new_int_n(args));\n return A;\n}\nfunction $2e55d7364d01815c$var$new_short_n(args) {\n if (args.length == 1) return $2e55d7364d01815c$var$new_short(args[0]);\n var sz = args[0];\n args = args.slice(1);\n var A = [];\n for(var i = 0; i < sz; i++)A.push($2e55d7364d01815c$var$new_short_n(args));\n return A;\n}\nfunction $2e55d7364d01815c$var$new_array_n(args) {\n if (args.length == 1) return new Array(args[0]);\n var sz = args[0];\n args = args.slice(1);\n var A = [];\n for(var i = 0; i < sz; i++)A.push($2e55d7364d01815c$var$new_array_n(args));\n return A;\n}\nvar $2e55d7364d01815c$var$Arrays = {};\n$2e55d7364d01815c$var$Arrays.fill = function(a, fromIndex, toIndex, val) {\n if (arguments.length == 2) for(var i = 0; i < a.length; i++)a[i] = arguments[1];\n else for(var i = fromIndex; i < toIndex; i++)a[i] = val;\n};\nvar $2e55d7364d01815c$var$System = {};\n$2e55d7364d01815c$var$System.arraycopy = function(src, srcPos, dest, destPos, length) {\n var srcEnd = srcPos + length;\n while(srcPos < srcEnd)dest[destPos++] = src[srcPos++];\n};\n$2e55d7364d01815c$var$System.out = {};\n$2e55d7364d01815c$var$System.out.println = function(message) {\n console.log(message);\n};\n$2e55d7364d01815c$var$System.out.printf = function() {\n console.log.apply(console, arguments);\n};\nvar $2e55d7364d01815c$var$Util = {};\n$2e55d7364d01815c$var$Util.SQRT2 = 1.41421356237309504880;\n$2e55d7364d01815c$var$Util.FAST_LOG10 = function(x) {\n return Math.log10(x);\n};\n$2e55d7364d01815c$var$Util.FAST_LOG10_X = function(x, y) {\n return Math.log10(x) * y;\n};\nfunction $2e55d7364d01815c$var$ShortBlock(ordinal) {\n this.ordinal = ordinal;\n}\n/**\n * LAME may use them, even different block types for L/R.\n */ $2e55d7364d01815c$var$ShortBlock.short_block_allowed = new $2e55d7364d01815c$var$ShortBlock(0);\n/**\n * LAME may use them, but always same block types in L/R.\n */ $2e55d7364d01815c$var$ShortBlock.short_block_coupled = new $2e55d7364d01815c$var$ShortBlock(1);\n/**\n * LAME will not use short blocks, long blocks only.\n */ $2e55d7364d01815c$var$ShortBlock.short_block_dispensed = new $2e55d7364d01815c$var$ShortBlock(2);\n/**\n * LAME will not use long blocks, short blocks only.\n */ $2e55d7364d01815c$var$ShortBlock.short_block_forced = new $2e55d7364d01815c$var$ShortBlock(3);\nvar $2e55d7364d01815c$var$Float = {};\n$2e55d7364d01815c$var$Float.MAX_VALUE = 3.4028235e+38;\nfunction $2e55d7364d01815c$var$VbrMode(ordinal) {\n this.ordinal = ordinal;\n}\n$2e55d7364d01815c$var$VbrMode.vbr_off = new $2e55d7364d01815c$var$VbrMode(0);\n$2e55d7364d01815c$var$VbrMode.vbr_mt = new $2e55d7364d01815c$var$VbrMode(1);\n$2e55d7364d01815c$var$VbrMode.vbr_rh = new $2e55d7364d01815c$var$VbrMode(2);\n$2e55d7364d01815c$var$VbrMode.vbr_abr = new $2e55d7364d01815c$var$VbrMode(3);\n$2e55d7364d01815c$var$VbrMode.vbr_mtrh = new $2e55d7364d01815c$var$VbrMode(4);\n$2e55d7364d01815c$var$VbrMode.vbr_default = $2e55d7364d01815c$var$VbrMode.vbr_mtrh;\nvar $2e55d7364d01815c$var$assert = function(x) {\n//console.assert(x);\n};\nmodule.exports = {\n \"System\": $2e55d7364d01815c$var$System,\n \"VbrMode\": $2e55d7364d01815c$var$VbrMode,\n \"Float\": $2e55d7364d01815c$var$Float,\n \"ShortBlock\": $2e55d7364d01815c$var$ShortBlock,\n \"Util\": $2e55d7364d01815c$var$Util,\n \"Arrays\": $2e55d7364d01815c$var$Arrays,\n \"new_array_n\": $2e55d7364d01815c$var$new_array_n,\n \"new_byte\": $2e55d7364d01815c$var$new_byte,\n \"new_double\": $2e55d7364d01815c$var$new_double,\n \"new_float\": $2e55d7364d01815c$var$new_float,\n \"new_float_n\": $2e55d7364d01815c$var$new_float_n,\n \"new_int\": $2e55d7364d01815c$var$new_int,\n \"new_int_n\": $2e55d7364d01815c$var$new_int_n,\n \"new_short\": $2e55d7364d01815c$var$new_short,\n \"new_short_n\": $2e55d7364d01815c$var$new_short_n,\n \"assert\": $2e55d7364d01815c$var$assert\n};\n\n});\n\nparcelRequire.register(\"d2VP0\", function(module, exports) {\n/*\n * psymodel.c\n *\n * Copyright (c) 1999-2000 Mark Taylor\n * Copyright (c) 2001-2002 Naoki Shibata\n * Copyright (c) 2000-2003 Takehiro Tominaga\n * Copyright (c) 2000-2008 Robert Hegemann\n * Copyright (c) 2000-2005 Gabriel Bouvigne\n * Copyright (c) 2000-2005 Alexander Leidinger\n *\n * This library is free software; you can redistribute it and/or\n * modify it under the terms of the GNU Lesser General Public\n * License as published by the Free Software Foundation; either\n * version 2 of the License, or (at your option) any later version.\n *\n * This library is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Library General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this library; if not, write to the\n * Free Software Foundation, Inc., 59 Temple Place - Suite 330,\n * Boston, MA 02111-1307, USA.\n */ /* $Id: PsyModel.java,v 1.27 2011/05/24 20:48:06 kenchis Exp $ */ /*\n PSYCHO ACOUSTICS\n\n\n This routine computes the psycho acoustics, delayed by one granule.\n\n Input: buffer of PCM data (1024 samples).\n\n This window should be centered over the 576 sample granule window.\n The routine will compute the psycho acoustics for\n this granule, but return the psycho acoustics computed\n for the *previous* granule. This is because the block\n type of the previous granule can only be determined\n after we have computed the psycho acoustics for the following\n granule.\n\n Output: maskings and energies for each scalefactor band.\n block type, PE, and some correlation measures.\n The PE is used by CBR modes to determine if extra bits\n from the bit reservoir should be used. The correlation\n measures are used to determine mid/side or regular stereo.\n */ /*\n Notation:\n\n barks: a non-linear frequency scale. Mapping from frequency to\n barks is given by freq2bark()\n\n scalefactor bands: The spectrum (frequencies) are broken into\n SBMAX \"scalefactor bands\". Thes bands\n are determined by the MPEG ISO spec. In\n the noise shaping/quantization code, we allocate\n bits among the partition bands to achieve the\n best possible quality\n\n partition bands: The spectrum is also broken into about\n 64 \"partition bands\". Each partition\n band is about .34 barks wide. There are about 2-5\n partition bands for each scalefactor band.\n\n LAME computes all psycho acoustic information for each partition\n band. Then at the end of the computations, this information\n is mapped to scalefactor bands. The energy in each scalefactor\n band is taken as the sum of the energy in all partition bands\n which overlap the scalefactor band. The maskings can be computed\n in the same way (and thus represent the average masking in that band)\n or by taking the minmum value multiplied by the number of\n partition bands used (which represents a minimum masking in that band).\n */ /*\n The general outline is as follows:\n\n 1. compute the energy in each partition band\n 2. compute the tonality in each partition band\n 3. compute the strength of each partion band \"masker\"\n 4. compute the masking (via the spreading function applied to each masker)\n 5. Modifications for mid/side masking.\n\n Each partition band is considiered a \"masker\". The strength\n of the i'th masker in band j is given by:\n\n s3(bark(i)-bark(j))*strength(i)\n\n The strength of the masker is a function of the energy and tonality.\n The more tonal, the less masking. LAME uses a simple linear formula\n (controlled by NMT and TMN) which says the strength is given by the\n energy divided by a linear function of the tonality.\n */ /*\n s3() is the \"spreading function\". It is given by a formula\n determined via listening tests.\n\n The total masking in the j'th partition band is the sum over\n all maskings i. It is thus given by the convolution of\n the strength with s3(), the \"spreading function.\"\n\n masking(j) = sum_over_i s3(i-j)*strength(i) = s3 o strength\n\n where \"o\" = convolution operator. s3 is given by a formula determined\n via listening tests. It is normalized so that s3 o 1 = 1.\n\n Note: instead of a simple convolution, LAME also has the\n option of using \"additive masking\"\n\n The most critical part is step 2, computing the tonality of each\n partition band. LAME has two tonality estimators. The first\n is based on the ISO spec, and measures how predictiable the\n signal is over time. The more predictable, the more tonal.\n The second measure is based on looking at the spectrum of\n a single granule. The more peaky the spectrum, the more\n tonal. By most indications, the latter approach is better.\n\n Finally, in step 5, the maskings for the mid and side\n channel are possibly increased. Under certain circumstances,\n noise in the mid & side channels is assumed to also\n be masked by strong maskers in the L or R channels.\n\n\n Other data computed by the psy-model:\n\n ms_ratio side-channel / mid-channel masking ratio (for previous granule)\n ms_ratio_next side-channel / mid-channel masking ratio for this granule\n\n percep_entropy[2] L and R values (prev granule) of PE - A measure of how\n much pre-echo is in the previous granule\n percep_entropy_MS[2] mid and side channel values (prev granule) of percep_entropy\n energy[4] L,R,M,S energy in each channel, prev granule\n blocktype_d[2] block type to use for previous granule\n */ //package mp3;\n//import java.util.Arrays;\n\nvar $3YDN3 = parcelRequire(\"3YDN3\");\nvar $97f850779472263e$var$System = $3YDN3.System;\nvar $97f850779472263e$var$VbrMode = $3YDN3.VbrMode;\nvar $97f850779472263e$var$Float = $3YDN3.Float;\nvar $97f850779472263e$var$ShortBlock = $3YDN3.ShortBlock;\nvar $97f850779472263e$var$Util = $3YDN3.Util;\nvar $97f850779472263e$var$Arrays = $3YDN3.Arrays;\nvar $97f850779472263e$var$new_array_n = $3YDN3.new_array_n;\nvar $97f850779472263e$var$new_byte = $3YDN3.new_byte;\nvar $97f850779472263e$var$new_double = $3YDN3.new_double;\nvar $97f850779472263e$var$new_float = $3YDN3.new_float;\nvar $97f850779472263e$var$new_float_n = $3YDN3.new_float_n;\nvar $97f850779472263e$var$new_int = $3YDN3.new_int;\nvar $97f850779472263e$var$new_int_n = $3YDN3.new_int_n;\nvar $97f850779472263e$var$assert = $3YDN3.assert;\n\nvar $2g11P = parcelRequire(\"2g11P\");\n\nvar $cPNKB = parcelRequire(\"cPNKB\");\n\nfunction $97f850779472263e$var$PsyModel() {\n var MPEGMode = (parcelRequire(\"jL6I1\"));\n var fft = new $2g11P();\n var LOG10 = 2.30258509299404568402;\n var rpelev = 2;\n var rpelev2 = 16;\n var rpelev_s = 2;\n var rpelev2_s = 16;\n /* size of each partition band, in barks: */ var DELBARK = .34;\n /* tuned for output level (sensitive to energy scale) */ var VO_SCALE = 1. / 217621504 / ($cPNKB.BLKSIZE / 2);\n var temporalmask_sustain_sec = 0.01;\n var NS_PREECHO_ATT0 = 0.8;\n var NS_PREECHO_ATT1 = 0.6;\n var NS_PREECHO_ATT2 = 0.3;\n var NS_MSFIX = 3.5;\n var NSATTACKTHRE = 4.4;\n var NSATTACKTHRE_S = 25;\n var NSFIRLEN = 21;\n /* size of each partition band, in barks: */ var LN_TO_LOG10 = 0.2302585093;\n function NON_LINEAR_SCALE_ENERGY(x) {\n return x;\n }\n /**\n * <PRE>\n * L3psycho_anal. Compute psycho acoustics.\n *\n * Data returned to the calling program must be delayed by one\n * granule.\n *\n * This is done in two places.\n * If we do not need to know the blocktype, the copying\n * can be done here at the top of the program: we copy the data for\n * the last granule (computed during the last call) before it is\n * overwritten with the new data. It looks like this:\n *\n * 0. static psymodel_data\n * 1. calling_program_data = psymodel_data\n * 2. compute psymodel_data\n *\n * For data which needs to know the blocktype, the copying must be\n * done at the end of this loop, and the old values must be saved:\n *\n * 0. static psymodel_data_old\n * 1. compute psymodel_data\n * 2. compute possible block type of this granule\n * 3. compute final block type of previous granule based on #2.\n * 4. calling_program_data = psymodel_data_old\n * 5. psymodel_data_old = psymodel_data\n * psycho_loudness_approx\n * jd - 2001 mar 12\n * in: energy - BLKSIZE/2 elements of frequency magnitudes ^ 2\n * gfp - uses out_samplerate, ATHtype (also needed for ATHformula)\n * returns: loudness^2 approximation, a positive value roughly tuned for a value\n * of 1.0 for signals near clipping.\n * notes: When calibrated, feeding this function binary white noise at sample\n * values +32767 or -32768 should return values that approach 3.\n * ATHformula is used to approximate an equal loudness curve.\n * future: Data indicates that the shape of the equal loudness curve varies\n * with intensity. This function might be improved by using an equal\n * loudness curve shaped for typical playback levels (instead of the\n * ATH, that is shaped for the threshold). A flexible realization might\n * simply bend the existing ATH curve to achieve the desired shape.\n * However, the potential gain may not be enough to justify an effort.\n * </PRE>\n */ function psycho_loudness_approx(energy, gfc) {\n var loudness_power = 0.0;\n /* apply weights to power in freq. bands */ for(var i = 0; i < $cPNKB.BLKSIZE / 2; ++i)loudness_power += energy[i] * gfc.ATH.eql_w[i];\n loudness_power *= VO_SCALE;\n return loudness_power;\n }\n function compute_ffts(gfp, fftenergy, fftenergy_s, wsamp_l, wsamp_lPos, wsamp_s, wsamp_sPos, gr_out, chn, buffer, bufPos) {\n var gfc = gfp.internal_flags;\n if (chn < 2) {\n fft.fft_long(gfc, wsamp_l[wsamp_lPos], chn, buffer, bufPos);\n fft.fft_short(gfc, wsamp_s[wsamp_sPos], chn, buffer, bufPos);\n } else if (chn == 2) {\n for(var j = $cPNKB.BLKSIZE - 1; j >= 0; --j){\n var l = wsamp_l[wsamp_lPos + 0][j];\n var r = wsamp_l[wsamp_lPos + 1][j];\n wsamp_l[wsamp_lPos + 0][j] = (l + r) * $97f850779472263e$var$Util.SQRT2 * 0.5;\n wsamp_l[wsamp_lPos + 1][j] = (l - r) * $97f850779472263e$var$Util.SQRT2 * 0.5;\n }\n for(var b = 2; b >= 0; --b)for(var j = $cPNKB.BLKSIZE_s - 1; j >= 0; --j){\n var l = wsamp_s[wsamp_sPos + 0][b][j];\n var r = wsamp_s[wsamp_sPos + 1][b][j];\n wsamp_s[wsamp_sPos + 0][b][j] = (l + r) * $97f850779472263e$var$Util.SQRT2 * 0.5;\n wsamp_s[wsamp_sPos + 1][b][j] = (l - r) * $97f850779472263e$var$Util.SQRT2 * 0.5;\n }\n }\n /*********************************************************************\n * compute energies\n *********************************************************************/ fftenergy[0] = NON_LINEAR_SCALE_ENERGY(wsamp_l[wsamp_lPos + 0][0]);\n fftenergy[0] *= fftenergy[0];\n for(var j = $cPNKB.BLKSIZE / 2 - 1; j >= 0; --j){\n var re = wsamp_l[wsamp_lPos + 0][$cPNKB.BLKSIZE / 2 - j];\n var im = wsamp_l[wsamp_lPos + 0][$cPNKB.BLKSIZE / 2 + j];\n fftenergy[$cPNKB.BLKSIZE / 2 - j] = NON_LINEAR_SCALE_ENERGY((re * re + im * im) * 0.5);\n }\n for(var b = 2; b >= 0; --b){\n fftenergy_s[b][0] = wsamp_s[wsamp_sPos + 0][b][0];\n fftenergy_s[b][0] *= fftenergy_s[b][0];\n for(var j = $cPNKB.BLKSIZE_s / 2 - 1; j >= 0; --j){\n var re = wsamp_s[wsamp_sPos + 0][b][$cPNKB.BLKSIZE_s / 2 - j];\n var im = wsamp_s[wsamp_sPos + 0][b][$cPNKB.BLKSIZE_s / 2 + j];\n fftenergy_s[b][$cPNKB.BLKSIZE_s / 2 - j] = NON_LINEAR_SCALE_ENERGY((re * re + im * im) * 0.5);\n }\n }\n var totalenergy = 0.0;\n for(var j = 11; j < $cPNKB.HBLKSIZE; j++)totalenergy += fftenergy[j];\n gfc.tot_ener[chn] = totalenergy;\n if (gfp.analysis) {\n for(var j = 0; j < $cPNKB.HBLKSIZE; j++){\n gfc.pinfo.energy[gr_out][chn][j] = gfc.pinfo.energy_save[chn][j];\n gfc.pinfo.energy_save[chn][j] = fftenergy[j];\n }\n gfc.pinfo.pe[gr_out][chn] = gfc.pe[chn];\n }\n /*********************************************************************\n * compute loudness approximation (used for ATH auto-level adjustment)\n *********************************************************************/ if (gfp.athaa_loudapprox == 2 && chn < 2) {\n // no loudness for mid/side ch\n gfc.loudness_sq[gr_out][chn] = gfc.loudness_sq_save[chn];\n gfc.loudness_sq_save[chn] = psycho_loudness_approx(fftenergy, gfc);\n }\n }\n /* mask_add optimization */ /* init the limit values used to avoid computing log in mask_add when it is not necessary */ /**\n * <PRE>\n * For example, with i = 10*log10(m2/m1)/10*16 (= log10(m2/m1)*16)\n *\n * abs(i)>8 is equivalent (as i is an integer) to\n * abs(i)>=9\n * i>=9 || i<=-9\n * equivalent to (as i is the biggest integer smaller than log10(m2/m1)*16\n * or the smallest integer bigger than log10(m2/m1)*16 depending on the sign of log10(m2/m1)*16)\n * log10(m2/m1)>=9/16 || log10(m2/m1)<=-9/16\n * exp10 is strictly increasing thus this is equivalent to\n * m2/m1 >= 10^(9/16) || m2/m1<=10^(-9/16) which are comparisons to constants\n * </PRE>\n */ /**\n * as in if(i>8)\n */ var I1LIMIT = 8;\n /**\n * as in if(i>24) . changed 23\n */ var I2LIMIT = 23;\n /**\n * as in if(m<15)\n */ var MLIMIT = 15;\n var ma_max_i1;\n var ma_max_i2;\n var ma_max_m;\n /**\n * This is the masking table:<BR>\n * According to tonality, values are going from 0dB (TMN) to 9.3dB (NMT).<BR>\n * After additive masking computation, 8dB are added, so final values are\n * going from 8dB to 17.3dB\n *\n * pow(10, -0.0..-0.6)\n */ var tab = [\n 1.0,\n 0.79433,\n 0.63096,\n 0.63096,\n 0.63096,\n 0.63096,\n 0.63096,\n 0.25119,\n 0.11749\n ];\n function init_mask_add_max_values() {\n ma_max_i1 = Math.pow(10, (I1LIMIT + 1) / 16.0);\n ma_max_i2 = Math.pow(10, (I2LIMIT + 1) / 16.0);\n ma_max_m = Math.pow(10, MLIMIT / 10.0);\n }\n var table1 = [\n 3.3246 * 3.3246,\n 3.23837 * 3.23837,\n 9.9500500969,\n 9.0247369744,\n 8.1854926609,\n 7.0440875649,\n 2.46209 * 2.46209,\n 2.284 * 2.284,\n 4.4892710641,\n 1.96552 * 1.96552,\n 1.82335 * 1.82335,\n 1.69146 * 1.69146,\n 2.4621061921,\n 2.1508568964,\n 1.37074 * 1.37074,\n 1.31036 * 1.31036,\n 1.5691069696,\n 1.4555939904,\n 1.16203 * 1.16203,\n 1.2715945225,\n 1.09428 * 1.09428,\n 1.0659 * 1.0659,\n 1.0779838276,\n 1.0382591025,\n 1\n ];\n var table2 = [\n 1.7782755904,\n 1.35879 * 1.35879,\n 1.38454 * 1.38454,\n 1.39497 * 1.39497,\n 1.40548 * 1.40548,\n 1.3537 * 1.3537,\n 1.6999465924,\n 1.22321 * 1.22321,\n 1.3169398564,\n 1\n ];\n var table3 = [\n 5.5396212496,\n 2.29259 * 2.29259,\n 4.9868695969,\n 2.12675 * 2.12675,\n 2.02545 * 2.02545,\n 1.87894 * 1.87894,\n 1.74303 * 1.74303,\n 1.61695 * 1.61695,\n 2.2499700001,\n 1.39148 * 1.39148,\n 1.29083 * 1.29083,\n 1.19746 * 1.19746,\n 1.2339655056,\n 1.0779838276\n ];\n /**\n * addition of simultaneous masking Naoki Shibata 2000/7\n */ function mask_add(m1, m2, kk, b, gfc, shortblock) {\n var ratio;\n if (m2 > m1) {\n if (m2 < m1 * ma_max_i2) ratio = m2 / m1;\n else return m1 + m2;\n } else {\n if (m1 >= m2 * ma_max_i2) return m1 + m2;\n ratio = m1 / m2;\n }\n /* Should always be true, just checking */ $97f850779472263e$var$assert(m1 >= 0);\n $97f850779472263e$var$assert(m2 >= 0);\n m1 += m2;\n //if (((long)(b + 3) & 0xffffffff) <= 3 + 3) {\n if (b + 3 <= 6) {\n /* approximately, 1 bark = 3 partitions */ /* 65% of the cases */ /* originally 'if(i > 8)' */ if (ratio >= ma_max_i1) /* 43% of the total */ return m1;\n /* 22% of the total */ var i = 0 | $97f850779472263e$var$Util.FAST_LOG10_X(ratio, 16.0);\n return m1 * table2[i];\n }\n /**\n * <PRE>\n * m<15 equ log10((m1+m2)/gfc.ATH.cb[k])<1.5\n * equ (m1+m2)/gfc.ATH.cb[k]<10^1.5\n * equ (m1+m2)<10^1.5 * gfc.ATH.cb[k]\n * </PRE>\n */ var i = 0 | $97f850779472263e$var$Util.FAST_LOG10_X(ratio, 16.0);\n if (shortblock != 0) m2 = gfc.ATH.cb_s[kk] * gfc.ATH.adjust;\n else m2 = gfc.ATH.cb_l[kk] * gfc.ATH.adjust;\n $97f850779472263e$var$assert(m2 >= 0);\n if (m1 < ma_max_m * m2) {\n /* 3% of the total */ /* Originally if (m > 0) { */ if (m1 > m2) {\n var f, r;\n f = 1.0;\n if (i <= 13) f = table3[i];\n r = $97f850779472263e$var$Util.FAST_LOG10_X(m1 / m2, 10.0 / 15.0);\n return m1 * ((table1[i] - f) * r + f);\n }\n if (i > 13) return m1;\n return m1 * table3[i];\n }\n /* 10% of total */ return m1 * table1[i];\n }\n var table2_ = [\n 1.7782755904,\n 1.35879 * 1.35879,\n 1.38454 * 1.38454,\n 1.39497 * 1.39497,\n 1.40548 * 1.40548,\n 1.3537 * 1.3537,\n 1.6999465924,\n 1.22321 * 1.22321,\n 1.3169398564,\n 1\n ];\n /**\n * addition of simultaneous masking Naoki Shibata 2000/7\n */ function vbrpsy_mask_add(m1, m2, b) {\n var ratio;\n if (m1 < 0) m1 = 0;\n if (m2 < 0) m2 = 0;\n if (m1 <= 0) return m2;\n if (m2 <= 0) return m1;\n if (m2 > m1) ratio = m2 / m1;\n else ratio = m1 / m2;\n if (-2 <= b && b <= 2) {\n /* approximately, 1 bark = 3 partitions */ /* originally 'if(i > 8)' */ if (ratio >= ma_max_i1) return m1 + m2;\n else {\n var i = 0 | $97f850779472263e$var$Util.FAST_LOG10_X(ratio, 16.0);\n return (m1 + m2) * table2_[i];\n }\n }\n if (ratio < ma_max_i2) return m1 + m2;\n if (m1 < m2) m1 = m2;\n return m1;\n }\n /**\n * compute interchannel masking effects\n */ function calc_interchannel_masking(gfp, ratio) {\n var gfc = gfp.internal_flags;\n if (gfc.channels_out > 1) {\n for(var sb = 0; sb < $cPNKB.SBMAX_l; sb++){\n var l = gfc.thm[0].l[sb];\n var r = gfc.thm[1].l[sb];\n gfc.thm[0].l[sb] += r * ratio;\n gfc.thm[1].l[sb] += l * ratio;\n }\n for(var sb = 0; sb < $cPNKB.SBMAX_s; sb++)for(var sblock = 0; sblock < 3; sblock++){\n var l = gfc.thm[0].s[sb][sblock];\n var r = gfc.thm[1].s[sb][sblock];\n gfc.thm[0].s[sb][sblock] += r * ratio;\n gfc.thm[1].s[sb][sblock] += l * ratio;\n }\n }\n }\n /**\n * compute M/S thresholds from Johnston & Ferreira 1992 ICASSP paper\n */ function msfix1(gfc) {\n for(var sb = 0; sb < $cPNKB.SBMAX_l; sb++){\n /* use this fix if L & R masking differs by 2db or less */ /* if db = 10*log10(x2/x1) < 2 */ /* if (x2 < 1.58*x1) { */ if (gfc.thm[0].l[sb] > 1.58 * gfc.thm[1].l[sb] || gfc.thm[1].l[sb] > 1.58 * gfc.thm[0].l[sb]) continue;\n var mld = gfc.mld_l[sb] * gfc.en[3].l[sb];\n var rmid = Math.max(gfc.thm[2].l[sb], Math.min(gfc.thm[3].l[sb], mld));\n mld = gfc.mld_l[sb] * gfc.en[2].l[sb];\n var rside = Math.max(gfc.thm[3].l[sb], Math.min(gfc.thm[2].l[sb], mld));\n gfc.thm[2].l[sb] = rmid;\n gfc.thm[3].l[sb] = rside;\n }\n for(var sb = 0; sb < $cPNKB.SBMAX_s; sb++)for(var sblock = 0; sblock < 3; sblock++){\n if (gfc.thm[0].s[sb][sblock] > 1.58 * gfc.thm[1].s[sb][sblock] || gfc.thm[1].s[sb][sblock] > 1.58 * gfc.thm[0].s[sb][sblock]) continue;\n var mld = gfc.mld_s[sb] * gfc.en[3].s[sb][sblock];\n var rmid = Math.max(gfc.thm[2].s[sb][sblock], Math.min(gfc.thm[3].s[sb][sblock], mld));\n mld = gfc.mld_s[sb] * gfc.en[2].s[sb][sblock];\n var rside = Math.max(gfc.thm[3].s[sb][sblock], Math.min(gfc.thm[2].s[sb][sblock], mld));\n gfc.thm[2].s[sb][sblock] = rmid;\n gfc.thm[3].s[sb][sblock] = rside;\n }\n }\n /**\n * Adjust M/S maskings if user set \"msfix\"\n *\n * Naoki Shibata 2000\n */ function ns_msfix(gfc, msfix, athadjust) {\n var msfix2 = msfix;\n var athlower = Math.pow(10, athadjust);\n msfix *= 2.0;\n msfix2 *= 2.0;\n for(var sb = 0; sb < $cPNKB.SBMAX_l; sb++){\n var thmLR, thmM, thmS, ath;\n ath = gfc.ATH.cb_l[gfc.bm_l[sb]] * athlower;\n thmLR = Math.min(Math.max(gfc.thm[0].l[sb], ath), Math.max(gfc.thm[1].l[sb], ath));\n thmM = Math.max(gfc.thm[2].l[sb], ath);\n thmS = Math.max(gfc.thm[3].l[sb], ath);\n if (thmLR * msfix < thmM + thmS) {\n var f = thmLR * msfix2 / (thmM + thmS);\n thmM *= f;\n thmS *= f;\n $97f850779472263e$var$assert(thmM + thmS > 0);\n }\n gfc.thm[2].l[sb] = Math.min(thmM, gfc.thm[2].l[sb]);\n gfc.thm[3].l[sb] = Math.min(thmS, gfc.thm[3].l[sb]);\n }\n athlower *= $cPNKB.BLKSIZE_s / $cPNKB.BLKSIZE;\n for(var sb = 0; sb < $cPNKB.SBMAX_s; sb++)for(var sblock = 0; sblock < 3; sblock++){\n var thmLR, thmM, thmS, ath;\n ath = gfc.ATH.cb_s[gfc.bm_s[sb]] * athlower;\n thmLR = Math.min(Math.max(gfc.thm[0].s[sb][sblock], ath), Math.max(gfc.thm[1].s[sb][sblock], ath));\n thmM = Math.max(gfc.thm[2].s[sb][sblock], ath);\n thmS = Math.max(gfc.thm[3].s[sb][sblock], ath);\n if (thmLR * msfix < thmM + thmS) {\n var f = thmLR * msfix / (thmM + thmS);\n thmM *= f;\n thmS *= f;\n $97f850779472263e$var$assert(thmM + thmS > 0);\n }\n gfc.thm[2].s[sb][sblock] = Math.min(gfc.thm[2].s[sb][sblock], thmM);\n gfc.thm[3].s[sb][sblock] = Math.min(gfc.thm[3].s[sb][sblock], thmS);\n }\n }\n /**\n * short block threshold calculation (part 2)\n *\n * partition band bo_s[sfb] is at the transition from scalefactor band sfb\n * to the next one sfb+1; enn and thmm have to be split between them\n */ function convert_partition2scalefac_s(gfc, eb, thr, chn, sblock) {\n var sb, b;\n var enn = 0.0;\n var thmm = 0.0;\n for(sb = b = 0; sb < $cPNKB.SBMAX_s; ++b, ++sb){\n var bo_s_sb = gfc.bo_s[sb];\n var npart_s = gfc.npart_s;\n var b_lim = bo_s_sb < npart_s ? bo_s_sb : npart_s;\n while(b < b_lim){\n $97f850779472263e$var$assert(eb[b] >= 0);\n // iff failed, it may indicate some index error elsewhere\n $97f850779472263e$var$assert(thr[b] >= 0);\n enn += eb[b];\n thmm += thr[b];\n b++;\n }\n gfc.en[chn].s[sb][sblock] = enn;\n gfc.thm[chn].s[sb][sblock] = thmm;\n if (b >= npart_s) {\n ++sb;\n break;\n }\n $97f850779472263e$var$assert(eb[b] >= 0);\n // iff failed, it may indicate some index error elsewhere\n $97f850779472263e$var$assert(thr[b] >= 0);\n /* at transition sfb . sfb+1 */ var w_curr = gfc.PSY.bo_s_weight[sb];\n var w_next = 1.0 - w_curr;\n enn = w_curr * eb[b];\n thmm = w_curr * thr[b];\n gfc.en[chn].s[sb][sblock] += enn;\n gfc.thm[chn].s[sb][sblock] += thmm;\n enn = w_next * eb[b];\n thmm = w_next * thr[b];\n }\n /* zero initialize the rest */ for(; sb < $cPNKB.SBMAX_s; ++sb){\n gfc.en[chn].s[sb][sblock] = 0;\n gfc.thm[chn].s[sb][sblock] = 0;\n }\n }\n /**\n * longblock threshold calculation (part 2)\n */ function convert_partition2scalefac_l(gfc, eb, thr, chn) {\n var sb, b;\n var enn = 0.0;\n var thmm = 0.0;\n for(sb = b = 0; sb < $cPNKB.SBMAX_l; ++b, ++sb){\n var bo_l_sb = gfc.bo_l[sb];\n var npart_l = gfc.npart_l;\n var b_lim = bo_l_sb < npart_l ? bo_l_sb : npart_l;\n while(b < b_lim){\n $97f850779472263e$var$assert(eb[b] >= 0);\n // iff failed, it may indicate some index error elsewhere\n $97f850779472263e$var$assert(thr[b] >= 0);\n enn += eb[b];\n thmm += thr[b];\n b++;\n }\n gfc.en[chn].l[sb] = enn;\n gfc.thm[chn].l[sb] = thmm;\n if (b >= npart_l) {\n ++sb;\n break;\n }\n $97f850779472263e$var$assert(eb[b] >= 0);\n $97f850779472263e$var$assert(thr[b] >= 0);\n /* at transition sfb . sfb+1 */ var w_curr = gfc.PSY.bo_l_weight[sb];\n var w_next = 1.0 - w_curr;\n enn = w_curr * eb[b];\n thmm = w_curr * thr[b];\n gfc.en[chn].l[sb] += enn;\n gfc.thm[chn].l[sb] += thmm;\n enn = w_next * eb[b];\n thmm = w_next * thr[b];\n }\n /* zero initialize the rest */ for(; sb < $cPNKB.SBMAX_l; ++sb){\n gfc.en[chn].l[sb] = 0;\n gfc.thm[chn].l[sb] = 0;\n }\n }\n function compute_masking_s(gfp, fftenergy_s, eb, thr, chn, sblock) {\n var gfc = gfp.internal_flags;\n var j, b;\n for(b = j = 0; b < gfc.npart_s; ++b){\n var ebb = 0, m = 0;\n var n = gfc.numlines_s[b];\n for(var i = 0; i < n; ++i, ++j){\n var el = fftenergy_s[sblock][j];\n ebb += el;\n if (m < el) m = el;\n }\n eb[b] = ebb;\n }\n $97f850779472263e$var$assert(b == gfc.npart_s);\n $97f850779472263e$var$assert(j == 129);\n for(j = b = 0; b < gfc.npart_s; b++){\n var kk = gfc.s3ind_s[b][0];\n var ecb = gfc.s3_ss[j++] * eb[kk];\n ++kk;\n while(kk <= gfc.s3ind_s[b][1]){\n ecb += gfc.s3_ss[j] * eb[kk];\n ++j;\n ++kk;\n }\n var x = rpelev_s * gfc.nb_s1[chn][b];\n thr[b] = Math.min(ecb, x);\n if (gfc.blocktype_old[chn & 1] == $cPNKB.SHORT_TYPE) {\n /* limit calculated threshold by even older granule */ var x = rpelev2_s * gfc.nb_s2[chn][b];\n var y = thr[b];\n thr[b] = Math.min(x, y);\n }\n gfc.nb_s2[chn][b] = gfc.nb_s1[chn][b];\n gfc.nb_s1[chn][b] = ecb;\n $97f850779472263e$var$assert(thr[b] >= 0);\n }\n for(; b <= $cPNKB.CBANDS; ++b){\n eb[b] = 0;\n thr[b] = 0;\n }\n }\n function block_type_set(gfp, uselongblock, blocktype_d, blocktype) {\n var gfc = gfp.internal_flags;\n if (gfp.short_blocks == $97f850779472263e$var$ShortBlock.short_block_coupled && !(uselongblock[0] != 0 && uselongblock[1] != 0)) uselongblock[0] = uselongblock[1] = 0;\n /*\n * update the blocktype of the previous granule, since it depends on\n * what happend in this granule\n */ for(var chn = 0; chn < gfc.channels_out; chn++){\n blocktype[chn] = $cPNKB.NORM_TYPE;\n /* disable short blocks */ if (gfp.short_blocks == $97f850779472263e$var$ShortBlock.short_block_dispensed) uselongblock[chn] = 1;\n if (gfp.short_blocks == $97f850779472263e$var$ShortBlock.short_block_forced) uselongblock[chn] = 0;\n if (uselongblock[chn] != 0) {\n /* no attack : use long blocks */ $97f850779472263e$var$assert(gfc.blocktype_old[chn] != $cPNKB.START_TYPE);\n if (gfc.blocktype_old[chn] == $cPNKB.SHORT_TYPE) blocktype[chn] = $cPNKB.STOP_TYPE;\n } else {\n /* attack : use short blocks */ blocktype[chn] = $cPNKB.SHORT_TYPE;\n if (gfc.blocktype_old[chn] == $cPNKB.NORM_TYPE) gfc.blocktype_old[chn] = $cPNKB.START_TYPE;\n if (gfc.blocktype_old[chn] == $cPNKB.STOP_TYPE) gfc.blocktype_old[chn] = $cPNKB.SHORT_TYPE;\n }\n blocktype_d[chn] = gfc.blocktype_old[chn];\n // value returned to calling program\n gfc.blocktype_old[chn] = blocktype[chn];\n // save for next call to l3psy_anal\n }\n }\n function NS_INTERP(x, y, r) {\n /* was pow((x),(r))*pow((y),1-(r)) */ if (r >= 1.0) /* 99.7% of the time */ return x;\n if (r <= 0.0) return y;\n if (y > 0.0) /* rest of the time */ return Math.pow(x / y, r) * y;\n /* never happens */ return 0.0;\n }\n /**\n * these values are tuned only for 44.1kHz...\n */ var regcoef_s = [\n 11.8,\n 13.6,\n 17.2,\n 32,\n 46.5,\n 51.3,\n 57.5,\n 67.1,\n 71.5,\n 84.6,\n 97.6,\n 130\n ];\n function pecalc_s(mr, masking_lower) {\n var pe_s = 309.07;\n for(var sb = 0; sb < $cPNKB.SBMAX_s - 1; sb++)for(var sblock = 0; sblock < 3; sblock++){\n var thm = mr.thm.s[sb][sblock];\n $97f850779472263e$var$assert(sb < regcoef_s.length);\n if (thm > 0.0) {\n var x = thm * masking_lower;\n var en = mr.en.s[sb][sblock];\n if (en > x) {\n if (en > x * 1e10) pe_s += regcoef_s[sb] * (10.0 * LOG10);\n else {\n $97f850779472263e$var$assert(x > 0);\n pe_s += regcoef_s[sb] * $97f850779472263e$var$Util.FAST_LOG10(en / x);\n }\n }\n }\n }\n return pe_s;\n }\n /**\n * these values are tuned only for 44.1kHz...\n */ var regcoef_l = [\n 6.8,\n 5.8,\n 5.8,\n 6.4,\n 6.5,\n 9.9,\n 12.1,\n 14.4,\n 15,\n 18.9,\n 21.6,\n 26.9,\n 34.2,\n 40.2,\n 46.8,\n 56.5,\n 60.7,\n 73.9,\n 85.7,\n 93.4,\n 126.1\n ];\n function pecalc_l(mr, masking_lower) {\n var pe_l = 281.0575;\n for(var sb = 0; sb < $cPNKB.SBMAX_l - 1; sb++){\n var thm = mr.thm.l[sb];\n $97f850779472263e$var$assert(sb < regcoef_l.length);\n if (thm > 0.0) {\n var x = thm * masking_lower;\n var en = mr.en.l[sb];\n if (en > x) {\n if (en > x * 1e10) pe_l += regcoef_l[sb] * (10.0 * LOG10);\n else {\n $97f850779472263e$var$assert(x > 0);\n pe_l += regcoef_l[sb] * $97f850779472263e$var$Util.FAST_LOG10(en / x);\n }\n }\n }\n }\n return pe_l;\n }\n function calc_energy(gfc, fftenergy, eb, max, avg) {\n var b, j;\n for(b = j = 0; b < gfc.npart_l; ++b){\n var ebb = 0, m = 0;\n var i;\n for(i = 0; i < gfc.numlines_l[b]; ++i, ++j){\n var el = fftenergy[j];\n $97f850779472263e$var$assert(el >= 0);\n ebb += el;\n if (m < el) m = el;\n }\n eb[b] = ebb;\n max[b] = m;\n avg[b] = ebb * gfc.rnumlines_l[b];\n $97f850779472263e$var$assert(gfc.rnumlines_l[b] >= 0);\n $97f850779472263e$var$assert(ebb >= 0);\n $97f850779472263e$var$assert(eb[b] >= 0);\n $97f850779472263e$var$assert(max[b] >= 0);\n $97f850779472263e$var$assert(avg[b] >= 0);\n }\n }\n function calc_mask_index_l(gfc, max, avg, mask_idx) {\n var last_tab_entry = tab.length - 1;\n var b = 0;\n var a = avg[b] + avg[b + 1];\n $97f850779472263e$var$assert(a >= 0);\n if (a > 0.0) {\n var m = max[b];\n if (m < max[b + 1]) m = max[b + 1];\n $97f850779472263e$var$assert(gfc.numlines_l[b] + gfc.numlines_l[b + 1] - 1 > 0);\n a = 20.0 * (m * 2.0 - a) / (a * (gfc.numlines_l[b] + gfc.numlines_l[b + 1] - 1));\n var k = 0 | a;\n if (k > last_tab_entry) k = last_tab_entry;\n mask_idx[b] = k;\n } else mask_idx[b] = 0;\n for(b = 1; b < gfc.npart_l - 1; b++){\n a = avg[b - 1] + avg[b] + avg[b + 1];\n $97f850779472263e$var$assert(a >= 0);\n if (a > 0.0) {\n var m = max[b - 1];\n if (m < max[b]) m = max[b];\n if (m < max[b + 1]) m = max[b + 1];\n $97f850779472263e$var$assert(gfc.numlines_l[b - 1] + gfc.numlines_l[b] + gfc.numlines_l[b + 1] - 1 > 0);\n a = 20.0 * (m * 3.0 - a) / (a * (gfc.numlines_l[b - 1] + gfc.numlines_l[b] + gfc.numlines_l[b + 1] - 1));\n var k = 0 | a;\n if (k > last_tab_entry) k = last_tab_entry;\n mask_idx[b] = k;\n } else mask_idx[b] = 0;\n }\n $97f850779472263e$var$assert(b > 0);\n $97f850779472263e$var$assert(b == gfc.npart_l - 1);\n a = avg[b - 1] + avg[b];\n $97f850779472263e$var$assert(a >= 0);\n if (a > 0.0) {\n var m = max[b - 1];\n if (m < max[b]) m = max[b];\n $97f850779472263e$var$assert(gfc.numlines_l[b - 1] + gfc.numlines_l[b] - 1 > 0);\n a = 20.0 * (m * 2.0 - a) / (a * (gfc.numlines_l[b - 1] + gfc.numlines_l[b] - 1));\n var k = 0 | a;\n if (k > last_tab_entry) k = last_tab_entry;\n mask_idx[b] = k;\n } else mask_idx[b] = 0;\n $97f850779472263e$var$assert(b == gfc.npart_l - 1);\n }\n var fircoef = [\n -0.00000000000000000865163 * 2,\n -0.01703172,\n -0.00000000000000000674764 * 2,\n 0.0418072,\n -0.0000000000000000336639 * 2,\n -0.0876324,\n -0.0000000000000000154175 * 2,\n 0.1863476,\n -0.0000000000000000552212 * 2,\n -0.627638\n ];\n this.L3psycho_anal_ns = function(gfp, buffer, bufPos, gr_out, masking_ratio, masking_MS_ratio, percep_entropy, percep_MS_entropy, energy, blocktype_d) {\n /*\n * to get a good cache performance, one has to think about the sequence,\n * in which the variables are used.\n */ var gfc = gfp.internal_flags;\n /* fft and energy calculation */ var wsamp_L = $97f850779472263e$var$new_float_n([\n 2,\n $cPNKB.BLKSIZE\n ]);\n var wsamp_S = $97f850779472263e$var$new_float_n([\n 2,\n 3,\n $cPNKB.BLKSIZE_s\n ]);\n /* convolution */ var eb_l = $97f850779472263e$var$new_float($cPNKB.CBANDS + 1);\n var eb_s = $97f850779472263e$var$new_float($cPNKB.CBANDS + 1);\n var thr = $97f850779472263e$var$new_float($cPNKB.CBANDS + 2);\n /* block type */ var blocktype = $97f850779472263e$var$new_int(2), uselongblock = $97f850779472263e$var$new_int(2);\n /* usual variables like loop indices, etc.. */ var numchn, chn;\n var b, i, j, k;\n var sb, sblock;\n /* variables used for --nspsytune */ var ns_hpfsmpl = $97f850779472263e$var$new_float_n([\n 2,\n 576\n ]);\n var pcfact;\n var mask_idx_l = $97f850779472263e$var$new_int($cPNKB.CBANDS + 2), mask_idx_s = $97f850779472263e$var$new_int($cPNKB.CBANDS + 2);\n $97f850779472263e$var$Arrays.fill(mask_idx_s, 0);\n numchn = gfc.channels_out;\n /* chn=2 and 3 = Mid and Side channels */ if (gfp.mode == MPEGMode.JOINT_STEREO) numchn = 4;\n if (gfp.VBR == $97f850779472263e$var$VbrMode.vbr_off) pcfact = gfc.ResvMax == 0 ? 0 : gfc.ResvSize / gfc.ResvMax * 0.5;\n else if (gfp.VBR == $97f850779472263e$var$VbrMode.vbr_rh || gfp.VBR == $97f850779472263e$var$VbrMode.vbr_mtrh || gfp.VBR == $97f850779472263e$var$VbrMode.vbr_mt) pcfact = 0.6;\n else pcfact = 1.0;\n /**********************************************************************\n * Apply HPF of fs/4 to the input signal. This is used for attack\n * detection / handling.\n **********************************************************************/ /* Don't copy the input buffer into a temporary buffer */ /* unroll the loop 2 times */ for(chn = 0; chn < gfc.channels_out; chn++){\n /* apply high pass filter of fs/4 */ var firbuf1 = buffer[chn];\n var firbufPos = bufPos + 576 - 350 - NSFIRLEN + 192;\n $97f850779472263e$var$assert(fircoef.length == (NSFIRLEN - 1) / 2);\n for(i = 0; i < 576; i++){\n var sum1, sum2;\n sum1 = firbuf1[firbufPos + i + 10];\n sum2 = 0.0;\n for(j = 0; j < (NSFIRLEN - 1) / 2 - 1; j += 2){\n sum1 += fircoef[j] * (firbuf1[firbufPos + i + j] + firbuf1[firbufPos + i + NSFIRLEN - j]);\n sum2 += fircoef[j + 1] * (firbuf1[firbufPos + i + j + 1] + firbuf1[firbufPos + i + NSFIRLEN - j - 1]);\n }\n ns_hpfsmpl[chn][i] = sum1 + sum2;\n }\n masking_ratio[gr_out][chn].en.assign(gfc.en[chn]);\n masking_ratio[gr_out][chn].thm.assign(gfc.thm[chn]);\n if (numchn > 2) {\n /* MS maskings */ /* percep_MS_entropy [chn-2] = gfc . pe [chn]; */ masking_MS_ratio[gr_out][chn].en.assign(gfc.en[chn + 2]);\n masking_MS_ratio[gr_out][chn].thm.assign(gfc.thm[chn + 2]);\n }\n }\n for(chn = 0; chn < numchn; chn++){\n var wsamp_l;\n var wsamp_s;\n var en_subshort = $97f850779472263e$var$new_float(12);\n var en_short = [\n 0,\n 0,\n 0,\n 0\n ];\n var attack_intensity = $97f850779472263e$var$new_float(12);\n var ns_uselongblock = 1;\n var attackThreshold;\n var max = $97f850779472263e$var$new_float($cPNKB.CBANDS), avg = $97f850779472263e$var$new_float($cPNKB.CBANDS);\n var ns_attacks = [\n 0,\n 0,\n 0,\n 0\n ];\n var fftenergy = $97f850779472263e$var$new_float($cPNKB.HBLKSIZE);\n var fftenergy_s = $97f850779472263e$var$new_float_n([\n 3,\n $cPNKB.HBLKSIZE_s\n ]);\n /*\n * rh 20040301: the following loops do access one off the limits so\n * I increase the array dimensions by one and initialize the\n * accessed values to zero\n */ $97f850779472263e$var$assert(gfc.npart_s <= $cPNKB.CBANDS);\n $97f850779472263e$var$assert(gfc.npart_l <= $cPNKB.CBANDS);\n /***************************************************************\n * determine the block type (window type)\n ***************************************************************/ /* calculate energies of each sub-shortblocks */ for(i = 0; i < 3; i++){\n en_subshort[i] = gfc.nsPsy.last_en_subshort[chn][i + 6];\n $97f850779472263e$var$assert(gfc.nsPsy.last_en_subshort[chn][i + 4] > 0);\n attack_intensity[i] = en_subshort[i] / gfc.nsPsy.last_en_subshort[chn][i + 4];\n en_short[0] += en_subshort[i];\n }\n if (chn == 2) for(i = 0; i < 576; i++){\n var l, r;\n l = ns_hpfsmpl[0][i];\n r = ns_hpfsmpl[1][i];\n ns_hpfsmpl[0][i] = l + r;\n ns_hpfsmpl[1][i] = l - r;\n }\n var pf = ns_hpfsmpl[chn & 1];\n var pfPos = 0;\n for(i = 0; i < 9; i++){\n var pfe = pfPos + 64;\n var p = 1.;\n for(; pfPos < pfe; pfPos++)if (p < Math.abs(pf[pfPos])) p = Math.abs(pf[pfPos]);\n gfc.nsPsy.last_en_subshort[chn][i] = en_subshort[i + 3] = p;\n en_short[1 + i / 3] += p;\n if (p > en_subshort[i + 3 - 2]) {\n $97f850779472263e$var$assert(en_subshort[i + 3 - 2] > 0);\n p = p / en_subshort[i + 3 - 2];\n } else if (en_subshort[i + 3 - 2] > p * 10.0) {\n $97f850779472263e$var$assert(p > 0);\n p = en_subshort[i + 3 - 2] / (p * 10.0);\n } else p = 0.0;\n attack_intensity[i + 3] = p;\n }\n if (gfp.analysis) {\n var x = attack_intensity[0];\n for(i = 1; i < 12; i++)if (x < attack_intensity[i]) x = attack_intensity[i];\n gfc.pinfo.ers[gr_out][chn] = gfc.pinfo.ers_save[chn];\n gfc.pinfo.ers_save[chn] = x;\n }\n /* compare energies between sub-shortblocks */ attackThreshold = chn == 3 ? gfc.nsPsy.attackthre_s : gfc.nsPsy.attackthre;\n for(i = 0; i < 12; i++)if (0 == ns_attacks[i / 3] && attack_intensity[i] > attackThreshold) ns_attacks[i / 3] = i % 3 + 1;\n /*\n * should have energy change between short blocks, in order to avoid\n * periodic signals\n */ for(i = 1; i < 4; i++){\n var ratio;\n if (en_short[i - 1] > en_short[i]) {\n $97f850779472263e$var$assert(en_short[i] > 0);\n ratio = en_short[i - 1] / en_short[i];\n } else {\n $97f850779472263e$var$assert(en_short[i - 1] > 0);\n ratio = en_short[i] / en_short[i - 1];\n }\n if (ratio < 1.7) {\n ns_attacks[i] = 0;\n if (i == 1) ns_attacks[0] = 0;\n }\n }\n if (ns_attacks[0] != 0 && gfc.nsPsy.lastAttacks[chn] != 0) ns_attacks[0] = 0;\n if (gfc.nsPsy.lastAttacks[chn] == 3 || ns_attacks[0] + ns_attacks[1] + ns_attacks[2] + ns_attacks[3] != 0) {\n ns_uselongblock = 0;\n if (ns_attacks[1] != 0 && ns_attacks[0] != 0) ns_attacks[1] = 0;\n if (ns_attacks[2] != 0 && ns_attacks[1] != 0) ns_attacks[2] = 0;\n if (ns_attacks[3] != 0 && ns_attacks[2] != 0) ns_attacks[3] = 0;\n }\n if (chn < 2) uselongblock[chn] = ns_uselongblock;\n else if (ns_uselongblock == 0) uselongblock[0] = uselongblock[1] = 0;\n /*\n * there is a one granule delay. Copy maskings computed last call\n * into masking_ratio to return to calling program.\n */ energy[chn] = gfc.tot_ener[chn];\n /*********************************************************************\n * compute FFTs\n *********************************************************************/ wsamp_s = wsamp_S;\n wsamp_l = wsamp_L;\n compute_ffts(gfp, fftenergy, fftenergy_s, wsamp_l, chn & 1, wsamp_s, chn & 1, gr_out, chn, buffer, bufPos);\n /*********************************************************************\n * Calculate the energy and the tonality of each partition.\n *********************************************************************/ calc_energy(gfc, fftenergy, eb_l, max, avg);\n calc_mask_index_l(gfc, max, avg, mask_idx_l);\n /* compute masking thresholds for short blocks */ for(sblock = 0; sblock < 3; sblock++){\n var enn, thmm;\n compute_masking_s(gfp, fftenergy_s, eb_s, thr, chn, sblock);\n convert_partition2scalefac_s(gfc, eb_s, thr, chn, sblock);\n /**** short block pre-echo control ****/ for(sb = 0; sb < $cPNKB.SBMAX_s; sb++){\n thmm = gfc.thm[chn].s[sb][sblock];\n thmm *= NS_PREECHO_ATT0;\n if (ns_attacks[sblock] >= 2 || ns_attacks[sblock + 1] == 1) {\n var idx = sblock != 0 ? sblock - 1 : 2;\n var p = NS_INTERP(gfc.thm[chn].s[sb][idx], thmm, NS_PREECHO_ATT1 * pcfact);\n thmm = Math.min(thmm, p);\n }\n if (ns_attacks[sblock] == 1) {\n var idx = sblock != 0 ? sblock - 1 : 2;\n var p = NS_INTERP(gfc.thm[chn].s[sb][idx], thmm, NS_PREECHO_ATT2 * pcfact);\n thmm = Math.min(thmm, p);\n } else if (sblock != 0 && ns_attacks[sblock - 1] == 3 || sblock == 0 && gfc.nsPsy.lastAttacks[chn] == 3) {\n var idx = sblock != 2 ? sblock + 1 : 0;\n var p = NS_INTERP(gfc.thm[chn].s[sb][idx], thmm, NS_PREECHO_ATT2 * pcfact);\n thmm = Math.min(thmm, p);\n }\n /* pulse like signal detection for fatboy.wav and so on */ enn = en_subshort[sblock * 3 + 3] + en_subshort[sblock * 3 + 4] + en_subshort[sblock * 3 + 5];\n if (en_subshort[sblock * 3 + 5] * 6 < enn) {\n thmm *= 0.5;\n if (en_subshort[sblock * 3 + 4] * 6 < enn) thmm *= 0.5;\n }\n gfc.thm[chn].s[sb][sblock] = thmm;\n }\n }\n gfc.nsPsy.lastAttacks[chn] = ns_attacks[2];\n /*********************************************************************\n * convolve the partitioned energy and unpredictability with the\n * spreading function, s3_l[b][k]\n ********************************************************************/ k = 0;\n for(b = 0; b < gfc.npart_l; b++){\n /*\n * convolve the partitioned energy with the spreading\n * function\n */ var kk = gfc.s3ind[b][0];\n var eb2 = eb_l[kk] * tab[mask_idx_l[kk]];\n var ecb = gfc.s3_ll[k++] * eb2;\n while(++kk <= gfc.s3ind[b][1]){\n eb2 = eb_l[kk] * tab[mask_idx_l[kk]];\n ecb = mask_add(ecb, gfc.s3_ll[k++] * eb2, kk, kk - b, gfc, 0);\n }\n ecb *= 0.158489319246111;\n /* pow(10,-0.8) */ /**** long block pre-echo control ****/ /**\n * <PRE>\n * dont use long block pre-echo control if previous granule was\n * a short block. This is to avoid the situation:\n * frame0: quiet (very low masking)\n * frame1: surge (triggers short blocks)\n * frame2: regular frame. looks like pre-echo when compared to\n * frame0, but all pre-echo was in frame1.\n * </PRE>\n */ /*\n * chn=0,1 L and R channels\n *\n * chn=2,3 S and M channels.\n */ if (gfc.blocktype_old[chn & 1] == $cPNKB.SHORT_TYPE) thr[b] = ecb;\n else thr[b] = NS_INTERP(Math.min(ecb, Math.min(rpelev * gfc.nb_1[chn][b], rpelev2 * gfc.nb_2[chn][b])), ecb, pcfact);\n gfc.nb_2[chn][b] = gfc.nb_1[chn][b];\n gfc.nb_1[chn][b] = ecb;\n }\n for(; b <= $cPNKB.CBANDS; ++b){\n eb_l[b] = 0;\n thr[b] = 0;\n }\n /* compute masking thresholds for long blocks */ convert_partition2scalefac_l(gfc, eb_l, thr, chn);\n }\n /* end loop over chn */ if (gfp.mode == MPEGMode.STEREO || gfp.mode == MPEGMode.JOINT_STEREO) {\n if (gfp.interChRatio > 0.0) calc_interchannel_masking(gfp, gfp.interChRatio);\n }\n if (gfp.mode == MPEGMode.JOINT_STEREO) {\n var msfix;\n msfix1(gfc);\n msfix = gfp.msfix;\n if (Math.abs(msfix) > 0.0) ns_msfix(gfc, msfix, gfp.ATHlower * gfc.ATH.adjust);\n }\n /***************************************************************\n * determine final block type\n ***************************************************************/ block_type_set(gfp, uselongblock, blocktype_d, blocktype);\n /*********************************************************************\n * compute the value of PE to return ... no delay and advance\n *********************************************************************/ for(chn = 0; chn < numchn; chn++){\n var ppe;\n var ppePos = 0;\n var type;\n var mr;\n if (chn > 1) {\n ppe = percep_MS_entropy;\n ppePos = -2;\n type = $cPNKB.NORM_TYPE;\n if (blocktype_d[0] == $cPNKB.SHORT_TYPE || blocktype_d[1] == $cPNKB.SHORT_TYPE) type = $cPNKB.SHORT_TYPE;\n mr = masking_MS_ratio[gr_out][chn - 2];\n } else {\n ppe = percep_entropy;\n ppePos = 0;\n type = blocktype_d[chn];\n mr = masking_ratio[gr_out][chn];\n }\n if (type == $cPNKB.SHORT_TYPE) ppe[ppePos + chn] = pecalc_s(mr, gfc.masking_lower);\n else ppe[ppePos + chn] = pecalc_l(mr, gfc.masking_lower);\n if (gfp.analysis) gfc.pinfo.pe[gr_out][chn] = ppe[ppePos + chn];\n }\n return 0;\n };\n function vbrpsy_compute_fft_l(gfp, buffer, bufPos, chn, gr_out, fftenergy, wsamp_l, wsamp_lPos) {\n var gfc = gfp.internal_flags;\n if (chn < 2) fft.fft_long(gfc, wsamp_l[wsamp_lPos], chn, buffer, bufPos);\n else if (chn == 2) /* FFT data for mid and side channel is derived from L & R */ for(var j = $cPNKB.BLKSIZE - 1; j >= 0; --j){\n var l = wsamp_l[wsamp_lPos + 0][j];\n var r = wsamp_l[wsamp_lPos + 1][j];\n wsamp_l[wsamp_lPos + 0][j] = (l + r) * $97f850779472263e$var$Util.SQRT2 * 0.5;\n wsamp_l[wsamp_lPos + 1][j] = (l - r) * $97f850779472263e$var$Util.SQRT2 * 0.5;\n }\n /*********************************************************************\n * compute energies\n *********************************************************************/ fftenergy[0] = NON_LINEAR_SCALE_ENERGY(wsamp_l[wsamp_lPos + 0][0]);\n fftenergy[0] *= fftenergy[0];\n for(var j = $cPNKB.BLKSIZE / 2 - 1; j >= 0; --j){\n var re = wsamp_l[wsamp_lPos + 0][$cPNKB.BLKSIZE / 2 - j];\n var im = wsamp_l[wsamp_lPos + 0][$cPNKB.BLKSIZE / 2 + j];\n fftenergy[$cPNKB.BLKSIZE / 2 - j] = NON_LINEAR_SCALE_ENERGY((re * re + im * im) * 0.5);\n }\n var totalenergy = 0.0;\n for(var j = 11; j < $cPNKB.HBLKSIZE; j++)totalenergy += fftenergy[j];\n gfc.tot_ener[chn] = totalenergy;\n if (gfp.analysis) {\n for(var j = 0; j < $cPNKB.HBLKSIZE; j++){\n gfc.pinfo.energy[gr_out][chn][j] = gfc.pinfo.energy_save[chn][j];\n gfc.pinfo.energy_save[chn][j] = fftenergy[j];\n }\n gfc.pinfo.pe[gr_out][chn] = gfc.pe[chn];\n }\n }\n function vbrpsy_compute_fft_s(gfp, buffer, bufPos, chn, sblock, fftenergy_s, wsamp_s, wsamp_sPos) {\n var gfc = gfp.internal_flags;\n if (sblock == 0 && chn < 2) fft.fft_short(gfc, wsamp_s[wsamp_sPos], chn, buffer, bufPos);\n if (chn == 2) /* FFT data for mid and side channel is derived from L & R */ for(var j = $cPNKB.BLKSIZE_s - 1; j >= 0; --j){\n var l = wsamp_s[wsamp_sPos + 0][sblock][j];\n var r = wsamp_s[wsamp_sPos + 1][sblock][j];\n wsamp_s[wsamp_sPos + 0][sblock][j] = (l + r) * $97f850779472263e$var$Util.SQRT2 * 0.5;\n wsamp_s[wsamp_sPos + 1][sblock][j] = (l - r) * $97f850779472263e$var$Util.SQRT2 * 0.5;\n }\n /*********************************************************************\n * compute energies\n *********************************************************************/ fftenergy_s[sblock][0] = wsamp_s[wsamp_sPos + 0][sblock][0];\n fftenergy_s[sblock][0] *= fftenergy_s[sblock][0];\n for(var j = $cPNKB.BLKSIZE_s / 2 - 1; j >= 0; --j){\n var re = wsamp_s[wsamp_sPos + 0][sblock][$cPNKB.BLKSIZE_s / 2 - j];\n var im = wsamp_s[wsamp_sPos + 0][sblock][$cPNKB.BLKSIZE_s / 2 + j];\n fftenergy_s[sblock][$cPNKB.BLKSIZE_s / 2 - j] = NON_LINEAR_SCALE_ENERGY((re * re + im * im) * 0.5);\n }\n }\n /**\n * compute loudness approximation (used for ATH auto-level adjustment)\n */ function vbrpsy_compute_loudness_approximation_l(gfp, gr_out, chn, fftenergy) {\n var gfc = gfp.internal_flags;\n if (gfp.athaa_loudapprox == 2 && chn < 2) {\n // no loudness for mid/side ch\n gfc.loudness_sq[gr_out][chn] = gfc.loudness_sq_save[chn];\n gfc.loudness_sq_save[chn] = psycho_loudness_approx(fftenergy, gfc);\n }\n }\n var fircoef_ = [\n -0.00000000000000000865163 * 2,\n -0.01703172,\n -0.00000000000000000674764 * 2,\n 0.0418072,\n -0.0000000000000000336639 * 2,\n -0.0876324,\n -0.0000000000000000154175 * 2,\n 0.1863476,\n -0.0000000000000000552212 * 2,\n -0.627638\n ];\n /**\n * Apply HPF of fs/4 to the input signal. This is used for attack detection\n * / handling.\n */ function vbrpsy_attack_detection(gfp, buffer, bufPos, gr_out, masking_ratio, masking_MS_ratio, energy, sub_short_factor, ns_attacks, uselongblock) {\n var ns_hpfsmpl = $97f850779472263e$var$new_float_n([\n 2,\n 576\n ]);\n var gfc = gfp.internal_flags;\n var n_chn_out = gfc.channels_out;\n /* chn=2 and 3 = Mid and Side channels */ var n_chn_psy = gfp.mode == MPEGMode.JOINT_STEREO ? 4 : n_chn_out;\n /* Don't copy the input buffer into a temporary buffer */ /* unroll the loop 2 times */ for(var chn = 0; chn < n_chn_out; chn++){\n /* apply high pass filter of fs/4 */ firbuf = buffer[chn];\n var firbufPos = bufPos + 576 - 350 - NSFIRLEN + 192;\n $97f850779472263e$var$assert(fircoef_.length == (NSFIRLEN - 1) / 2);\n for(var i = 0; i < 576; i++){\n var sum1, sum2;\n sum1 = firbuf[firbufPos + i + 10];\n sum2 = 0.0;\n for(var j = 0; j < (NSFIRLEN - 1) / 2 - 1; j += 2){\n sum1 += fircoef_[j] * (firbuf[firbufPos + i + j] + firbuf[firbufPos + i + NSFIRLEN - j]);\n sum2 += fircoef_[j + 1] * (firbuf[firbufPos + i + j + 1] + firbuf[firbufPos + i + NSFIRLEN - j - 1]);\n }\n ns_hpfsmpl[chn][i] = sum1 + sum2;\n }\n masking_ratio[gr_out][chn].en.assign(gfc.en[chn]);\n masking_ratio[gr_out][chn].thm.assign(gfc.thm[chn]);\n if (n_chn_psy > 2) {\n /* MS maskings */ /* percep_MS_entropy [chn-2] = gfc . pe [chn]; */ masking_MS_ratio[gr_out][chn].en.assign(gfc.en[chn + 2]);\n masking_MS_ratio[gr_out][chn].thm.assign(gfc.thm[chn + 2]);\n }\n }\n for(var chn = 0; chn < n_chn_psy; chn++){\n var attack_intensity = $97f850779472263e$var$new_float(12);\n var en_subshort = $97f850779472263e$var$new_float(12);\n var en_short = [\n 0,\n 0,\n 0,\n 0\n ];\n var pf = ns_hpfsmpl[chn & 1];\n var pfPos = 0;\n var attackThreshold = chn == 3 ? gfc.nsPsy.attackthre_s : gfc.nsPsy.attackthre;\n var ns_uselongblock = 1;\n if (chn == 2) for(var i = 0, j = 576; j > 0; ++i, --j){\n var l = ns_hpfsmpl[0][i];\n var r = ns_hpfsmpl[1][i];\n ns_hpfsmpl[0][i] = l + r;\n ns_hpfsmpl[1][i] = l - r;\n }\n /***************************************************************\n * determine the block type (window type)\n ***************************************************************/ /* calculate energies of each sub-shortblocks */ for(var i = 0; i < 3; i++){\n en_subshort[i] = gfc.nsPsy.last_en_subshort[chn][i + 6];\n $97f850779472263e$var$assert(gfc.nsPsy.last_en_subshort[chn][i + 4] > 0);\n attack_intensity[i] = en_subshort[i] / gfc.nsPsy.last_en_subshort[chn][i + 4];\n en_short[0] += en_subshort[i];\n }\n for(var i = 0; i < 9; i++){\n var pfe = pfPos + 64;\n var p = 1.;\n for(; pfPos < pfe; pfPos++)if (p < Math.abs(pf[pfPos])) p = Math.abs(pf[pfPos]);\n gfc.nsPsy.last_en_subshort[chn][i] = en_subshort[i + 3] = p;\n en_short[1 + i / 3] += p;\n if (p > en_subshort[i + 3 - 2]) {\n $97f850779472263e$var$assert(en_subshort[i + 3 - 2] > 0);\n p = p / en_subshort[i + 3 - 2];\n } else if (en_subshort[i + 3 - 2] > p * 10.0) {\n $97f850779472263e$var$assert(p > 0);\n p = en_subshort[i + 3 - 2] / (p * 10.0);\n } else p = 0.0;\n attack_intensity[i + 3] = p;\n }\n /* pulse like signal detection for fatboy.wav and so on */ for(var i = 0; i < 3; ++i){\n var enn = en_subshort[i * 3 + 3] + en_subshort[i * 3 + 4] + en_subshort[i * 3 + 5];\n var factor = 1.;\n if (en_subshort[i * 3 + 5] * 6 < enn) {\n factor *= 0.5;\n if (en_subshort[i * 3 + 4] * 6 < enn) factor *= 0.5;\n }\n sub_short_factor[chn][i] = factor;\n }\n if (gfp.analysis) {\n var x = attack_intensity[0];\n for(var i = 1; i < 12; i++)if (x < attack_intensity[i]) x = attack_intensity[i];\n gfc.pinfo.ers[gr_out][chn] = gfc.pinfo.ers_save[chn];\n gfc.pinfo.ers_save[chn] = x;\n }\n /* compare energies between sub-shortblocks */ for(var i = 0; i < 12; i++)if (0 == ns_attacks[chn][i / 3] && attack_intensity[i] > attackThreshold) ns_attacks[chn][i / 3] = i % 3 + 1;\n /*\n * should have energy change between short blocks, in order to avoid\n * periodic signals\n */ /* Good samples to show the effect are Trumpet test songs */ /*\n * GB: tuned (1) to avoid too many short blocks for test sample\n * TRUMPET\n */ /*\n * RH: tuned (2) to let enough short blocks through for test sample\n * FSOL and SNAPS\n */ for(var i = 1; i < 4; i++){\n var u = en_short[i - 1];\n var v = en_short[i];\n var m = Math.max(u, v);\n if (m < 40000) {\n if (u < 1.7 * v && v < 1.7 * u) {\n if (i == 1 && ns_attacks[chn][0] <= ns_attacks[chn][i]) ns_attacks[chn][0] = 0;\n ns_attacks[chn][i] = 0;\n }\n }\n }\n if (ns_attacks[chn][0] <= gfc.nsPsy.lastAttacks[chn]) ns_attacks[chn][0] = 0;\n if (gfc.nsPsy.lastAttacks[chn] == 3 || ns_attacks[chn][0] + ns_attacks[chn][1] + ns_attacks[chn][2] + ns_attacks[chn][3] != 0) {\n ns_uselongblock = 0;\n if (ns_attacks[chn][1] != 0 && ns_attacks[chn][0] != 0) ns_attacks[chn][1] = 0;\n if (ns_attacks[chn][2] != 0 && ns_attacks[chn][1] != 0) ns_attacks[chn][2] = 0;\n if (ns_attacks[chn][3] != 0 && ns_attacks[chn][2] != 0) ns_attacks[chn][3] = 0;\n }\n if (chn < 2) uselongblock[chn] = ns_uselongblock;\n else if (ns_uselongblock == 0) uselongblock[0] = uselongblock[1] = 0;\n /*\n * there is a one granule delay. Copy maskings computed last call\n * into masking_ratio to return to calling program.\n */ energy[chn] = gfc.tot_ener[chn];\n }\n }\n function vbrpsy_skip_masking_s(gfc, chn, sblock) {\n if (sblock == 0) for(var b = 0; b < gfc.npart_s; b++){\n gfc.nb_s2[chn][b] = gfc.nb_s1[chn][b];\n gfc.nb_s1[chn][b] = 0;\n }\n }\n function vbrpsy_skip_masking_l(gfc, chn) {\n for(var b = 0; b < gfc.npart_l; b++){\n gfc.nb_2[chn][b] = gfc.nb_1[chn][b];\n gfc.nb_1[chn][b] = 0;\n }\n }\n function psyvbr_calc_mask_index_s(gfc, max, avg, mask_idx) {\n var last_tab_entry = tab.length - 1;\n var b = 0;\n var a = avg[b] + avg[b + 1];\n $97f850779472263e$var$assert(a >= 0);\n if (a > 0.0) {\n var m = max[b];\n if (m < max[b + 1]) m = max[b + 1];\n $97f850779472263e$var$assert(gfc.numlines_s[b] + gfc.numlines_s[b + 1] - 1 > 0);\n a = 20.0 * (m * 2.0 - a) / (a * (gfc.numlines_s[b] + gfc.numlines_s[b + 1] - 1));\n var k = 0 | a;\n if (k > last_tab_entry) k = last_tab_entry;\n mask_idx[b] = k;\n } else mask_idx[b] = 0;\n for(b = 1; b < gfc.npart_s - 1; b++){\n a = avg[b - 1] + avg[b] + avg[b + 1];\n $97f850779472263e$var$assert(b + 1 < gfc.npart_s);\n $97f850779472263e$var$assert(a >= 0);\n if (a > 0.0) {\n var m = max[b - 1];\n if (m < max[b]) m = max[b];\n if (m < max[b + 1]) m = max[b + 1];\n $97f850779472263e$var$assert(gfc.numlines_s[b - 1] + gfc.numlines_s[b] + gfc.numlines_s[b + 1] - 1 > 0);\n a = 20.0 * (m * 3.0 - a) / (a * (gfc.numlines_s[b - 1] + gfc.numlines_s[b] + gfc.numlines_s[b + 1] - 1));\n var k = 0 | a;\n if (k > last_tab_entry) k = last_tab_entry;\n mask_idx[b] = k;\n } else mask_idx[b] = 0;\n }\n $97f850779472263e$var$assert(b > 0);\n $97f850779472263e$var$assert(b == gfc.npart_s - 1);\n a = avg[b - 1] + avg[b];\n $97f850779472263e$var$assert(a >= 0);\n if (a > 0.0) {\n var m = max[b - 1];\n if (m < max[b]) m = max[b];\n $97f850779472263e$var$assert(gfc.numlines_s[b - 1] + gfc.numlines_s[b] - 1 > 0);\n a = 20.0 * (m * 2.0 - a) / (a * (gfc.numlines_s[b - 1] + gfc.numlines_s[b] - 1));\n var k = 0 | a;\n if (k > last_tab_entry) k = last_tab_entry;\n mask_idx[b] = k;\n } else mask_idx[b] = 0;\n $97f850779472263e$var$assert(b == gfc.npart_s - 1);\n }\n function vbrpsy_compute_masking_s(gfp, fftenergy_s, eb, thr, chn, sblock) {\n var gfc = gfp.internal_flags;\n var max = new float[$cPNKB.CBANDS], avg = $97f850779472263e$var$new_float($cPNKB.CBANDS);\n var i, j, b;\n var mask_idx_s = new int[$cPNKB.CBANDS];\n for(b = j = 0; b < gfc.npart_s; ++b){\n var ebb = 0, m = 0;\n var n = gfc.numlines_s[b];\n for(i = 0; i < n; ++i, ++j){\n var el = fftenergy_s[sblock][j];\n ebb += el;\n if (m < el) m = el;\n }\n eb[b] = ebb;\n $97f850779472263e$var$assert(ebb >= 0);\n max[b] = m;\n $97f850779472263e$var$assert(n > 0);\n avg[b] = ebb / n;\n $97f850779472263e$var$assert(avg[b] >= 0);\n }\n $97f850779472263e$var$assert(b == gfc.npart_s);\n $97f850779472263e$var$assert(j == 129);\n for(; b < $cPNKB.CBANDS; ++b){\n max[b] = 0;\n avg[b] = 0;\n }\n psyvbr_calc_mask_index_s(gfc, max, avg, mask_idx_s);\n for(j = b = 0; b < gfc.npart_s; b++){\n var kk = gfc.s3ind_s[b][0];\n var last = gfc.s3ind_s[b][1];\n var dd, dd_n;\n var x, ecb, avg_mask;\n dd = mask_idx_s[kk];\n dd_n = 1;\n ecb = gfc.s3_ss[j] * eb[kk] * tab[mask_idx_s[kk]];\n ++j;\n ++kk;\n while(kk <= last){\n dd += mask_idx_s[kk];\n dd_n += 1;\n x = gfc.s3_ss[j] * eb[kk] * tab[mask_idx_s[kk]];\n ecb = vbrpsy_mask_add(ecb, x, kk - b);\n ++j;\n ++kk;\n }\n dd = (1 + 2 * dd) / (2 * dd_n);\n avg_mask = tab[dd] * 0.5;\n ecb *= avg_mask;\n thr[b] = ecb;\n gfc.nb_s2[chn][b] = gfc.nb_s1[chn][b];\n gfc.nb_s1[chn][b] = ecb;\n /*\n * if THR exceeds EB, the quantization routines will take the\n * difference from other bands. in case of strong tonal samples\n * (tonaltest.wav) this leads to heavy distortions. that's why\n * we limit THR here.\n */ x = max[b];\n x *= gfc.minval_s[b];\n x *= avg_mask;\n if (thr[b] > x) thr[b] = x;\n if (gfc.masking_lower > 1) thr[b] *= gfc.masking_lower;\n if (thr[b] > eb[b]) thr[b] = eb[b];\n if (gfc.masking_lower < 1) thr[b] *= gfc.masking_lower;\n $97f850779472263e$var$assert(thr[b] >= 0);\n }\n for(; b < $cPNKB.CBANDS; ++b){\n eb[b] = 0;\n thr[b] = 0;\n }\n }\n function vbrpsy_compute_masking_l(gfc, fftenergy, eb_l, thr, chn) {\n var max = $97f850779472263e$var$new_float($cPNKB.CBANDS), avg = $97f850779472263e$var$new_float($cPNKB.CBANDS);\n var mask_idx_l = $97f850779472263e$var$new_int($cPNKB.CBANDS + 2);\n var b;\n /*********************************************************************\n * Calculate the energy and the tonality of each partition.\n *********************************************************************/ calc_energy(gfc, fftenergy, eb_l, max, avg);\n calc_mask_index_l(gfc, max, avg, mask_idx_l);\n /*********************************************************************\n * convolve the partitioned energy and unpredictability with the\n * spreading function, s3_l[b][k]\n ********************************************************************/ var k = 0;\n for(b = 0; b < gfc.npart_l; b++){\n var x, ecb, avg_mask, t;\n /* convolve the partitioned energy with the spreading function */ var kk = gfc.s3ind[b][0];\n var last = gfc.s3ind[b][1];\n var dd = 0, dd_n = 0;\n dd = mask_idx_l[kk];\n dd_n += 1;\n ecb = gfc.s3_ll[k] * eb_l[kk] * tab[mask_idx_l[kk]];\n ++k;\n ++kk;\n while(kk <= last){\n dd += mask_idx_l[kk];\n dd_n += 1;\n x = gfc.s3_ll[k] * eb_l[kk] * tab[mask_idx_l[kk]];\n t = vbrpsy_mask_add(ecb, x, kk - b);\n ecb = t;\n ++k;\n ++kk;\n }\n dd = (1 + 2 * dd) / (2 * dd_n);\n avg_mask = tab[dd] * 0.5;\n ecb *= avg_mask;\n /**** long block pre-echo control ****/ /**\n * <PRE>\n * dont use long block pre-echo control if previous granule was\n * a short block. This is to avoid the situation:\n * frame0: quiet (very low masking)\n * frame1: surge (triggers short blocks)\n * frame2: regular frame. looks like pre-echo when compared to\n * frame0, but all pre-echo was in frame1.\n * </PRE>\n */ /*\n * chn=0,1 L and R channels chn=2,3 S and M channels.\n */ if (gfc.blocktype_old[chn & 0x01] == $cPNKB.SHORT_TYPE) {\n var ecb_limit = rpelev * gfc.nb_1[chn][b];\n if (ecb_limit > 0) thr[b] = Math.min(ecb, ecb_limit);\n else /**\n * <PRE>\n * Robert 071209:\n * Because we don't calculate long block psy when we know a granule\n * should be of short blocks, we don't have any clue how the granule\n * before would have looked like as a long block. So we have to guess\n * a little bit for this END_TYPE block.\n * Most of the time we get away with this sloppyness. (fingers crossed :)\n * The speed increase is worth it.\n * </PRE>\n */ thr[b] = Math.min(ecb, eb_l[b] * NS_PREECHO_ATT2);\n } else {\n var ecb_limit_2 = rpelev2 * gfc.nb_2[chn][b];\n var ecb_limit_1 = rpelev * gfc.nb_1[chn][b];\n var ecb_limit;\n if (ecb_limit_2 <= 0) ecb_limit_2 = ecb;\n if (ecb_limit_1 <= 0) ecb_limit_1 = ecb;\n if (gfc.blocktype_old[chn & 0x01] == $cPNKB.NORM_TYPE) ecb_limit = Math.min(ecb_limit_1, ecb_limit_2);\n else ecb_limit = ecb_limit_1;\n thr[b] = Math.min(ecb, ecb_limit);\n }\n gfc.nb_2[chn][b] = gfc.nb_1[chn][b];\n gfc.nb_1[chn][b] = ecb;\n /*\n * if THR exceeds EB, the quantization routines will take the\n * difference from other bands. in case of strong tonal samples\n * (tonaltest.wav) this leads to heavy distortions. that's why\n * we limit THR here.\n */ x = max[b];\n x *= gfc.minval_l[b];\n x *= avg_mask;\n if (thr[b] > x) thr[b] = x;\n if (gfc.masking_lower > 1) thr[b] *= gfc.masking_lower;\n if (thr[b] > eb_l[b]) thr[b] = eb_l[b];\n if (gfc.masking_lower < 1) thr[b] *= gfc.masking_lower;\n $97f850779472263e$var$assert(thr[b] >= 0);\n }\n for(; b < $cPNKB.CBANDS; ++b){\n eb_l[b] = 0;\n thr[b] = 0;\n }\n }\n function vbrpsy_compute_block_type(gfp, uselongblock) {\n var gfc = gfp.internal_flags;\n if (gfp.short_blocks == $97f850779472263e$var$ShortBlock.short_block_coupled && !(uselongblock[0] != 0 && uselongblock[1] != 0)) uselongblock[0] = uselongblock[1] = 0;\n for(var chn = 0; chn < gfc.channels_out; chn++){\n /* disable short blocks */ if (gfp.short_blocks == $97f850779472263e$var$ShortBlock.short_block_dispensed) uselongblock[chn] = 1;\n if (gfp.short_blocks == $97f850779472263e$var$ShortBlock.short_block_forced) uselongblock[chn] = 0;\n }\n }\n function vbrpsy_apply_block_type(gfp, uselongblock, blocktype_d) {\n var gfc = gfp.internal_flags;\n /*\n * update the blocktype of the previous granule, since it depends on\n * what happend in this granule\n */ for(var chn = 0; chn < gfc.channels_out; chn++){\n var blocktype = $cPNKB.NORM_TYPE;\n /* disable short blocks */ if (uselongblock[chn] != 0) {\n /* no attack : use long blocks */ $97f850779472263e$var$assert(gfc.blocktype_old[chn] != $cPNKB.START_TYPE);\n if (gfc.blocktype_old[chn] == $cPNKB.SHORT_TYPE) blocktype = $cPNKB.STOP_TYPE;\n } else {\n /* attack : use short blocks */ blocktype = $cPNKB.SHORT_TYPE;\n if (gfc.blocktype_old[chn] == $cPNKB.NORM_TYPE) gfc.blocktype_old[chn] = $cPNKB.START_TYPE;\n if (gfc.blocktype_old[chn] == $cPNKB.STOP_TYPE) gfc.blocktype_old[chn] = $cPNKB.SHORT_TYPE;\n }\n blocktype_d[chn] = gfc.blocktype_old[chn];\n // value returned to calling program\n gfc.blocktype_old[chn] = blocktype;\n // save for next call to l3psy_anal\n }\n }\n /**\n * compute M/S thresholds from Johnston & Ferreira 1992 ICASSP paper\n */ function vbrpsy_compute_MS_thresholds(eb, thr, cb_mld, ath_cb, athadjust, msfix, n) {\n var msfix2 = msfix * 2;\n var athlower = msfix > 0 ? Math.pow(10, athadjust) : 1;\n var rside, rmid;\n for(var b = 0; b < n; ++b){\n var ebM = eb[2][b];\n var ebS = eb[3][b];\n var thmL = thr[0][b];\n var thmR = thr[1][b];\n var thmM = thr[2][b];\n var thmS = thr[3][b];\n /* use this fix if L & R masking differs by 2db or less */ if (thmL <= 1.58 * thmR && thmR <= 1.58 * thmL) {\n var mld_m = cb_mld[b] * ebS;\n var mld_s = cb_mld[b] * ebM;\n rmid = Math.max(thmM, Math.min(thmS, mld_m));\n rside = Math.max(thmS, Math.min(thmM, mld_s));\n } else {\n rmid = thmM;\n rside = thmS;\n }\n if (msfix > 0) {\n /***************************************************************/ /* Adjust M/S maskings if user set \"msfix\" */ /***************************************************************/ /* Naoki Shibata 2000 */ var thmLR, thmMS;\n var ath = ath_cb[b] * athlower;\n thmLR = Math.min(Math.max(thmL, ath), Math.max(thmR, ath));\n thmM = Math.max(rmid, ath);\n thmS = Math.max(rside, ath);\n thmMS = thmM + thmS;\n if (thmMS > 0 && thmLR * msfix2 < thmMS) {\n var f = thmLR * msfix2 / thmMS;\n thmM *= f;\n thmS *= f;\n $97f850779472263e$var$assert(thmMS > 0);\n }\n rmid = Math.min(thmM, rmid);\n rside = Math.min(thmS, rside);\n }\n if (rmid > ebM) rmid = ebM;\n if (rside > ebS) rside = ebS;\n thr[2][b] = rmid;\n thr[3][b] = rside;\n }\n }\n this.L3psycho_anal_vbr = function(gfp, buffer, bufPos, gr_out, masking_ratio, masking_MS_ratio, percep_entropy, percep_MS_entropy, energy, blocktype_d) {\n var gfc = gfp.internal_flags;\n /* fft and energy calculation */ var wsamp_l;\n var wsamp_s;\n var fftenergy = $97f850779472263e$var$new_float($cPNKB.HBLKSIZE);\n var fftenergy_s = $97f850779472263e$var$new_float_n([\n 3,\n $cPNKB.HBLKSIZE_s\n ]);\n var wsamp_L = $97f850779472263e$var$new_float_n([\n 2,\n $cPNKB.BLKSIZE\n ]);\n var wsamp_S = $97f850779472263e$var$new_float_n([\n 2,\n 3,\n $cPNKB.BLKSIZE_s\n ]);\n var eb = $97f850779472263e$var$new_float_n([\n 4,\n $cPNKB.CBANDS\n ]), thr = $97f850779472263e$var$new_float_n([\n 4,\n $cPNKB.CBANDS\n ]);\n var sub_short_factor = $97f850779472263e$var$new_float_n([\n 4,\n 3\n ]);\n var pcfact = 0.6;\n /* block type */ var ns_attacks = [\n [\n 0,\n 0,\n 0,\n 0\n ],\n [\n 0,\n 0,\n 0,\n 0\n ],\n [\n 0,\n 0,\n 0,\n 0\n ],\n [\n 0,\n 0,\n 0,\n 0\n ]\n ];\n var uselongblock = $97f850779472263e$var$new_int(2);\n /* usual variables like loop indices, etc.. */ /* chn=2 and 3 = Mid and Side channels */ var n_chn_psy = gfp.mode == MPEGMode.JOINT_STEREO ? 4 : gfc.channels_out;\n vbrpsy_attack_detection(gfp, buffer, bufPos, gr_out, masking_ratio, masking_MS_ratio, energy, sub_short_factor, ns_attacks, uselongblock);\n vbrpsy_compute_block_type(gfp, uselongblock);\n for(var chn = 0; chn < n_chn_psy; chn++){\n var ch01 = chn & 0x01;\n wsamp_l = wsamp_L;\n vbrpsy_compute_fft_l(gfp, buffer, bufPos, chn, gr_out, fftenergy, wsamp_l, ch01);\n vbrpsy_compute_loudness_approximation_l(gfp, gr_out, chn, fftenergy);\n if (uselongblock[ch01] != 0) vbrpsy_compute_masking_l(gfc, fftenergy, eb[chn], thr[chn], chn);\n else vbrpsy_skip_masking_l(gfc, chn);\n }\n if (uselongblock[0] + uselongblock[1] == 2) /* M/S channel */ {\n if (gfp.mode == MPEGMode.JOINT_STEREO) vbrpsy_compute_MS_thresholds(eb, thr, gfc.mld_cb_l, gfc.ATH.cb_l, gfp.ATHlower * gfc.ATH.adjust, gfp.msfix, gfc.npart_l);\n }\n /* TODO: apply adaptive ATH masking here ?? */ for(var chn = 0; chn < n_chn_psy; chn++){\n var ch01 = chn & 0x01;\n if (uselongblock[ch01] != 0) convert_partition2scalefac_l(gfc, eb[chn], thr[chn], chn);\n }\n for(var sblock = 0; sblock < 3; sblock++){\n for(var chn = 0; chn < n_chn_psy; ++chn){\n var ch01 = chn & 0x01;\n if (uselongblock[ch01] != 0) vbrpsy_skip_masking_s(gfc, chn, sblock);\n else {\n /* compute masking thresholds for short blocks */ wsamp_s = wsamp_S;\n vbrpsy_compute_fft_s(gfp, buffer, bufPos, chn, sblock, fftenergy_s, wsamp_s, ch01);\n vbrpsy_compute_masking_s(gfp, fftenergy_s, eb[chn], thr[chn], chn, sblock);\n }\n }\n if (uselongblock[0] + uselongblock[1] == 0) /* M/S channel */ {\n if (gfp.mode == MPEGMode.JOINT_STEREO) vbrpsy_compute_MS_thresholds(eb, thr, gfc.mld_cb_s, gfc.ATH.cb_s, gfp.ATHlower * gfc.ATH.adjust, gfp.msfix, gfc.npart_s);\n }\n /* TODO: apply adaptive ATH masking here ?? */ for(var chn = 0; chn < n_chn_psy; ++chn){\n var ch01 = chn & 0x01;\n if (0 == uselongblock[ch01]) convert_partition2scalefac_s(gfc, eb[chn], thr[chn], chn, sblock);\n }\n }\n /**** short block pre-echo control ****/ for(var chn = 0; chn < n_chn_psy; chn++){\n var ch01 = chn & 0x01;\n if (uselongblock[ch01] != 0) continue;\n for(var sb = 0; sb < $cPNKB.SBMAX_s; sb++){\n var new_thmm = $97f850779472263e$var$new_float(3);\n for(var sblock = 0; sblock < 3; sblock++){\n var thmm = gfc.thm[chn].s[sb][sblock];\n thmm *= NS_PREECHO_ATT0;\n if (ns_attacks[chn][sblock] >= 2 || ns_attacks[chn][sblock + 1] == 1) {\n var idx = sblock != 0 ? sblock - 1 : 2;\n var p = NS_INTERP(gfc.thm[chn].s[sb][idx], thmm, NS_PREECHO_ATT1 * pcfact);\n thmm = Math.min(thmm, p);\n } else if (ns_attacks[chn][sblock] == 1) {\n var idx = sblock != 0 ? sblock - 1 : 2;\n var p = NS_INTERP(gfc.thm[chn].s[sb][idx], thmm, NS_PREECHO_ATT2 * pcfact);\n thmm = Math.min(thmm, p);\n } else if (sblock != 0 && ns_attacks[chn][sblock - 1] == 3 || sblock == 0 && gfc.nsPsy.lastAttacks[chn] == 3) {\n var idx = sblock != 2 ? sblock + 1 : 0;\n var p = NS_INTERP(gfc.thm[chn].s[sb][idx], thmm, NS_PREECHO_ATT2 * pcfact);\n thmm = Math.min(thmm, p);\n }\n /* pulse like signal detection for fatboy.wav and so on */ thmm *= sub_short_factor[chn][sblock];\n new_thmm[sblock] = thmm;\n }\n for(var sblock = 0; sblock < 3; sblock++)gfc.thm[chn].s[sb][sblock] = new_thmm[sblock];\n }\n }\n for(var chn = 0; chn < n_chn_psy; chn++)gfc.nsPsy.lastAttacks[chn] = ns_attacks[chn][2];\n /***************************************************************\n * determine final block type\n ***************************************************************/ vbrpsy_apply_block_type(gfp, uselongblock, blocktype_d);\n /*********************************************************************\n * compute the value of PE to return ... no delay and advance\n *********************************************************************/ for(var chn = 0; chn < n_chn_psy; chn++){\n var ppe;\n var ppePos;\n var type;\n var mr;\n if (chn > 1) {\n ppe = percep_MS_entropy;\n ppePos = -2;\n type = $cPNKB.NORM_TYPE;\n if (blocktype_d[0] == $cPNKB.SHORT_TYPE || blocktype_d[1] == $cPNKB.SHORT_TYPE) type = $cPNKB.SHORT_TYPE;\n mr = masking_MS_ratio[gr_out][chn - 2];\n } else {\n ppe = percep_entropy;\n ppePos = 0;\n type = blocktype_d[chn];\n mr = masking_ratio[gr_out][chn];\n }\n if (type == $cPNKB.SHORT_TYPE) ppe[ppePos + chn] = pecalc_s(mr, gfc.masking_lower);\n else ppe[ppePos + chn] = pecalc_l(mr, gfc.masking_lower);\n if (gfp.analysis) gfc.pinfo.pe[gr_out][chn] = ppe[ppePos + chn];\n }\n return 0;\n };\n function s3_func_x(bark, hf_slope) {\n var tempx = bark, tempy;\n if (tempx >= 0) tempy = -tempx * 27;\n else tempy = tempx * hf_slope;\n if (tempy <= -72) return 0;\n return Math.exp(tempy * LN_TO_LOG10);\n }\n function norm_s3_func_x(hf_slope) {\n var lim_a = 0, lim_b = 0;\n var x = 0, l, h;\n for(x = 0; s3_func_x(x, hf_slope) > 1e-20; x -= 1);\n l = x;\n h = 0;\n while(Math.abs(h - l) > 1e-12){\n x = (h + l) / 2;\n if (s3_func_x(x, hf_slope) > 0) h = x;\n else l = x;\n }\n lim_a = l;\n var x = 0, l, h;\n for(x = 0; s3_func_x(x, hf_slope) > 1e-20; x += 1);\n l = 0;\n h = x;\n while(Math.abs(h - l) > 1e-12){\n x = (h + l) / 2;\n if (s3_func_x(x, hf_slope) > 0) l = x;\n else h = x;\n }\n lim_b = h;\n var sum = 0;\n var m = 1000;\n var i;\n for(i = 0; i <= m; ++i){\n var x = lim_a + i * (lim_b - lim_a) / m;\n var y = s3_func_x(x, hf_slope);\n sum += y;\n }\n var norm = (m + 1) / (sum * (lim_b - lim_a));\n /* printf( \"norm = %lf\\n\",norm); */ return norm;\n }\n /**\n * The spreading function. Values returned in units of energy\n */ function s3_func(bark) {\n var tempx, x, tempy, temp;\n tempx = bark;\n if (tempx >= 0) tempx *= 3;\n else tempx *= 1.5;\n if (tempx >= 0.5 && tempx <= 2.5) {\n temp = tempx - 0.5;\n x = 8.0 * (temp * temp - 2.0 * temp);\n } else x = 0.0;\n tempx += 0.474;\n tempy = 15.811389 + 7.5 * tempx - 17.5 * Math.sqrt(1.0 + tempx * tempx);\n if (tempy <= -60) return 0.0;\n tempx = Math.exp((x + tempy) * LN_TO_LOG10);\n /**\n * <PRE>\n * Normalization. The spreading function should be normalized so that:\n * +inf\n * /\n * | s3 [ bark ] d(bark) = 1\n * /\n * -inf\n * </PRE>\n */ tempx /= .6609193;\n return tempx;\n }\n /**\n * see for example \"Zwicker: Psychoakustik, 1982; ISBN 3-540-11401-7\n */ function freq2bark(freq) {\n /* input: freq in hz output: barks */ if (freq < 0) freq = 0;\n freq = freq * 0.001;\n return 13.0 * Math.atan(.76 * freq) + 3.5 * Math.atan(freq * freq / 56.25);\n }\n function init_numline(numlines, bo, bm, bval, bval_width, mld, bo_w, sfreq, blksize, scalepos, deltafreq, sbmax) {\n var b_frq = $97f850779472263e$var$new_float($cPNKB.CBANDS + 1);\n var sample_freq_frac = sfreq / (sbmax > 15 ? 1152 : 384);\n var partition = $97f850779472263e$var$new_int($cPNKB.HBLKSIZE);\n var i;\n sfreq /= blksize;\n var j = 0;\n var ni = 0;\n /* compute numlines, the number of spectral lines in each partition band */ /* each partition band should be about DELBARK wide. */ for(i = 0; i < $cPNKB.CBANDS; i++){\n var bark1;\n var j2;\n bark1 = freq2bark(sfreq * j);\n b_frq[i] = sfreq * j;\n for(j2 = j; freq2bark(sfreq * j2) - bark1 < DELBARK && j2 <= blksize / 2; j2++);\n numlines[i] = j2 - j;\n ni = i + 1;\n while(j < j2){\n $97f850779472263e$var$assert(j < $cPNKB.HBLKSIZE);\n partition[j++] = i;\n }\n if (j > blksize / 2) {\n j = blksize / 2;\n ++i;\n break;\n }\n }\n $97f850779472263e$var$assert(i < $cPNKB.CBANDS);\n b_frq[i] = sfreq * j;\n for(var sfb = 0; sfb < sbmax; sfb++){\n var i1, i2, start, end;\n var arg;\n start = scalepos[sfb];\n end = scalepos[sfb + 1];\n i1 = 0 | Math.floor(.5 + deltafreq * (start - .5));\n if (i1 < 0) i1 = 0;\n i2 = 0 | Math.floor(.5 + deltafreq * (end - .5));\n if (i2 > blksize / 2) i2 = blksize / 2;\n bm[sfb] = (partition[i1] + partition[i2]) / 2;\n bo[sfb] = partition[i2];\n var f_tmp = sample_freq_frac * end;\n /*\n * calculate how much of this band belongs to current scalefactor\n * band\n */ bo_w[sfb] = (f_tmp - b_frq[bo[sfb]]) / (b_frq[bo[sfb] + 1] - b_frq[bo[sfb]]);\n if (bo_w[sfb] < 0) bo_w[sfb] = 0;\n else if (bo_w[sfb] > 1) bo_w[sfb] = 1;\n /* setup stereo demasking thresholds */ /* formula reverse enginerred from plot in paper */ arg = freq2bark(sfreq * scalepos[sfb] * deltafreq);\n arg = Math.min(arg, 15.5) / 15.5;\n mld[sfb] = Math.pow(10.0, 1.25 * (1 - Math.cos(Math.PI * arg)) - 2.5);\n }\n /* compute bark values of each critical band */ j = 0;\n for(var k = 0; k < ni; k++){\n var w = numlines[k];\n var bark1, bark2;\n bark1 = freq2bark(sfreq * j);\n bark2 = freq2bark(sfreq * (j + w - 1));\n bval[k] = .5 * (bark1 + bark2);\n bark1 = freq2bark(sfreq * (j - .5));\n bark2 = freq2bark(sfreq * (j + w - .5));\n bval_width[k] = bark2 - bark1;\n j += w;\n }\n return ni;\n }\n function init_s3_values(s3ind, npart, bval, bval_width, norm, use_old_s3) {\n var s3 = $97f850779472263e$var$new_float_n([\n $cPNKB.CBANDS,\n $cPNKB.CBANDS\n ]);\n /*\n * The s3 array is not linear in the bark scale.\n *\n * bval[x] should be used to get the bark value.\n */ var j;\n var numberOfNoneZero = 0;\n /**\n * <PRE>\n * s[i][j], the value of the spreading function,\n * centered at band j (masker), for band i (maskee)\n *\n * i.e.: sum over j to spread into signal barkval=i\n * NOTE: i and j are used opposite as in the ISO docs\n * </PRE>\n */ if (use_old_s3) {\n for(var i = 0; i < npart; i++)for(j = 0; j < npart; j++){\n var v = s3_func(bval[i] - bval[j]) * bval_width[j];\n s3[i][j] = v * norm[i];\n }\n } else for(j = 0; j < npart; j++){\n var hf_slope = 15 + Math.min(21 / bval[j], 12);\n var s3_x_norm = norm_s3_func_x(hf_slope);\n for(var i = 0; i < npart; i++){\n var v = s3_x_norm * s3_func_x(bval[i] - bval[j], hf_slope) * bval_width[j];\n s3[i][j] = v * norm[i];\n }\n }\n for(var i = 0; i < npart; i++){\n for(j = 0; j < npart; j++){\n if (s3[i][j] > 0.0) break;\n }\n s3ind[i][0] = j;\n for(j = npart - 1; j > 0; j--){\n if (s3[i][j] > 0.0) break;\n }\n s3ind[i][1] = j;\n numberOfNoneZero += s3ind[i][1] - s3ind[i][0] + 1;\n }\n var p = $97f850779472263e$var$new_float(numberOfNoneZero);\n var k = 0;\n for(var i = 0; i < npart; i++)for(j = s3ind[i][0]; j <= s3ind[i][1]; j++)p[k++] = s3[i][j];\n return p;\n }\n function stereo_demask(f) {\n /* setup stereo demasking thresholds */ /* formula reverse enginerred from plot in paper */ var arg = freq2bark(f);\n arg = Math.min(arg, 15.5) / 15.5;\n return Math.pow(10.0, 1.25 * (1 - Math.cos(Math.PI * arg)) - 2.5);\n }\n /**\n * NOTE: the bitrate reduction from the inter-channel masking effect is low\n * compared to the chance of getting annyoing artefacts. L3psycho_anal_vbr\n * does not use this feature. (Robert 071216)\n */ this.psymodel_init = function(gfp) {\n var gfc = gfp.internal_flags;\n var i;\n var useOldS3 = true;\n var bvl_a = 13, bvl_b = 24;\n var snr_l_a = 0, snr_l_b = 0;\n var snr_s_a = -8.25, snr_s_b = -4.5;\n var bval = $97f850779472263e$var$new_float($cPNKB.CBANDS);\n var bval_width = $97f850779472263e$var$new_float($cPNKB.CBANDS);\n var norm = $97f850779472263e$var$new_float($cPNKB.CBANDS);\n var sfreq = gfp.out_samplerate;\n switch(gfp.experimentalZ){\n default:\n case 0:\n useOldS3 = true;\n break;\n case 1:\n useOldS3 = gfp.VBR == $97f850779472263e$var$VbrMode.vbr_mtrh || gfp.VBR == $97f850779472263e$var$VbrMode.vbr_mt ? false : true;\n break;\n case 2:\n useOldS3 = false;\n break;\n case 3:\n bvl_a = 8;\n snr_l_a = -1.75;\n snr_l_b = -0.0125;\n snr_s_a = -8.25;\n snr_s_b = -2.25;\n break;\n }\n gfc.ms_ener_ratio_old = .25;\n gfc.blocktype_old[0] = gfc.blocktype_old[1] = $cPNKB.NORM_TYPE;\n // the vbr header is long blocks\n for(i = 0; i < 4; ++i){\n for(var j = 0; j < $cPNKB.CBANDS; ++j){\n gfc.nb_1[i][j] = 1e20;\n gfc.nb_2[i][j] = 1e20;\n gfc.nb_s1[i][j] = gfc.nb_s2[i][j] = 1.0;\n }\n for(var sb = 0; sb < $cPNKB.SBMAX_l; sb++){\n gfc.en[i].l[sb] = 1e20;\n gfc.thm[i].l[sb] = 1e20;\n }\n for(var j = 0; j < 3; ++j){\n for(var sb = 0; sb < $cPNKB.SBMAX_s; sb++){\n gfc.en[i].s[sb][j] = 1e20;\n gfc.thm[i].s[sb][j] = 1e20;\n }\n gfc.nsPsy.lastAttacks[i] = 0;\n }\n for(var j = 0; j < 9; j++)gfc.nsPsy.last_en_subshort[i][j] = 10.;\n }\n /* init. for loudness approx. -jd 2001 mar 27 */ gfc.loudness_sq_save[0] = gfc.loudness_sq_save[1] = 0.0;\n /*************************************************************************\n * now compute the psychoacoustic model specific constants\n ************************************************************************/ /* compute numlines, bo, bm, bval, bval_width, mld */ gfc.npart_l = init_numline(gfc.numlines_l, gfc.bo_l, gfc.bm_l, bval, bval_width, gfc.mld_l, gfc.PSY.bo_l_weight, sfreq, $cPNKB.BLKSIZE, gfc.scalefac_band.l, $cPNKB.BLKSIZE / 1152, $cPNKB.SBMAX_l);\n $97f850779472263e$var$assert(gfc.npart_l < $cPNKB.CBANDS);\n /* compute the spreading function */ for(i = 0; i < gfc.npart_l; i++){\n var snr = snr_l_a;\n if (bval[i] >= bvl_a) snr = snr_l_b * (bval[i] - bvl_a) / (bvl_b - bvl_a) + snr_l_a * (bvl_b - bval[i]) / (bvl_b - bvl_a);\n norm[i] = Math.pow(10.0, snr / 10.0);\n if (gfc.numlines_l[i] > 0) gfc.rnumlines_l[i] = 1.0 / gfc.numlines_l[i];\n else gfc.rnumlines_l[i] = 0;\n }\n gfc.s3_ll = init_s3_values(gfc.s3ind, gfc.npart_l, bval, bval_width, norm, useOldS3);\n /* compute long block specific values, ATH and MINVAL */ var j = 0;\n for(i = 0; i < gfc.npart_l; i++){\n var x;\n /* ATH */ x = $97f850779472263e$var$Float.MAX_VALUE;\n for(var k = 0; k < gfc.numlines_l[i]; k++, j++){\n var freq = sfreq * j / (1000.0 * $cPNKB.BLKSIZE);\n var level;\n /*\n * ATH below 100 Hz constant, not further climbing\n */ level = this.ATHformula(freq * 1000, gfp) - 20;\n // scale to FFT units; returned value is in dB\n level = Math.pow(10., 0.1 * level);\n // convert from dB . energy\n level *= gfc.numlines_l[i];\n if (x > level) x = level;\n }\n gfc.ATH.cb_l[i] = x;\n /*\n * MINVAL. For low freq, the strength of the masking is limited by\n * minval this is an ISO MPEG1 thing, dont know if it is really\n * needed\n */ /*\n * FIXME: it does work to reduce low-freq problems in S53-Wind-Sax\n * and lead-voice samples, but introduces some 3 kbps bit bloat too.\n * TODO: Further refinement of the shape of this hack.\n */ x = -20 + bval[i] * 20 / 10;\n if (x > 6) x = 100;\n if (x < -15) x = -15;\n x -= 8.;\n gfc.minval_l[i] = Math.pow(10.0, x / 10.) * gfc.numlines_l[i];\n }\n /************************************************************************\n * do the same things for short blocks\n ************************************************************************/ gfc.npart_s = init_numline(gfc.numlines_s, gfc.bo_s, gfc.bm_s, bval, bval_width, gfc.mld_s, gfc.PSY.bo_s_weight, sfreq, $cPNKB.BLKSIZE_s, gfc.scalefac_band.s, $cPNKB.BLKSIZE_s / 384, $cPNKB.SBMAX_s);\n $97f850779472263e$var$assert(gfc.npart_s < $cPNKB.CBANDS);\n /* SNR formula. short block is normalized by SNR. is it still right ? */ j = 0;\n for(i = 0; i < gfc.npart_s; i++){\n var x;\n var snr = snr_s_a;\n if (bval[i] >= bvl_a) snr = snr_s_b * (bval[i] - bvl_a) / (bvl_b - bvl_a) + snr_s_a * (bvl_b - bval[i]) / (bvl_b - bvl_a);\n norm[i] = Math.pow(10.0, snr / 10.0);\n /* ATH */ x = $97f850779472263e$var$Float.MAX_VALUE;\n for(var k = 0; k < gfc.numlines_s[i]; k++, j++){\n var freq = sfreq * j / (1000.0 * $cPNKB.BLKSIZE_s);\n var level;\n /* freq = Min(.1,freq); */ /*\n * ATH below 100 Hz constant, not\n * further climbing\n */ level = this.ATHformula(freq * 1000, gfp) - 20;\n // scale to FFT units; returned value is in dB\n level = Math.pow(10., 0.1 * level);\n // convert from dB . energy\n level *= gfc.numlines_s[i];\n if (x > level) x = level;\n }\n gfc.ATH.cb_s[i] = x;\n /*\n * MINVAL. For low freq, the strength of the masking is limited by\n * minval this is an ISO MPEG1 thing, dont know if it is really\n * needed\n */ x = -7 + bval[i] * 7.0 / 12.0;\n if (bval[i] > 12) x *= 1 + Math.log(1 + x) * 3.1;\n if (bval[i] < 12) x *= 1 + Math.log(1 - x) * 2.3;\n if (x < -15) x = -15;\n x -= 8;\n gfc.minval_s[i] = Math.pow(10.0, x / 10) * gfc.numlines_s[i];\n }\n gfc.s3_ss = init_s3_values(gfc.s3ind_s, gfc.npart_s, bval, bval_width, norm, useOldS3);\n init_mask_add_max_values();\n fft.init_fft(gfc);\n /* setup temporal masking */ gfc.decay = Math.exp(-1 * LOG10 / (temporalmask_sustain_sec * sfreq / 192.0));\n var msfix;\n msfix = NS_MSFIX;\n if ((gfp.exp_nspsytune & 2) != 0) msfix = 1.0;\n if (Math.abs(gfp.msfix) > 0.0) msfix = gfp.msfix;\n gfp.msfix = msfix;\n /*\n * spread only from npart_l bands. Normally, we use the spreading\n * function to convolve from npart_l down to npart_l bands\n */ for(var b = 0; b < gfc.npart_l; b++)if (gfc.s3ind[b][1] > gfc.npart_l - 1) gfc.s3ind[b][1] = gfc.npart_l - 1;\n /*\n * prepare for ATH auto adjustment: we want to decrease the ATH by 12 dB\n * per second\n */ var frame_duration = 576. * gfc.mode_gr / sfreq;\n gfc.ATH.decay = Math.pow(10., -1.2 * frame_duration);\n gfc.ATH.adjust = 0.01;\n /* minimum, for leading low loudness */ gfc.ATH.adjustLimit = 1.0;\n /* on lead, allow adjust up to maximum */ $97f850779472263e$var$assert(gfc.bo_l[$cPNKB.SBMAX_l - 1] <= gfc.npart_l);\n $97f850779472263e$var$assert(gfc.bo_s[$cPNKB.SBMAX_s - 1] <= gfc.npart_s);\n if (gfp.ATHtype != -1) {\n /* compute equal loudness weights (eql_w) */ var freq;\n var freq_inc = gfp.out_samplerate / $cPNKB.BLKSIZE;\n var eql_balance = 0.0;\n freq = 0.0;\n for(i = 0; i < $cPNKB.BLKSIZE / 2; ++i){\n /* convert ATH dB to relative power (not dB) */ /* to determine eql_w */ freq += freq_inc;\n gfc.ATH.eql_w[i] = 1. / Math.pow(10, this.ATHformula(freq, gfp) / 10);\n eql_balance += gfc.ATH.eql_w[i];\n }\n eql_balance = 1.0 / eql_balance;\n for(i = $cPNKB.BLKSIZE / 2; --i >= 0;)gfc.ATH.eql_w[i] *= eql_balance;\n }\n for(var b = j = 0; b < gfc.npart_s; ++b)for(i = 0; i < gfc.numlines_s[b]; ++i)++j;\n $97f850779472263e$var$assert(j == 129);\n for(var b = j = 0; b < gfc.npart_l; ++b)for(i = 0; i < gfc.numlines_l[b]; ++i)++j;\n $97f850779472263e$var$assert(j == 513);\n j = 0;\n for(i = 0; i < gfc.npart_l; i++){\n var freq = sfreq * (j + gfc.numlines_l[i] / 2) / (1.0 * $cPNKB.BLKSIZE);\n gfc.mld_cb_l[i] = stereo_demask(freq);\n j += gfc.numlines_l[i];\n }\n for(; i < $cPNKB.CBANDS; ++i)gfc.mld_cb_l[i] = 1;\n j = 0;\n for(i = 0; i < gfc.npart_s; i++){\n var freq = sfreq * (j + gfc.numlines_s[i] / 2) / (1.0 * $cPNKB.BLKSIZE_s);\n gfc.mld_cb_s[i] = stereo_demask(freq);\n j += gfc.numlines_s[i];\n }\n for(; i < $cPNKB.CBANDS; ++i)gfc.mld_cb_s[i] = 1;\n return 0;\n };\n /**\n * Those ATH formulas are returning their minimum value for input = -1\n */ function ATHformula_GB(f, value) {\n /**\n * <PRE>\n * from Painter & Spanias\n * modified by Gabriel Bouvigne to better fit the reality\n * ath = 3.640 * pow(f,-0.8)\n * - 6.800 * exp(-0.6*pow(f-3.4,2.0))\n * + 6.000 * exp(-0.15*pow(f-8.7,2.0))\n * + 0.6* 0.001 * pow(f,4.0);\n *\n *\n * In the past LAME was using the Painter &Spanias formula.\n * But we had some recurrent problems with HF content.\n * We measured real ATH values, and found the older formula\n * to be inaccurate in the higher part. So we made this new\n * formula and this solved most of HF problematic test cases.\n * The tradeoff is that in VBR mode it increases a lot the\n * bitrate.\n * </PRE>\n */ /*\n * This curve can be adjusted according to the VBR scale: it adjusts\n * from something close to Painter & Spanias on V9 up to Bouvigne's\n * formula for V0. This way the VBR bitrate is more balanced according\n * to the -V value.\n */ // the following Hack allows to ask for the lowest value\n if (f < -0.3) f = 3410;\n // convert to khz\n f /= 1000;\n f = Math.max(0.1, f);\n var ath = 3.640 * Math.pow(f, -0.8) - 6.800 * Math.exp(-0.6 * Math.pow(f - 3.4, 2.0)) + 6.000 * Math.exp(-0.15 * Math.pow(f - 8.7, 2.0)) + (0.6 + 0.04 * value) * 0.001 * Math.pow(f, 4.0);\n return ath;\n }\n this.ATHformula = function(f, gfp) {\n var ath;\n switch(gfp.ATHtype){\n case 0:\n ath = ATHformula_GB(f, 9);\n break;\n case 1:\n // over sensitive, should probably be removed\n ath = ATHformula_GB(f, -1);\n break;\n case 2:\n ath = ATHformula_GB(f, 0);\n break;\n case 3:\n // modification of GB formula by Roel\n ath = ATHformula_GB(f, 1) + 6;\n break;\n case 4:\n ath = ATHformula_GB(f, gfp.ATHcurve);\n break;\n default:\n ath = ATHformula_GB(f, 0);\n break;\n }\n return ath;\n };\n}\nmodule.exports = $97f850779472263e$var$PsyModel;\n\n});\nparcelRequire.register(\"2g11P\", function(module, exports) {\n\nvar $3YDN3 = parcelRequire(\"3YDN3\");\nvar $1a4ddf9b01454eb6$var$System = $3YDN3.System;\nvar $1a4ddf9b01454eb6$var$VbrMode = $3YDN3.VbrMode;\nvar $1a4ddf9b01454eb6$var$Float = $3YDN3.Float;\nvar $1a4ddf9b01454eb6$var$ShortBlock = $3YDN3.ShortBlock;\nvar $1a4ddf9b01454eb6$var$Util = $3YDN3.Util;\nvar $1a4ddf9b01454eb6$var$Arrays = $3YDN3.Arrays;\nvar $1a4ddf9b01454eb6$var$new_array_n = $3YDN3.new_array_n;\nvar $1a4ddf9b01454eb6$var$new_byte = $3YDN3.new_byte;\nvar $1a4ddf9b01454eb6$var$new_double = $3YDN3.new_double;\nvar $1a4ddf9b01454eb6$var$new_float = $3YDN3.new_float;\nvar $1a4ddf9b01454eb6$var$new_float_n = $3YDN3.new_float_n;\nvar $1a4ddf9b01454eb6$var$new_int = $3YDN3.new_int;\nvar $1a4ddf9b01454eb6$var$new_int_n = $3YDN3.new_int_n;\nvar $1a4ddf9b01454eb6$var$assert = $3YDN3.assert;\n\nvar $cPNKB = parcelRequire(\"cPNKB\");\nfunction $1a4ddf9b01454eb6$var$FFT() {\n var window = $1a4ddf9b01454eb6$var$new_float($cPNKB.BLKSIZE);\n var window_s = $1a4ddf9b01454eb6$var$new_float($cPNKB.BLKSIZE_s / 2);\n var costab = [\n 9.238795325112867e-01,\n 3.826834323650898e-01,\n 9.951847266721969e-01,\n 9.801714032956060e-02,\n 9.996988186962042e-01,\n 2.454122852291229e-02,\n 9.999811752826011e-01,\n 6.135884649154475e-03\n ];\n function fht(fz, fzPos, n) {\n var tri = 0;\n var k4;\n var fi;\n var gi;\n n <<= 1;\n /* to get BLKSIZE, because of 3DNow! ASM routine */ var fn = fzPos + n;\n k4 = 4;\n do {\n var s1, c1;\n var i, k1, k2, k3, kx;\n kx = k4 >> 1;\n k1 = k4;\n k2 = k4 << 1;\n k3 = k2 + k1;\n k4 = k2 << 1;\n fi = fzPos;\n gi = fi + kx;\n do {\n var f0, f1, f2, f3;\n f1 = fz[fi + 0] - fz[fi + k1];\n f0 = fz[fi + 0] + fz[fi + k1];\n f3 = fz[fi + k2] - fz[fi + k3];\n f2 = fz[fi + k2] + fz[fi + k3];\n fz[fi + k2] = f0 - f2;\n fz[fi + 0] = f0 + f2;\n fz[fi + k3] = f1 - f3;\n fz[fi + k1] = f1 + f3;\n f1 = fz[gi + 0] - fz[gi + k1];\n f0 = fz[gi + 0] + fz[gi + k1];\n f3 = $1a4ddf9b01454eb6$var$Util.SQRT2 * fz[gi + k3];\n f2 = $1a4ddf9b01454eb6$var$Util.SQRT2 * fz[gi + k2];\n fz[gi + k2] = f0 - f2;\n fz[gi + 0] = f0 + f2;\n fz[gi + k3] = f1 - f3;\n fz[gi + k1] = f1 + f3;\n gi += k4;\n fi += k4;\n }while (fi < fn);\n c1 = costab[tri + 0];\n s1 = costab[tri + 1];\n for(i = 1; i < kx; i++){\n var c2, s2;\n c2 = 1 - 2 * s1 * s1;\n s2 = 2 * s1 * c1;\n fi = fzPos + i;\n gi = fzPos + k1 - i;\n do {\n var a, b, g0, f0, f1, g1, f2, g2, f3, g3;\n b = s2 * fz[fi + k1] - c2 * fz[gi + k1];\n a = c2 * fz[fi + k1] + s2 * fz[gi + k1];\n f1 = fz[fi + 0] - a;\n f0 = fz[fi + 0] + a;\n g1 = fz[gi + 0] - b;\n g0 = fz[gi + 0] + b;\n b = s2 * fz[fi + k3] - c2 * fz[gi + k3];\n a = c2 * fz[fi + k3] + s2 * fz[gi + k3];\n f3 = fz[fi + k2] - a;\n f2 = fz[fi + k2] + a;\n g3 = fz[gi + k2] - b;\n g2 = fz[gi + k2] + b;\n b = s1 * f2 - c1 * g3;\n a = c1 * f2 + s1 * g3;\n fz[fi + k2] = f0 - a;\n fz[fi + 0] = f0 + a;\n fz[gi + k3] = g1 - b;\n fz[gi + k1] = g1 + b;\n b = c1 * g2 - s1 * f3;\n a = s1 * g2 + c1 * f3;\n fz[gi + k2] = g0 - a;\n fz[gi + 0] = g0 + a;\n fz[fi + k3] = f1 - b;\n fz[fi + k1] = f1 + b;\n gi += k4;\n fi += k4;\n }while (fi < fn);\n c2 = c1;\n c1 = c2 * costab[tri + 0] - s1 * costab[tri + 1];\n s1 = c2 * costab[tri + 1] + s1 * costab[tri + 0];\n }\n tri += 2;\n }while (k4 < n);\n }\n var rv_tbl = [\n 0x00,\n 0x80,\n 0x40,\n 0xc0,\n 0x20,\n 0xa0,\n 0x60,\n 0xe0,\n 0x10,\n 0x90,\n 0x50,\n 0xd0,\n 0x30,\n 0xb0,\n 0x70,\n 0xf0,\n 0x08,\n 0x88,\n 0x48,\n 0xc8,\n 0x28,\n 0xa8,\n 0x68,\n 0xe8,\n 0x18,\n 0x98,\n 0x58,\n 0xd8,\n 0x38,\n 0xb8,\n 0x78,\n 0xf8,\n 0x04,\n 0x84,\n 0x44,\n 0xc4,\n 0x24,\n 0xa4,\n 0x64,\n 0xe4,\n 0x14,\n 0x94,\n 0x54,\n 0xd4,\n 0x34,\n 0xb4,\n 0x74,\n 0xf4,\n 0x0c,\n 0x8c,\n 0x4c,\n 0xcc,\n 0x2c,\n 0xac,\n 0x6c,\n 0xec,\n 0x1c,\n 0x9c,\n 0x5c,\n 0xdc,\n 0x3c,\n 0xbc,\n 0x7c,\n 0xfc,\n 0x02,\n 0x82,\n 0x42,\n 0xc2,\n 0x22,\n 0xa2,\n 0x62,\n 0xe2,\n 0x12,\n 0x92,\n 0x52,\n 0xd2,\n 0x32,\n 0xb2,\n 0x72,\n 0xf2,\n 0x0a,\n 0x8a,\n 0x4a,\n 0xca,\n 0x2a,\n 0xaa,\n 0x6a,\n 0xea,\n 0x1a,\n 0x9a,\n 0x5a,\n 0xda,\n 0x3a,\n 0xba,\n 0x7a,\n 0xfa,\n 0x06,\n 0x86,\n 0x46,\n 0xc6,\n 0x26,\n 0xa6,\n 0x66,\n 0xe6,\n 0x16,\n 0x96,\n 0x56,\n 0xd6,\n 0x36,\n 0xb6,\n 0x76,\n 0xf6,\n 0x0e,\n 0x8e,\n 0x4e,\n 0xce,\n 0x2e,\n 0xae,\n 0x6e,\n 0xee,\n 0x1e,\n 0x9e,\n 0x5e,\n 0xde,\n 0x3e,\n 0xbe,\n 0x7e,\n 0xfe\n ];\n this.fft_short = function(gfc, x_real, chn, buffer, bufPos) {\n for(var b = 0; b < 3; b++){\n var x = $cPNKB.BLKSIZE_s / 2;\n var k = 0xffff & 192 * (b + 1);\n var j = $cPNKB.BLKSIZE_s / 8 - 1;\n do {\n var f0, f1, f2, f3, w;\n var i = rv_tbl[j << 2] & 0xff;\n f0 = window_s[i] * buffer[chn][bufPos + i + k];\n w = window_s[0x7f - i] * buffer[chn][bufPos + i + k + 0x80];\n f1 = f0 - w;\n f0 = f0 + w;\n f2 = window_s[i + 0x40] * buffer[chn][bufPos + i + k + 0x40];\n w = window_s[0x3f - i] * buffer[chn][bufPos + i + k + 0xc0];\n f3 = f2 - w;\n f2 = f2 + w;\n x -= 4;\n x_real[b][x + 0] = f0 + f2;\n x_real[b][x + 2] = f0 - f2;\n x_real[b][x + 1] = f1 + f3;\n x_real[b][x + 3] = f1 - f3;\n f0 = window_s[i + 0x01] * buffer[chn][bufPos + i + k + 0x01];\n w = window_s[0x7e - i] * buffer[chn][bufPos + i + k + 0x81];\n f1 = f0 - w;\n f0 = f0 + w;\n f2 = window_s[i + 0x41] * buffer[chn][bufPos + i + k + 0x41];\n w = window_s[0x3e - i] * buffer[chn][bufPos + i + k + 0xc1];\n f3 = f2 - w;\n f2 = f2 + w;\n x_real[b][x + $cPNKB.BLKSIZE_s / 2 + 0] = f0 + f2;\n x_real[b][x + $cPNKB.BLKSIZE_s / 2 + 2] = f0 - f2;\n x_real[b][x + $cPNKB.BLKSIZE_s / 2 + 1] = f1 + f3;\n x_real[b][x + $cPNKB.BLKSIZE_s / 2 + 3] = f1 - f3;\n }while (--j >= 0);\n fht(x_real[b], x, $cPNKB.BLKSIZE_s / 2);\n /* BLKSIZE_s/2 because of 3DNow! ASM routine */ /* BLKSIZE/2 because of 3DNow! ASM routine */ }\n };\n this.fft_long = function(gfc, y, chn, buffer, bufPos) {\n var jj = $cPNKB.BLKSIZE / 8 - 1;\n var x = $cPNKB.BLKSIZE / 2;\n do {\n var f0, f1, f2, f3, w;\n var i = rv_tbl[jj] & 0xff;\n f0 = window[i] * buffer[chn][bufPos + i];\n w = window[i + 0x200] * buffer[chn][bufPos + i + 0x200];\n f1 = f0 - w;\n f0 = f0 + w;\n f2 = window[i + 0x100] * buffer[chn][bufPos + i + 0x100];\n w = window[i + 0x300] * buffer[chn][bufPos + i + 0x300];\n f3 = f2 - w;\n f2 = f2 + w;\n x -= 4;\n y[x + 0] = f0 + f2;\n y[x + 2] = f0 - f2;\n y[x + 1] = f1 + f3;\n y[x + 3] = f1 - f3;\n f0 = window[i + 0x001] * buffer[chn][bufPos + i + 0x001];\n w = window[i + 0x201] * buffer[chn][bufPos + i + 0x201];\n f1 = f0 - w;\n f0 = f0 + w;\n f2 = window[i + 0x101] * buffer[chn][bufPos + i + 0x101];\n w = window[i + 0x301] * buffer[chn][bufPos + i + 0x301];\n f3 = f2 - w;\n f2 = f2 + w;\n y[x + $cPNKB.BLKSIZE / 2 + 0] = f0 + f2;\n y[x + $cPNKB.BLKSIZE / 2 + 2] = f0 - f2;\n y[x + $cPNKB.BLKSIZE / 2 + 1] = f1 + f3;\n y[x + $cPNKB.BLKSIZE / 2 + 3] = f1 - f3;\n }while (--jj >= 0);\n fht(y, x, $cPNKB.BLKSIZE / 2);\n /* BLKSIZE/2 because of 3DNow! ASM routine */ };\n this.init_fft = function(gfc) {\n /* The type of window used here will make no real difference, but */ /*\n * in the interest of merging nspsytune stuff - switch to blackman\n * window\n */ for(var i = 0; i < $cPNKB.BLKSIZE; i++)/* blackman window */ window[i] = 0.42 - 0.5 * Math.cos(2 * Math.PI * (i + .5) / $cPNKB.BLKSIZE) + 0.08 * Math.cos(4 * Math.PI * (i + .5) / $cPNKB.BLKSIZE);\n for(var i = 0; i < $cPNKB.BLKSIZE_s / 2; i++)window_s[i] = 0.5 * (1.0 - Math.cos(2.0 * Math.PI * (i + 0.5) / $cPNKB.BLKSIZE_s));\n };\n}\nmodule.exports = $1a4ddf9b01454eb6$var$FFT;\n\n});\nparcelRequire.register(\"cPNKB\", function(module, exports) {\n\nvar $3YDN3 = parcelRequire(\"3YDN3\");\nvar $9580d6e047027232$var$System = $3YDN3.System;\nvar $9580d6e047027232$var$VbrMode = $3YDN3.VbrMode;\nvar $9580d6e047027232$var$Float = $3YDN3.Float;\nvar $9580d6e047027232$var$ShortBlock = $3YDN3.ShortBlock;\nvar $9580d6e047027232$var$Util = $3YDN3.Util;\nvar $9580d6e047027232$var$Arrays = $3YDN3.Arrays;\nvar $9580d6e047027232$var$new_array_n = $3YDN3.new_array_n;\nvar $9580d6e047027232$var$new_byte = $3YDN3.new_byte;\nvar $9580d6e047027232$var$new_double = $3YDN3.new_double;\nvar $9580d6e047027232$var$new_float = $3YDN3.new_float;\nvar $9580d6e047027232$var$new_float_n = $3YDN3.new_float_n;\nvar $9580d6e047027232$var$new_int = $3YDN3.new_int;\nvar $9580d6e047027232$var$new_int_n = $3YDN3.new_int_n;\nvar $9580d6e047027232$var$assert = $3YDN3.assert;\n/**\n * ENCDELAY The encoder delay.\n *\n * Minimum allowed is MDCTDELAY (see below)\n *\n * The first 96 samples will be attenuated, so using a value less than 96\n * will result in corrupt data for the first 96-ENCDELAY samples.\n *\n * suggested: 576 set to 1160 to sync with FhG.\n */ $9580d6e047027232$var$Encoder.ENCDELAY = 576;\n/**\n * make sure there is at least one complete frame after the last frame\n * containing real data\n *\n * Using a value of 288 would be sufficient for a a very sophisticated\n * decoder that can decode granule-by-granule instead of frame by frame. But\n * lets not assume this, and assume the decoder will not decode frame N\n * unless it also has data for frame N+1\n */ $9580d6e047027232$var$Encoder.POSTDELAY = 1152;\n/**\n * delay of the MDCT used in mdct.c original ISO routines had a delay of\n * 528! Takehiro's routines:\n */ $9580d6e047027232$var$Encoder.MDCTDELAY = 48;\n$9580d6e047027232$var$Encoder.FFTOFFSET = 224 + $9580d6e047027232$var$Encoder.MDCTDELAY;\n/**\n * Most decoders, including the one we use, have a delay of 528 samples.\n */ $9580d6e047027232$var$Encoder.DECDELAY = 528;\n/**\n * number of subbands\n */ $9580d6e047027232$var$Encoder.SBLIMIT = 32;\n/**\n * parition bands bands\n */ $9580d6e047027232$var$Encoder.CBANDS = 64;\n/**\n * number of critical bands/scale factor bands where masking is computed\n */ $9580d6e047027232$var$Encoder.SBPSY_l = 21;\n$9580d6e047027232$var$Encoder.SBPSY_s = 12;\n/**\n * total number of scalefactor bands encoded\n */ $9580d6e047027232$var$Encoder.SBMAX_l = 22;\n$9580d6e047027232$var$Encoder.SBMAX_s = 13;\n$9580d6e047027232$var$Encoder.PSFB21 = 6;\n$9580d6e047027232$var$Encoder.PSFB12 = 6;\n/**\n * FFT sizes\n */ $9580d6e047027232$var$Encoder.BLKSIZE = 1024;\n$9580d6e047027232$var$Encoder.HBLKSIZE = $9580d6e047027232$var$Encoder.BLKSIZE / 2 + 1;\n$9580d6e047027232$var$Encoder.BLKSIZE_s = 256;\n$9580d6e047027232$var$Encoder.HBLKSIZE_s = $9580d6e047027232$var$Encoder.BLKSIZE_s / 2 + 1;\n$9580d6e047027232$var$Encoder.NORM_TYPE = 0;\n$9580d6e047027232$var$Encoder.START_TYPE = 1;\n$9580d6e047027232$var$Encoder.SHORT_TYPE = 2;\n$9580d6e047027232$var$Encoder.STOP_TYPE = 3;\n/**\n * <PRE>\n * Mode Extention:\n * When we are in stereo mode, there are 4 possible methods to store these\n * two channels. The stereo modes -m? are using a subset of them.\n *\n * -ms: MPG_MD_LR_LR\n * -mj: MPG_MD_LR_LR and MPG_MD_MS_LR\n * -mf: MPG_MD_MS_LR\n * -mi: all\n * </PRE>\n */ $9580d6e047027232$var$Encoder.MPG_MD_LR_LR = 0;\n$9580d6e047027232$var$Encoder.MPG_MD_LR_I = 1;\n$9580d6e047027232$var$Encoder.MPG_MD_MS_LR = 2;\n$9580d6e047027232$var$Encoder.MPG_MD_MS_I = 3;\n$9580d6e047027232$var$Encoder.fircoef = [\n -0.1039435,\n -0.1892065,\n -0.0432472 * 5,\n -0.155915,\n 7.79609e-18 * 5,\n 0.0467745 * 5,\n 0.50455,\n 0.756825,\n 0.187098 * 5\n];\n\n\n\nfunction $9580d6e047027232$var$Encoder() {\n var NewMDCT = (parcelRequire(\"drj3v\"));\n var III_psy_ratio = (parcelRequire(\"hvy40\"));\n var MPEGMode = (parcelRequire(\"jL6I1\"));\n var FFTOFFSET = $9580d6e047027232$var$Encoder.FFTOFFSET;\n var MPG_MD_MS_LR = $9580d6e047027232$var$Encoder.MPG_MD_MS_LR;\n //BitStream bs;\n //PsyModel psy;\n //VBRTag vbr;\n //QuantizePVT qupvt;\n var bs = null;\n this.psy = null;\n var psy = null;\n var vbr = null;\n var qupvt = null;\n //public final void setModules(BitStream bs, PsyModel psy, QuantizePVT qupvt,\n // VBRTag vbr) {\n this.setModules = function(_bs, _psy, _qupvt, _vbr) {\n bs = _bs;\n this.psy = _psy;\n psy = _psy;\n vbr = _vbr;\n qupvt = _qupvt;\n };\n var newMDCT = new NewMDCT();\n /***********************************************************************\n *\n * encoder and decoder delays\n *\n ***********************************************************************/ /**\n * <PRE>\n * layer III enc->dec delay: 1056 (1057?) (observed)\n * layer II enc->dec delay: 480 (481?) (observed)\n *\n * polyphase 256-16 (dec or enc) = 240\n * mdct 256+32 (9*32) (dec or enc) = 288\n * total: 512+16\n *\n * My guess is that delay of polyphase filterbank is actualy 240.5\n * (there are technical reasons for this, see postings in mp3encoder).\n * So total Encode+Decode delay = ENCDELAY + 528 + 1\n * </PRE>\n */ /**\n * auto-adjust of ATH, useful for low volume Gabriel Bouvigne 3 feb 2001\n *\n * modifies some values in gfp.internal_flags.ATH (gfc.ATH)\n */ //private void adjust_ATH(final LameInternalFlags gfc) {\n function adjust_ATH(gfc) {\n var gr2_max, max_pow;\n if (gfc.ATH.useAdjust == 0) {\n gfc.ATH.adjust = 1.0;\n /* no adjustment */ return;\n }\n /* jd - 2001 mar 12, 27, jun 30 */ /* loudness based on equal loudness curve; */ /* use granule with maximum combined loudness */ max_pow = gfc.loudness_sq[0][0];\n gr2_max = gfc.loudness_sq[1][0];\n if (gfc.channels_out == 2) {\n max_pow += gfc.loudness_sq[0][1];\n gr2_max += gfc.loudness_sq[1][1];\n } else {\n max_pow += max_pow;\n gr2_max += gr2_max;\n }\n if (gfc.mode_gr == 2) max_pow = Math.max(max_pow, gr2_max);\n max_pow *= 0.5;\n /* max_pow approaches 1.0 for full band noise */ /* jd - 2001 mar 31, jun 30 */ /* user tuning of ATH adjustment region */ max_pow *= gfc.ATH.aaSensitivityP;\n /*\n * adjust ATH depending on range of maximum value\n */ /* jd - 2001 feb27, mar12,20, jun30, jul22 */ /* continuous curves based on approximation */ /* to GB's original values. */ /* For an increase in approximate loudness, */ /* set ATH adjust to adjust_limit immediately */ /* after a delay of one frame. */ /* For a loudness decrease, reduce ATH adjust */ /* towards adjust_limit gradually. */ /* max_pow is a loudness squared or a power. */ if (max_pow > 0.03125) {\n if (gfc.ATH.adjust >= 1.0) gfc.ATH.adjust = 1.0;\n else /* preceding frame has lower ATH adjust; */ /* ascend only to the preceding adjust_limit */ /* in case there is leading low volume */ if (gfc.ATH.adjust < gfc.ATH.adjustLimit) gfc.ATH.adjust = gfc.ATH.adjustLimit;\n gfc.ATH.adjustLimit = 1.0;\n } else {\n /* about 32 dB maximum adjust (0.000625) */ var adj_lim_new = 31.98 * max_pow + 0.000625;\n if (gfc.ATH.adjust >= adj_lim_new) {\n gfc.ATH.adjust *= adj_lim_new * 0.075 + 0.925;\n if (gfc.ATH.adjust < adj_lim_new) gfc.ATH.adjust = adj_lim_new;\n } else {\n if (gfc.ATH.adjustLimit >= adj_lim_new) gfc.ATH.adjust = adj_lim_new;\n else /* preceding frame has lower ATH adjust; */ /* ascend only to the preceding adjust_limit */ if (gfc.ATH.adjust < gfc.ATH.adjustLimit) gfc.ATH.adjust = gfc.ATH.adjustLimit;\n }\n gfc.ATH.adjustLimit = adj_lim_new;\n }\n }\n /**\n * <PRE>\n * some simple statistics\n *\n * bitrate index 0: free bitrate . not allowed in VBR mode\n * : bitrates, kbps depending on MPEG version\n * bitrate index 15: forbidden\n *\n * mode_ext:\n * 0: LR\n * 1: LR-i\n * 2: MS\n * 3: MS-i\n * </PRE>\n */ function updateStats(gfc) {\n var gr, ch;\n $9580d6e047027232$var$assert(0 <= gfc.bitrate_index && gfc.bitrate_index < 16);\n $9580d6e047027232$var$assert(0 <= gfc.mode_ext && gfc.mode_ext < 4);\n /* count bitrate indices */ gfc.bitrate_stereoMode_Hist[gfc.bitrate_index][4]++;\n gfc.bitrate_stereoMode_Hist[15][4]++;\n /* count 'em for every mode extension in case of 2 channel encoding */ if (gfc.channels_out == 2) {\n gfc.bitrate_stereoMode_Hist[gfc.bitrate_index][gfc.mode_ext]++;\n gfc.bitrate_stereoMode_Hist[15][gfc.mode_ext]++;\n }\n for(gr = 0; gr < gfc.mode_gr; ++gr)for(ch = 0; ch < gfc.channels_out; ++ch){\n var bt = gfc.l3_side.tt[gr][ch].block_type | 0;\n if (gfc.l3_side.tt[gr][ch].mixed_block_flag != 0) bt = 4;\n gfc.bitrate_blockType_Hist[gfc.bitrate_index][bt]++;\n gfc.bitrate_blockType_Hist[gfc.bitrate_index][5]++;\n gfc.bitrate_blockType_Hist[15][bt]++;\n gfc.bitrate_blockType_Hist[15][5]++;\n }\n }\n function lame_encode_frame_init(gfp, inbuf) {\n var gfc = gfp.internal_flags;\n var ch, gr;\n if (gfc.lame_encode_frame_init == 0) {\n /* prime the MDCT/polyphase filterbank with a short block */ var i, j;\n var primebuff0 = $9580d6e047027232$var$new_float(2014);\n var primebuff1 = $9580d6e047027232$var$new_float(2014);\n gfc.lame_encode_frame_init = 1;\n for(i = 0, j = 0; i < 286 + 576 * (1 + gfc.mode_gr); ++i)if (i < 576 * gfc.mode_gr) {\n primebuff0[i] = 0;\n if (gfc.channels_out == 2) primebuff1[i] = 0;\n } else {\n primebuff0[i] = inbuf[0][j];\n if (gfc.channels_out == 2) primebuff1[i] = inbuf[1][j];\n ++j;\n }\n /* polyphase filtering / mdct */ for(gr = 0; gr < gfc.mode_gr; gr++)for(ch = 0; ch < gfc.channels_out; ch++)gfc.l3_side.tt[gr][ch].block_type = $9580d6e047027232$var$Encoder.SHORT_TYPE;\n newMDCT.mdct_sub48(gfc, primebuff0, primebuff1);\n /* check FFT will not use a negative starting offset */ $9580d6e047027232$var$assert(576 >= $9580d6e047027232$var$Encoder.FFTOFFSET);\n /* check if we have enough data for FFT */ $9580d6e047027232$var$assert(gfc.mf_size >= $9580d6e047027232$var$Encoder.BLKSIZE + gfp.framesize - $9580d6e047027232$var$Encoder.FFTOFFSET);\n /* check if we have enough data for polyphase filterbank */ $9580d6e047027232$var$assert(gfc.mf_size >= 512 + gfp.framesize - 32);\n }\n }\n /**\n * <PRE>\n * encodeframe() Layer 3\n *\n * encode a single frame\n *\n *\n * lame_encode_frame()\n *\n *\n * gr 0 gr 1\n * inbuf: |--------------|--------------|--------------|\n *\n *\n * Polyphase (18 windows, each shifted 32)\n * gr 0:\n * window1 <----512---.\n * window18 <----512---.\n *\n * gr 1:\n * window1 <----512---.\n * window18 <----512---.\n *\n *\n *\n * MDCT output: |--------------|--------------|--------------|\n *\n * FFT's <---------1024---------.\n * <---------1024-------.\n *\n *\n *\n * inbuf = buffer of PCM data size=MP3 framesize\n * encoder acts on inbuf[ch][0], but output is delayed by MDCTDELAY\n * so the MDCT coefficints are from inbuf[ch][-MDCTDELAY]\n *\n * psy-model FFT has a 1 granule delay, so we feed it data for the\n * next granule.\n * FFT is centered over granule: 224+576+224\n * So FFT starts at: 576-224-MDCTDELAY\n *\n * MPEG2: FFT ends at: BLKSIZE+576-224-MDCTDELAY (1328)\n * MPEG1: FFT ends at: BLKSIZE+2*576-224-MDCTDELAY (1904)\n *\n * MPEG2: polyphase first window: [0..511]\n * 18th window: [544..1055] (1056)\n * MPEG1: 36th window: [1120..1631] (1632)\n * data needed: 512+framesize-32\n *\n * A close look newmdct.c shows that the polyphase filterbank\n * only uses data from [0..510] for each window. Perhaps because the window\n * used by the filterbank is zero for the last point, so Takehiro's\n * code doesn't bother to compute with it.\n *\n * FFT starts at 576-224-MDCTDELAY (304) = 576-FFTOFFSET\n *\n * </PRE>\n */ this.lame_encode_mp3_frame = function(gfp, inbuf_l, inbuf_r, mp3buf, mp3bufPos, mp3buf_size) {\n var mp3count;\n var masking_LR = $9580d6e047027232$var$new_array_n([\n 2,\n 2\n ]);\n /*\n * LR masking &\n * energy\n */ masking_LR[0][0] = new III_psy_ratio();\n masking_LR[0][1] = new III_psy_ratio();\n masking_LR[1][0] = new III_psy_ratio();\n masking_LR[1][1] = new III_psy_ratio();\n var masking_MS = $9580d6e047027232$var$new_array_n([\n 2,\n 2\n ]);\n /* MS masking & energy */ masking_MS[0][0] = new III_psy_ratio();\n masking_MS[0][1] = new III_psy_ratio();\n masking_MS[1][0] = new III_psy_ratio();\n masking_MS[1][1] = new III_psy_ratio();\n //III_psy_ratio masking[][];\n var masking;\n /* pointer to selected maskings */ var inbuf = [\n null,\n null\n ];\n var gfc = gfp.internal_flags;\n var tot_ener = $9580d6e047027232$var$new_float_n([\n 2,\n 4\n ]);\n var ms_ener_ratio = [\n .5,\n .5\n ];\n var pe = [\n [\n 0.,\n 0.\n ],\n [\n 0.,\n 0.\n ]\n ];\n var pe_MS = [\n [\n 0.,\n 0.\n ],\n [\n 0.,\n 0.\n ]\n ];\n //float[][] pe_use;\n var pe_use;\n var ch, gr;\n inbuf[0] = inbuf_l;\n inbuf[1] = inbuf_r;\n if (gfc.lame_encode_frame_init == 0) /* first run? */ lame_encode_frame_init(gfp, inbuf);\n /********************** padding *****************************/ /**\n * <PRE>\n * padding method as described in\n * \"MPEG-Layer3 / Bitstream Syntax and Decoding\"\n * by Martin Sieler, Ralph Sperschneider\n *\n * note: there is no padding for the very first frame\n *\n * Robert Hegemann 2000-06-22\n * </PRE>\n */ gfc.padding = 0;\n if ((gfc.slot_lag -= gfc.frac_SpF) < 0) {\n gfc.slot_lag += gfp.out_samplerate;\n gfc.padding = 1;\n }\n /****************************************\n * Stage 1: psychoacoustic model *\n ****************************************/ if (gfc.psymodel != 0) {\n /*\n * psychoacoustic model psy model has a 1 granule (576) delay that\n * we must compensate for (mt 6/99).\n */ var ret;\n var bufp = [\n null,\n null\n ];\n /* address of beginning of left & right granule */ var bufpPos = 0;\n /* address of beginning of left & right granule */ var blocktype = $9580d6e047027232$var$new_int(2);\n for(gr = 0; gr < gfc.mode_gr; gr++){\n for(ch = 0; ch < gfc.channels_out; ch++){\n bufp[ch] = inbuf[ch];\n bufpPos = 576 + gr * 576 - $9580d6e047027232$var$Encoder.FFTOFFSET;\n }\n if (gfp.VBR == $9580d6e047027232$var$VbrMode.vbr_mtrh || gfp.VBR == $9580d6e047027232$var$VbrMode.vbr_mt) ret = psy.L3psycho_anal_vbr(gfp, bufp, bufpPos, gr, masking_LR, masking_MS, pe[gr], pe_MS[gr], tot_ener[gr], blocktype);\n else ret = psy.L3psycho_anal_ns(gfp, bufp, bufpPos, gr, masking_LR, masking_MS, pe[gr], pe_MS[gr], tot_ener[gr], blocktype);\n if (ret != 0) return -4;\n if (gfp.mode == MPEGMode.JOINT_STEREO) {\n ms_ener_ratio[gr] = tot_ener[gr][2] + tot_ener[gr][3];\n if (ms_ener_ratio[gr] > 0) ms_ener_ratio[gr] = tot_ener[gr][3] / ms_ener_ratio[gr];\n }\n /* block type flags */ for(ch = 0; ch < gfc.channels_out; ch++){\n var cod_info = gfc.l3_side.tt[gr][ch];\n cod_info.block_type = blocktype[ch];\n cod_info.mixed_block_flag = 0;\n }\n }\n } else {\n /* no psy model */ for(gr = 0; gr < gfc.mode_gr; gr++)for(ch = 0; ch < gfc.channels_out; ch++){\n gfc.l3_side.tt[gr][ch].block_type = $9580d6e047027232$var$Encoder.NORM_TYPE;\n gfc.l3_side.tt[gr][ch].mixed_block_flag = 0;\n pe_MS[gr][ch] = pe[gr][ch] = 700;\n }\n }\n /* auto-adjust of ATH, useful for low volume */ adjust_ATH(gfc);\n /****************************************\n * Stage 2: MDCT *\n ****************************************/ /* polyphase filtering / mdct */ newMDCT.mdct_sub48(gfc, inbuf[0], inbuf[1]);\n /****************************************\n * Stage 3: MS/LR decision *\n ****************************************/ /* Here will be selected MS or LR coding of the 2 stereo channels */ gfc.mode_ext = $9580d6e047027232$var$Encoder.MPG_MD_LR_LR;\n if (gfp.force_ms) gfc.mode_ext = $9580d6e047027232$var$Encoder.MPG_MD_MS_LR;\n else if (gfp.mode == MPEGMode.JOINT_STEREO) {\n /*\n * ms_ratio = is scaled, for historical reasons, to look like a\n * ratio of side_channel / total. 0 = signal is 100% mono .5 = L & R\n * uncorrelated\n */ /**\n * <PRE>\n * [0] and [1] are the results for the two granules in MPEG-1,\n * in MPEG-2 it's only a faked averaging of the same value\n * _prev is the value of the last granule of the previous frame\n * _next is the value of the first granule of the next frame\n * </PRE>\n */ var sum_pe_MS = 0.;\n var sum_pe_LR = 0.;\n for(gr = 0; gr < gfc.mode_gr; gr++)for(ch = 0; ch < gfc.channels_out; ch++){\n sum_pe_MS += pe_MS[gr][ch];\n sum_pe_LR += pe[gr][ch];\n }\n /* based on PE: M/S coding would not use much more bits than L/R */ if (sum_pe_MS <= 1.00 * sum_pe_LR) {\n var gi0 = gfc.l3_side.tt[0];\n var gi1 = gfc.l3_side.tt[gfc.mode_gr - 1];\n if (gi0[0].block_type == gi0[1].block_type && gi1[0].block_type == gi1[1].block_type) gfc.mode_ext = $9580d6e047027232$var$Encoder.MPG_MD_MS_LR;\n }\n }\n /* bit and noise allocation */ if (gfc.mode_ext == MPG_MD_MS_LR) {\n masking = masking_MS;\n /* use MS masking */ pe_use = pe_MS;\n } else {\n masking = masking_LR;\n /* use LR masking */ pe_use = pe;\n }\n /* copy data for MP3 frame analyzer */ if (gfp.analysis && gfc.pinfo != null) {\n for(gr = 0; gr < gfc.mode_gr; gr++)for(ch = 0; ch < gfc.channels_out; ch++){\n gfc.pinfo.ms_ratio[gr] = gfc.ms_ratio[gr];\n gfc.pinfo.ms_ener_ratio[gr] = ms_ener_ratio[gr];\n gfc.pinfo.blocktype[gr][ch] = gfc.l3_side.tt[gr][ch].block_type;\n gfc.pinfo.pe[gr][ch] = pe_use[gr][ch];\n $9580d6e047027232$var$System.arraycopy(gfc.l3_side.tt[gr][ch].xr, 0, gfc.pinfo.xr[gr][ch], 0, 576);\n /*\n * in psymodel, LR and MS data was stored in pinfo. switch\n * to MS data:\n */ if (gfc.mode_ext == MPG_MD_MS_LR) {\n gfc.pinfo.ers[gr][ch] = gfc.pinfo.ers[gr][ch + 2];\n $9580d6e047027232$var$System.arraycopy(gfc.pinfo.energy[gr][ch + 2], 0, gfc.pinfo.energy[gr][ch], 0, gfc.pinfo.energy[gr][ch].length);\n }\n }\n }\n /****************************************\n * Stage 4: quantization loop *\n ****************************************/ if (gfp.VBR == $9580d6e047027232$var$VbrMode.vbr_off || gfp.VBR == $9580d6e047027232$var$VbrMode.vbr_abr) {\n var i;\n var f;\n for(i = 0; i < 18; i++)gfc.nsPsy.pefirbuf[i] = gfc.nsPsy.pefirbuf[i + 1];\n f = 0.0;\n for(gr = 0; gr < gfc.mode_gr; gr++)for(ch = 0; ch < gfc.channels_out; ch++)f += pe_use[gr][ch];\n gfc.nsPsy.pefirbuf[18] = f;\n f = gfc.nsPsy.pefirbuf[9];\n for(i = 0; i < 9; i++)f += (gfc.nsPsy.pefirbuf[i] + gfc.nsPsy.pefirbuf[18 - i]) * $9580d6e047027232$var$Encoder.fircoef[i];\n f = 3350 * gfc.mode_gr * gfc.channels_out / f;\n for(gr = 0; gr < gfc.mode_gr; gr++)for(ch = 0; ch < gfc.channels_out; ch++)pe_use[gr][ch] *= f;\n }\n gfc.iteration_loop.iteration_loop(gfp, pe_use, ms_ener_ratio, masking);\n /****************************************\n * Stage 5: bitstream formatting *\n ****************************************/ /* write the frame to the bitstream */ bs.format_bitstream(gfp);\n /* copy mp3 bit buffer into array */ mp3count = bs.copy_buffer(gfc, mp3buf, mp3bufPos, mp3buf_size, 1);\n if (gfp.bWriteVbrTag) vbr.addVbrFrame(gfp);\n if (gfp.analysis && gfc.pinfo != null) {\n for(ch = 0; ch < gfc.channels_out; ch++){\n var j;\n for(j = 0; j < FFTOFFSET; j++)gfc.pinfo.pcmdata[ch][j] = gfc.pinfo.pcmdata[ch][j + gfp.framesize];\n for(j = FFTOFFSET; j < 1600; j++)gfc.pinfo.pcmdata[ch][j] = inbuf[ch][j - FFTOFFSET];\n }\n qupvt.set_frame_pinfo(gfp, masking);\n }\n updateStats(gfc);\n return mp3count;\n };\n}\nmodule.exports = $9580d6e047027232$var$Encoder;\n\n});\nparcelRequire.register(\"drj3v\", function(module, exports) {\n/*\n * MP3 window subband -> subband filtering -> mdct routine\n *\n * Copyright (c) 1999-2000 Takehiro Tominaga\n *\n *\n * This library is free software; you can redistribute it and/or\n * modify it under the terms of the GNU Lesser General Public\n * License as published by the Free Software Foundation; either\n * version 2 of the License, or (at your option) any later version.\n *\n * This library is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Library General Public License for more details.\n *\n * You should have received a copy of the GNU Library General Public\n * License along with this library; if not, write to the\n * Free Software Foundation, Inc., 59 Temple Place - Suite 330,\n * Boston, MA 02111-1307, USA.\n */ /*\n * Special Thanks to Patrick De Smet for your advices.\n */ /* $Id: NewMDCT.java,v 1.11 2011/05/24 20:48:06 kenchis Exp $ */ //package mp3;\n//import java.util.Arrays;\n\nvar $3YDN3 = parcelRequire(\"3YDN3\");\nvar $9c8c9409243421ca$var$System = $3YDN3.System;\nvar $9c8c9409243421ca$var$VbrMode = $3YDN3.VbrMode;\nvar $9c8c9409243421ca$var$Float = $3YDN3.Float;\nvar $9c8c9409243421ca$var$ShortBlock = $3YDN3.ShortBlock;\nvar $9c8c9409243421ca$var$Util = $3YDN3.Util;\nvar $9c8c9409243421ca$var$Arrays = $3YDN3.Arrays;\nvar $9c8c9409243421ca$var$new_array_n = $3YDN3.new_array_n;\nvar $9c8c9409243421ca$var$new_byte = $3YDN3.new_byte;\nvar $9c8c9409243421ca$var$new_double = $3YDN3.new_double;\nvar $9c8c9409243421ca$var$new_float = $3YDN3.new_float;\nvar $9c8c9409243421ca$var$new_float_n = $3YDN3.new_float_n;\nvar $9c8c9409243421ca$var$new_int = $3YDN3.new_int;\nvar $9c8c9409243421ca$var$new_int_n = $3YDN3.new_int_n;\nvar $9c8c9409243421ca$var$assert = $3YDN3.assert;\n\nvar $cPNKB = parcelRequire(\"cPNKB\");\nfunction $9c8c9409243421ca$var$NewMDCT() {\n var enwindow = [\n -0.1482523854003001,\n 32.308141959636465,\n 296.40344946382766,\n 883.1344870032432,\n 11113.947376231741,\n 1057.2713659324597,\n 305.7402417275812,\n 30.825928907280012,\n /* 15 */ 3.8533188138216365,\n 59.42900443849514,\n 709.5899960123345,\n 5281.91112291017,\n -5829.66483675846,\n -817.6293103748613,\n -76.91656988279972,\n -4.594269939176596,\n 9.063471690191471e-01,\n 1.960342806591213e-01,\n -0.15466694054279598,\n 34.324387823855965,\n 301.8067566458425,\n 817.599602898885,\n 11573.795901679885,\n 1181.2520595540152,\n 321.59731579894424,\n 31.232021761053772,\n /* 14 */ 3.7107095756221318,\n 53.650946155329365,\n 684.167428119626,\n 5224.56624370173,\n -6366.391851890084,\n -908.9766368219582,\n -89.83068876699639,\n -5.411397422890401,\n 8.206787908286602e-01,\n 3.901806440322567e-01,\n -0.16070888947830023,\n 36.147034243915876,\n 304.11815768187864,\n 732.7429163887613,\n 11989.60988270091,\n 1300.012278487897,\n 335.28490093152146,\n 31.48816102859945,\n /* 13 */ 3.373875931311736,\n 47.232241542899175,\n 652.7371796173471,\n 5132.414255594984,\n -6909.087078780055,\n -1001.9990371107289,\n -103.62185754286375,\n -6.104916304710272,\n 7.416505462720353e-01,\n 5.805693545089249e-01,\n -0.16636367662261495,\n 37.751650073343995,\n 303.01103387567713,\n 627.9747488785183,\n 12358.763425278165,\n 1412.2779918482834,\n 346.7496836825721,\n 31.598286663170416,\n /* 12 */ 3.1598635433980946,\n 40.57878626349686,\n 616.1671130880391,\n 5007.833007176154,\n -7454.040671756168,\n -1095.7960341867115,\n -118.24411666465777,\n -6.818469345853504,\n 6.681786379192989e-01,\n 7.653668647301797e-01,\n -0.1716176790982088,\n 39.11551877123304,\n 298.3413246578966,\n 503.5259106886539,\n 12679.589408408976,\n 1516.5821921214542,\n 355.9850766329023,\n 31.395241710249053,\n /* 11 */ 2.9164211881972335,\n 33.79716964664243,\n 574.8943997801362,\n 4853.234992253242,\n -7997.57021486075,\n -1189.7624067269965,\n -133.6444792601766,\n -7.7202770609839915,\n 5.993769336819237e-01,\n 9.427934736519954e-01,\n -0.17645823955292173,\n 40.21879108166477,\n 289.9982036694474,\n 359.3226160751053,\n 12950.259102786438,\n 1612.1013903507662,\n 362.85067106591504,\n 31.045922092242872,\n /* 10 */ 2.822222032597987,\n 26.988862316190684,\n 529.8996541764288,\n 4671.371946949588,\n -8535.899136645805,\n -1282.5898586244496,\n -149.58553632943463,\n -8.643494270763135,\n 5.345111359507916e-01,\n 1.111140466039205e+00,\n -0.36174739330527045,\n 41.04429910497807,\n 277.5463268268618,\n 195.6386023135583,\n 13169.43812144731,\n 1697.6433561479398,\n 367.40983966190305,\n 30.557037410382826,\n /* 9 */ 2.531473372857427,\n 20.070154905927314,\n 481.50208566532336,\n 4464.970341588308,\n -9065.36882077239,\n -1373.62841526722,\n -166.1660487028118,\n -9.58289321133207,\n 4.729647758913199e-01,\n 1.268786568327291e+00,\n -0.36970682634889585,\n 41.393213350082036,\n 261.2935935556502,\n 12.935476055240873,\n 13336.131683328815,\n 1772.508612059496,\n 369.76534388639965,\n 29.751323653701338,\n 2.4023193045459172,\n 13.304795348228817,\n 430.5615775526625,\n 4237.0568611071185,\n -9581.931701634761,\n -1461.6913552409758,\n -183.12733958476446,\n -10.718010163869403,\n 4.1421356237309504879e-01,\n /* tan(PI/8) */ 1.414213562373095e+00,\n -0.37677560326535325,\n 41.619486213528496,\n 241.05423794991074,\n -187.94665032361226,\n 13450.063605744153,\n 1836.153896465782,\n 369.4908799925761,\n 29.001847876923147,\n /* 7 */ 2.0714759319987186,\n 6.779591200894186,\n 377.7767837205709,\n 3990.386575512536,\n -10081.709459700915,\n -1545.947424837898,\n -200.3762958015653,\n -11.864482073055006,\n 3.578057213145241e-01,\n 1.546020906725474e+00,\n -0.3829366947518991,\n 41.1516456456653,\n 216.47684307105183,\n -406.1569483347166,\n 13511.136535077321,\n 1887.8076599260432,\n 367.3025214564151,\n 28.136213436723654,\n /* 6 */ 1.913880671464418,\n 0.3829366947518991,\n 323.85365704338597,\n 3728.1472257487526,\n -10561.233882199509,\n -1625.2025997821418,\n -217.62525175416,\n -13.015432208941645,\n 3.033466836073424e-01,\n 1.662939224605090e+00,\n -0.5822628872992417,\n 40.35639251440489,\n 188.20071124269245,\n -640.2706748618148,\n 13519.21490106562,\n 1927.6022433578062,\n 362.8197642637487,\n 26.968821921868447,\n /* 5 */ 1.7463817695935329,\n -5.62650678237171,\n 269.3016715297017,\n 3453.386536448852,\n -11016.145278780888,\n -1698.6569643425091,\n -234.7658734267683,\n -14.16351421663124,\n 2.504869601913055e-01,\n 1.763842528696710e+00,\n -0.5887180101749253,\n 39.23429103868072,\n 155.76096234403798,\n -889.2492977967378,\n 13475.470561874661,\n 1955.0535223723712,\n 356.4450994756727,\n 25.894952980042156,\n /* 4 */ 1.5695032905781554,\n -11.181939564328772,\n 214.80884394039484,\n 3169.1640829158237,\n -11443.321309975563,\n -1765.1588461316153,\n -251.68908574481912,\n -15.49755935939164,\n 1.989123673796580e-01,\n 1.847759065022573e+00,\n -0.7912582233652842,\n 37.39369355329111,\n 119.699486012458,\n -1151.0956593239027,\n 13380.446257078214,\n 1970.3952110853447,\n 348.01959814116185,\n 24.731487364283044,\n /* 3 */ 1.3850130831637748,\n -16.421408865300393,\n 161.05030052864092,\n 2878.3322807850063,\n -11838.991423510031,\n -1823.985884688674,\n -268.2854986386903,\n -16.81724543849939,\n 1.483359875383474e-01,\n 1.913880671464418e+00,\n -0.7960642926861912,\n 35.2322109610459,\n 80.01928065061526,\n -1424.0212633405113,\n 13235.794061869668,\n 1973.804052543835,\n 337.9908651258184,\n 23.289159354463873,\n 1.3934255946442087,\n -21.099669467133474,\n 108.48348407242611,\n 2583.700758091299,\n -12199.726194855148,\n -1874.2780658979746,\n -284.2467154529415,\n -18.11369784385905,\n 9.849140335716425e-02,\n 1.961570560806461e+00,\n -0.998795456205172,\n 32.56307803611191,\n 36.958364584370486,\n -1706.075448829146,\n 13043.287458812016,\n 1965.3831106103316,\n 326.43182772364605,\n 22.175018750622293,\n 1.198638339011324,\n -25.371248002043963,\n 57.53505923036915,\n 2288.41886619975,\n -12522.674544337233,\n -1914.8400385312243,\n -299.26241273417224,\n -19.37805630698734,\n 4.912684976946725e-02,\n 1.990369453344394e+00,\n 3.5780907e-02 * $9c8c9409243421ca$var$Util.SQRT2 * 0.5 / 2.384e-06,\n 1.7876148e-02 * $9c8c9409243421ca$var$Util.SQRT2 * 0.5 / 2.384e-06,\n 3.134727e-03 * $9c8c9409243421ca$var$Util.SQRT2 * 0.5 / 2.384e-06,\n 2.457142e-03 * $9c8c9409243421ca$var$Util.SQRT2 * 0.5 / 2.384e-06,\n 9.71317e-04 * $9c8c9409243421ca$var$Util.SQRT2 * 0.5 / 2.384e-06,\n 2.18868e-04 * $9c8c9409243421ca$var$Util.SQRT2 * 0.5 / 2.384e-06,\n 1.01566e-04 * $9c8c9409243421ca$var$Util.SQRT2 * 0.5 / 2.384e-06,\n 1.3828e-05 * $9c8c9409243421ca$var$Util.SQRT2 * 0.5 / 2.384e-06,\n 12804.797818791945,\n 1945.5515939597317,\n 313.4244966442953,\n 20.801593959731544,\n 1995.1556208053692,\n 9.000838926174497,\n -29.20218120805369\n ];\n var NS = 12;\n var NL = 36;\n var win = [\n [\n 2.382191739347913e-13,\n 6.423305872147834e-13,\n 9.400849094049688e-13,\n 1.122435026096556e-12,\n 1.183840321267481e-12,\n 1.122435026096556e-12,\n 9.400849094049690e-13,\n 6.423305872147839e-13,\n 2.382191739347918e-13,\n 5.456116108943412e-12,\n 4.878985199565852e-12,\n 4.240448995017367e-12,\n 3.559909094758252e-12,\n 2.858043359288075e-12,\n 2.156177623817898e-12,\n 1.475637723558783e-12,\n 8.371015190102974e-13,\n 2.599706096327376e-13,\n -0.000000000005456116108943412,\n -0.000000000004878985199565852,\n -0.000000000004240448995017367,\n -0.000000000003559909094758252,\n -0.000000000002858043359288076,\n -0.000000000002156177623817898,\n -0.000000000001475637723558783,\n -0.0000000000008371015190102975,\n -0.0000000000002599706096327376,\n -0.0000000000002382191739347923,\n -0.0000000000006423305872147843,\n -0.0000000000009400849094049696,\n -0.000000000001122435026096556,\n -0.000000000001183840321267481,\n -0.000000000001122435026096556,\n -0.0000000000009400849094049694,\n -0.000000000000642330587214784,\n -0.0000000000002382191739347918\n ],\n [\n 2.382191739347913e-13,\n 6.423305872147834e-13,\n 9.400849094049688e-13,\n 1.122435026096556e-12,\n 1.183840321267481e-12,\n 1.122435026096556e-12,\n 9.400849094049688e-13,\n 6.423305872147841e-13,\n 2.382191739347918e-13,\n 5.456116108943413e-12,\n 4.878985199565852e-12,\n 4.240448995017367e-12,\n 3.559909094758253e-12,\n 2.858043359288075e-12,\n 2.156177623817898e-12,\n 1.475637723558782e-12,\n 8.371015190102975e-13,\n 2.599706096327376e-13,\n -0.000000000005461314069809755,\n -0.000000000004921085770524055,\n -0.000000000004343405037091838,\n -0.000000000003732668368707687,\n -0.000000000003093523840190885,\n -0.000000000002430835727329465,\n -0.000000000001734679010007751,\n -0.000000000000974825365660928,\n -0.0000000000002797435120168326,\n 0.000000000000000e+00,\n 0.000000000000000e+00,\n 0.000000000000000e+00,\n 0.000000000000000e+00,\n 0.000000000000000e+00,\n 0.000000000000000e+00,\n -0.0000000000002283748241799531,\n -0.0000000000004037858874020686,\n -0.0000000000002146547464825323\n ],\n [\n 1.316524975873958e-01,\n /* win[SHORT_TYPE] */ 4.142135623730950e-01,\n 7.673269879789602e-01,\n 1.091308501069271e+00,\n /* tantab_l */ 1.303225372841206e+00,\n 1.569685577117490e+00,\n 1.920982126971166e+00,\n 2.414213562373094e+00,\n 3.171594802363212e+00,\n 4.510708503662055e+00,\n 7.595754112725146e+00,\n 2.290376554843115e+01,\n 0.98480775301220802032,\n /* cx */ 0.64278760968653936292,\n 0.34202014332566882393,\n 0.93969262078590842791,\n -0.1736481776669303,\n -0.7660444431189779,\n 0.86602540378443870761,\n 0.500000000000000e+00,\n -0.5144957554275265,\n /* ca */ -0.4717319685649723,\n -0.3133774542039019,\n -0.1819131996109812,\n -0.09457419252642064,\n -0.04096558288530405,\n -0.01419856857247115,\n -0.003699974673760037,\n 8.574929257125442e-01,\n /* cs */ 8.817419973177052e-01,\n 9.496286491027329e-01,\n 9.833145924917901e-01,\n 9.955178160675857e-01,\n 9.991605581781475e-01,\n 9.998991952444470e-01,\n 9.999931550702802e-01\n ],\n [\n 0.000000000000000e+00,\n 0.000000000000000e+00,\n 0.000000000000000e+00,\n 0.000000000000000e+00,\n 0.000000000000000e+00,\n 0.000000000000000e+00,\n 2.283748241799531e-13,\n 4.037858874020686e-13,\n 2.146547464825323e-13,\n 5.461314069809755e-12,\n 4.921085770524055e-12,\n 4.343405037091838e-12,\n 3.732668368707687e-12,\n 3.093523840190885e-12,\n 2.430835727329466e-12,\n 1.734679010007751e-12,\n 9.748253656609281e-13,\n 2.797435120168326e-13,\n -0.000000000005456116108943413,\n -0.000000000004878985199565852,\n -0.000000000004240448995017367,\n -0.000000000003559909094758253,\n -0.000000000002858043359288075,\n -0.000000000002156177623817898,\n -0.000000000001475637723558782,\n -0.0000000000008371015190102975,\n -0.0000000000002599706096327376,\n -0.0000000000002382191739347913,\n -0.0000000000006423305872147834,\n -0.0000000000009400849094049688,\n -0.000000000001122435026096556,\n -0.000000000001183840321267481,\n -0.000000000001122435026096556,\n -0.0000000000009400849094049688,\n -0.0000000000006423305872147841,\n -0.0000000000002382191739347918\n ]\n ];\n var tantab_l = win[$cPNKB.SHORT_TYPE];\n var cx = win[$cPNKB.SHORT_TYPE];\n var ca = win[$cPNKB.SHORT_TYPE];\n var cs = win[$cPNKB.SHORT_TYPE];\n /**\n\t * new IDCT routine written by Takehiro TOMINAGA\n\t *\n\t * PURPOSE: Overlapping window on PCM samples<BR>\n\t *\n\t * SEMANTICS:<BR>\n\t * 32 16-bit pcm samples are scaled to fractional 2's complement and\n\t * concatenated to the end of the window buffer #x#. The updated window\n\t * buffer #x# is then windowed by the analysis window #c# to produce the\n\t * windowed sample #z#\n\t */ var order = [\n 0,\n 1,\n 16,\n 17,\n 8,\n 9,\n 24,\n 25,\n 4,\n 5,\n 20,\n 21,\n 12,\n 13,\n 28,\n 29,\n 2,\n 3,\n 18,\n 19,\n 10,\n 11,\n 26,\n 27,\n 6,\n 7,\n 22,\n 23,\n 14,\n 15,\n 30,\n 31\n ];\n /**\n\t * returns sum_j=0^31 a[j]*cos(PI*j*(k+1/2)/32), 0<=k<32\n\t */ function window_subband(x1, x1Pos, a) {\n var wp = 10;\n var x2 = x1Pos + 238 - 14 - 286;\n for(var i = -15; i < 0; i++){\n var w, s, t;\n w = enwindow[wp + -10];\n s = x1[x2 + -224] * w;\n t = x1[x1Pos + 224] * w;\n w = enwindow[wp + -9];\n s += x1[x2 + -160] * w;\n t += x1[x1Pos + 160] * w;\n w = enwindow[wp + -8];\n s += x1[x2 + -96] * w;\n t += x1[x1Pos + 96] * w;\n w = enwindow[wp + -7];\n s += x1[x2 + -32] * w;\n t += x1[x1Pos + 32] * w;\n w = enwindow[wp + -6];\n s += x1[x2 + 32] * w;\n t += x1[x1Pos + -32] * w;\n w = enwindow[wp + -5];\n s += x1[x2 + 96] * w;\n t += x1[x1Pos + -96] * w;\n w = enwindow[wp + -4];\n s += x1[x2 + 160] * w;\n t += x1[x1Pos + -160] * w;\n w = enwindow[wp + -3];\n s += x1[x2 + 224] * w;\n t += x1[x1Pos + -224] * w;\n w = enwindow[wp + -2];\n s += x1[x1Pos + -256] * w;\n t -= x1[x2 + 256] * w;\n w = enwindow[wp + -1];\n s += x1[x1Pos + -192] * w;\n t -= x1[x2 + 192] * w;\n w = enwindow[wp + 0];\n s += x1[x1Pos + -128] * w;\n t -= x1[x2 + 128] * w;\n w = enwindow[wp + 1];\n s += x1[x1Pos + -64] * w;\n t -= x1[x2 + 64] * w;\n w = enwindow[wp + 2];\n s += x1[x1Pos + 0] * w;\n t -= x1[x2 + 0] * w;\n w = enwindow[wp + 3];\n s += x1[x1Pos + 64] * w;\n t -= x1[x2 + -64] * w;\n w = enwindow[wp + 4];\n s += x1[x1Pos + 128] * w;\n t -= x1[x2 + -128] * w;\n w = enwindow[wp + 5];\n s += x1[x1Pos + 192] * w;\n t -= x1[x2 + -192] * w;\n /*\n\t\t\t * this multiplyer could be removed, but it needs more 256 FLOAT\n\t\t\t * data. thinking about the data cache performance, I think we\n\t\t\t * should not use such a huge table. tt 2000/Oct/25\n\t\t\t */ s *= enwindow[wp + 6];\n w = t - s;\n a[30 + i * 2] = t + s;\n a[31 + i * 2] = enwindow[wp + 7] * w;\n wp += 18;\n x1Pos--;\n x2++;\n }\n var s, t, u, v;\n t = x1[x1Pos + -16] * enwindow[wp + -10];\n s = x1[x1Pos + -32] * enwindow[wp + -2];\n t += (x1[x1Pos + -48] - x1[x1Pos + 16]) * enwindow[wp + -9];\n s += x1[x1Pos + -96] * enwindow[wp + -1];\n t += (x1[x1Pos + -80] + x1[x1Pos + 48]) * enwindow[wp + -8];\n s += x1[x1Pos + -160] * enwindow[wp + 0];\n t += (x1[x1Pos + -112] - x1[x1Pos + 80]) * enwindow[wp + -7];\n s += x1[x1Pos + -224] * enwindow[wp + 1];\n t += (x1[x1Pos + -144] + x1[x1Pos + 112]) * enwindow[wp + -6];\n s -= x1[x1Pos + 32] * enwindow[wp + 2];\n t += (x1[x1Pos + -176] - x1[x1Pos + 144]) * enwindow[wp + -5];\n s -= x1[x1Pos + 96] * enwindow[wp + 3];\n t += (x1[x1Pos + -208] + x1[x1Pos + 176]) * enwindow[wp + -4];\n s -= x1[x1Pos + 160] * enwindow[wp + 4];\n t += (x1[x1Pos + -240] - x1[x1Pos + 208]) * enwindow[wp + -3];\n s -= x1[x1Pos + 224];\n u = s - t;\n v = s + t;\n t = a[14];\n s = a[15] - t;\n a[31] = v + t; /* A0 */ \n a[30] = u + s; /* A1 */ \n a[15] = u - s; /* A2 */ \n a[14] = v - t; /* A3 */ \n var xr;\n xr = a[28] - a[0];\n a[0] += a[28];\n a[28] = xr * enwindow[wp + -36 + 7];\n xr = a[29] - a[1];\n a[1] += a[29];\n a[29] = xr * enwindow[wp + -36 + 7];\n xr = a[26] - a[2];\n a[2] += a[26];\n a[26] = xr * enwindow[wp + -72 + 7];\n xr = a[27] - a[3];\n a[3] += a[27];\n a[27] = xr * enwindow[wp + -72 + 7];\n xr = a[24] - a[4];\n a[4] += a[24];\n a[24] = xr * enwindow[wp + -108 + 7];\n xr = a[25] - a[5];\n a[5] += a[25];\n a[25] = xr * enwindow[wp + -108 + 7];\n xr = a[22] - a[6];\n a[6] += a[22];\n a[22] = xr * $9c8c9409243421ca$var$Util.SQRT2;\n xr = a[23] - a[7];\n a[7] += a[23];\n a[23] = xr * $9c8c9409243421ca$var$Util.SQRT2 - a[7];\n a[7] -= a[6];\n a[22] -= a[7];\n a[23] -= a[22];\n xr = a[6];\n a[6] = a[31] - xr;\n a[31] = a[31] + xr;\n xr = a[7];\n a[7] = a[30] - xr;\n a[30] = a[30] + xr;\n xr = a[22];\n a[22] = a[15] - xr;\n a[15] = a[15] + xr;\n xr = a[23];\n a[23] = a[14] - xr;\n a[14] = a[14] + xr;\n xr = a[20] - a[8];\n a[8] += a[20];\n a[20] = xr * enwindow[wp + -180 + 7];\n xr = a[21] - a[9];\n a[9] += a[21];\n a[21] = xr * enwindow[wp + -180 + 7];\n xr = a[18] - a[10];\n a[10] += a[18];\n a[18] = xr * enwindow[wp + -216 + 7];\n xr = a[19] - a[11];\n a[11] += a[19];\n a[19] = xr * enwindow[wp + -216 + 7];\n xr = a[16] - a[12];\n a[12] += a[16];\n a[16] = xr * enwindow[wp + -252 + 7];\n xr = a[17] - a[13];\n a[13] += a[17];\n a[17] = xr * enwindow[wp + -252 + 7];\n xr = -a[20] + a[24];\n a[20] += a[24];\n a[24] = xr * enwindow[wp + -216 + 7];\n xr = -a[21] + a[25];\n a[21] += a[25];\n a[25] = xr * enwindow[wp + -216 + 7];\n xr = a[4] - a[8];\n a[4] += a[8];\n a[8] = xr * enwindow[wp + -216 + 7];\n xr = a[5] - a[9];\n a[5] += a[9];\n a[9] = xr * enwindow[wp + -216 + 7];\n xr = a[0] - a[12];\n a[0] += a[12];\n a[12] = xr * enwindow[wp + -72 + 7];\n xr = a[1] - a[13];\n a[1] += a[13];\n a[13] = xr * enwindow[wp + -72 + 7];\n xr = a[16] - a[28];\n a[16] += a[28];\n a[28] = xr * enwindow[wp + -72 + 7];\n xr = -a[17] + a[29];\n a[17] += a[29];\n a[29] = xr * enwindow[wp + -72 + 7];\n xr = $9c8c9409243421ca$var$Util.SQRT2 * (a[2] - a[10]);\n a[2] += a[10];\n a[10] = xr;\n xr = $9c8c9409243421ca$var$Util.SQRT2 * (a[3] - a[11]);\n a[3] += a[11];\n a[11] = xr;\n xr = $9c8c9409243421ca$var$Util.SQRT2 * (-a[18] + a[26]);\n a[18] += a[26];\n a[26] = xr - a[18];\n xr = $9c8c9409243421ca$var$Util.SQRT2 * (-a[19] + a[27]);\n a[19] += a[27];\n a[27] = xr - a[19];\n xr = a[2];\n a[19] -= a[3];\n a[3] -= xr;\n a[2] = a[31] - xr;\n a[31] += xr;\n xr = a[3];\n a[11] -= a[19];\n a[18] -= xr;\n a[3] = a[30] - xr;\n a[30] += xr;\n xr = a[18];\n a[27] -= a[11];\n a[19] -= xr;\n a[18] = a[15] - xr;\n a[15] += xr;\n xr = a[19];\n a[10] -= xr;\n a[19] = a[14] - xr;\n a[14] += xr;\n xr = a[10];\n a[11] -= xr;\n a[10] = a[23] - xr;\n a[23] += xr;\n xr = a[11];\n a[26] -= xr;\n a[11] = a[22] - xr;\n a[22] += xr;\n xr = a[26];\n a[27] -= xr;\n a[26] = a[7] - xr;\n a[7] += xr;\n xr = a[27];\n a[27] = a[6] - xr;\n a[6] += xr;\n xr = $9c8c9409243421ca$var$Util.SQRT2 * (a[0] - a[4]);\n a[0] += a[4];\n a[4] = xr;\n xr = $9c8c9409243421ca$var$Util.SQRT2 * (a[1] - a[5]);\n a[1] += a[5];\n a[5] = xr;\n xr = $9c8c9409243421ca$var$Util.SQRT2 * (a[16] - a[20]);\n a[16] += a[20];\n a[20] = xr;\n xr = $9c8c9409243421ca$var$Util.SQRT2 * (a[17] - a[21]);\n a[17] += a[21];\n a[21] = xr;\n xr = -$9c8c9409243421ca$var$Util.SQRT2 * (a[8] - a[12]);\n a[8] += a[12];\n a[12] = xr - a[8];\n xr = -$9c8c9409243421ca$var$Util.SQRT2 * (a[9] - a[13]);\n a[9] += a[13];\n a[13] = xr - a[9];\n xr = -$9c8c9409243421ca$var$Util.SQRT2 * (a[25] - a[29]);\n a[25] += a[29];\n a[29] = xr - a[25];\n xr = -$9c8c9409243421ca$var$Util.SQRT2 * (a[24] + a[28]);\n a[24] -= a[28];\n a[28] = xr - a[24];\n xr = a[24] - a[16];\n a[24] = xr;\n xr = a[20] - xr;\n a[20] = xr;\n xr = a[28] - xr;\n a[28] = xr;\n xr = a[25] - a[17];\n a[25] = xr;\n xr = a[21] - xr;\n a[21] = xr;\n xr = a[29] - xr;\n a[29] = xr;\n xr = a[17] - a[1];\n a[17] = xr;\n xr = a[9] - xr;\n a[9] = xr;\n xr = a[25] - xr;\n a[25] = xr;\n xr = a[5] - xr;\n a[5] = xr;\n xr = a[21] - xr;\n a[21] = xr;\n xr = a[13] - xr;\n a[13] = xr;\n xr = a[29] - xr;\n a[29] = xr;\n xr = a[1] - a[0];\n a[1] = xr;\n xr = a[16] - xr;\n a[16] = xr;\n xr = a[17] - xr;\n a[17] = xr;\n xr = a[8] - xr;\n a[8] = xr;\n xr = a[9] - xr;\n a[9] = xr;\n xr = a[24] - xr;\n a[24] = xr;\n xr = a[25] - xr;\n a[25] = xr;\n xr = a[4] - xr;\n a[4] = xr;\n xr = a[5] - xr;\n a[5] = xr;\n xr = a[20] - xr;\n a[20] = xr;\n xr = a[21] - xr;\n a[21] = xr;\n xr = a[12] - xr;\n a[12] = xr;\n xr = a[13] - xr;\n a[13] = xr;\n xr = a[28] - xr;\n a[28] = xr;\n xr = a[29] - xr;\n a[29] = xr;\n xr = a[0];\n a[0] += a[31];\n a[31] -= xr;\n xr = a[1];\n a[1] += a[30];\n a[30] -= xr;\n xr = a[16];\n a[16] += a[15];\n a[15] -= xr;\n xr = a[17];\n a[17] += a[14];\n a[14] -= xr;\n xr = a[8];\n a[8] += a[23];\n a[23] -= xr;\n xr = a[9];\n a[9] += a[22];\n a[22] -= xr;\n xr = a[24];\n a[24] += a[7];\n a[7] -= xr;\n xr = a[25];\n a[25] += a[6];\n a[6] -= xr;\n xr = a[4];\n a[4] += a[27];\n a[27] -= xr;\n xr = a[5];\n a[5] += a[26];\n a[26] -= xr;\n xr = a[20];\n a[20] += a[11];\n a[11] -= xr;\n xr = a[21];\n a[21] += a[10];\n a[10] -= xr;\n xr = a[12];\n a[12] += a[19];\n a[19] -= xr;\n xr = a[13];\n a[13] += a[18];\n a[18] -= xr;\n xr = a[28];\n a[28] += a[3];\n a[3] -= xr;\n xr = a[29];\n a[29] += a[2];\n a[2] -= xr;\n }\n /**\n\t * Function: Calculation of the MDCT In the case of long blocks (type 0,1,3)\n\t * there are 36 coefficents in the time domain and 18 in the frequency\n\t * domain.<BR>\n\t * In the case of short blocks (type 2) there are 3 transformations with\n\t * short length. This leads to 12 coefficents in the time and 6 in the\n\t * frequency domain. In this case the results are stored side by side in the\n\t * vector out[].\n\t *\n\t * New layer3\n\t */ function mdct_short(inout, inoutPos) {\n for(var l = 0; l < 3; l++){\n var tc0, tc1, tc2, ts0, ts1, ts2;\n ts0 = inout[inoutPos + 6] * win[$cPNKB.SHORT_TYPE][0] - inout[inoutPos + 15];\n tc0 = inout[inoutPos + 0] * win[$cPNKB.SHORT_TYPE][2] - inout[inoutPos + 9];\n tc1 = ts0 + tc0;\n tc2 = ts0 - tc0;\n ts0 = inout[inoutPos + 15] * win[$cPNKB.SHORT_TYPE][0] + inout[inoutPos + 6];\n tc0 = inout[inoutPos + 9] * win[$cPNKB.SHORT_TYPE][2] + inout[inoutPos + 0];\n ts1 = ts0 + tc0;\n ts2 = -ts0 + tc0;\n tc0 = (inout[inoutPos + 3] * win[$cPNKB.SHORT_TYPE][1] - inout[inoutPos + 12]) * 2.069978111953089e-11;\n /*\n\t\t\t * tritab_s [ 1 ]\n\t\t\t */ ts0 = (inout[inoutPos + 12] * win[$cPNKB.SHORT_TYPE][1] + inout[inoutPos + 3]) * 2.069978111953089e-11;\n /*\n\t\t\t * tritab_s [ 1 ]\n\t\t\t */ inout[inoutPos + 0] = tc1 * 1.907525191737280e-11 + tc0;\n /*\n\t\t\t * tritab_s[ 2 ]\n\t\t\t */ inout[inoutPos + 15] = -ts1 * 1.907525191737280e-11 + ts0;\n /*\n\t\t\t * tritab_s[0 ]\n\t\t\t */ tc2 = tc2 * 0.000000000016519652744032674;\n /*\n\t\t\t * tritab_s[ 2]\n\t\t\t */ ts1 = ts1 * 0.5 * 1.907525191737281e-11 + ts0;\n inout[inoutPos + 3] = tc2 - ts1;\n inout[inoutPos + 6] = tc2 + ts1;\n tc1 = tc1 * 0.5 * 1.907525191737281e-11 - tc0;\n ts2 = ts2 * 0.000000000016519652744032674;\n /*\n\t\t\t * tritab_s[ 0]\n\t\t\t */ inout[inoutPos + 9] = tc1 + ts2;\n inout[inoutPos + 12] = tc1 - ts2;\n inoutPos++;\n }\n }\n function mdct_long(out, outPos, _in) {\n var ct, st;\n var tc1, tc2, tc3, tc4, ts5, ts6, ts7, ts8;\n /* 1,2, 5,6, 9,10, 13,14, 17 */ tc1 = _in[17] - _in[9];\n tc3 = _in[15] - _in[11];\n tc4 = _in[14] - _in[12];\n ts5 = _in[0] + _in[8];\n ts6 = _in[1] + _in[7];\n ts7 = _in[2] + _in[6];\n ts8 = _in[3] + _in[5];\n out[outPos + 17] = ts5 + ts7 - ts8 - (ts6 - _in[4]);\n st = (ts5 + ts7 - ts8) * cx[19] + (ts6 - _in[4]);\n ct = (tc1 - tc3 - tc4) * cx[18];\n out[outPos + 5] = ct + st;\n out[outPos + 6] = ct - st;\n tc2 = (_in[16] - _in[10]) * cx[18];\n ts6 = ts6 * cx[19] + _in[4];\n ct = tc1 * cx[12] + tc2 + tc3 * cx[13] + tc4 * cx[14];\n st = -ts5 * cx[16] + ts6 - ts7 * cx[17] + ts8 * cx[15];\n out[outPos + 1] = ct + st;\n out[outPos + 2] = ct - st;\n ct = tc1 * cx[13] - tc2 - tc3 * cx[14] + tc4 * cx[12];\n st = -ts5 * cx[17] + ts6 - ts7 * cx[15] + ts8 * cx[16];\n out[outPos + 9] = ct + st;\n out[outPos + 10] = ct - st;\n ct = tc1 * cx[14] - tc2 + tc3 * cx[12] - tc4 * cx[13];\n st = ts5 * cx[15] - ts6 + ts7 * cx[16] - ts8 * cx[17];\n out[outPos + 13] = ct + st;\n out[outPos + 14] = ct - st;\n var ts1, ts2, ts3, ts4, tc5, tc6, tc7, tc8;\n ts1 = _in[8] - _in[0];\n ts3 = _in[6] - _in[2];\n ts4 = _in[5] - _in[3];\n tc5 = _in[17] + _in[9];\n tc6 = _in[16] + _in[10];\n tc7 = _in[15] + _in[11];\n tc8 = _in[14] + _in[12];\n out[outPos + 0] = tc5 + tc7 + tc8 + (tc6 + _in[13]);\n ct = (tc5 + tc7 + tc8) * cx[19] - (tc6 + _in[13]);\n st = (ts1 - ts3 + ts4) * cx[18];\n out[outPos + 11] = ct + st;\n out[outPos + 12] = ct - st;\n ts2 = (_in[7] - _in[1]) * cx[18];\n tc6 = _in[13] - tc6 * cx[19];\n ct = tc5 * cx[15] - tc6 + tc7 * cx[16] + tc8 * cx[17];\n st = ts1 * cx[14] + ts2 + ts3 * cx[12] + ts4 * cx[13];\n out[outPos + 3] = ct + st;\n out[outPos + 4] = ct - st;\n ct = -tc5 * cx[17] + tc6 - tc7 * cx[15] - tc8 * cx[16];\n st = ts1 * cx[13] + ts2 - ts3 * cx[14] - ts4 * cx[12];\n out[outPos + 7] = ct + st;\n out[outPos + 8] = ct - st;\n ct = -tc5 * cx[16] + tc6 - tc7 * cx[17] - tc8 * cx[15];\n st = ts1 * cx[12] - ts2 + ts3 * cx[13] - ts4 * cx[14];\n out[outPos + 15] = ct + st;\n out[outPos + 16] = ct - st;\n }\n this.mdct_sub48 = function(gfc, w0, w1) {\n var wk = w0;\n var wkPos = 286;\n /* thinking cache performance, ch->gr loop is better than gr->ch loop */ for(var ch = 0; ch < gfc.channels_out; ch++){\n for(var gr = 0; gr < gfc.mode_gr; gr++){\n var band;\n var gi = gfc.l3_side.tt[gr][ch];\n var mdct_enc = gi.xr;\n var mdct_encPos = 0;\n var samp = gfc.sb_sample[ch][1 - gr];\n var sampPos = 0;\n for(var k = 0; k < 9; k++){\n window_subband(wk, wkPos, samp[sampPos]);\n window_subband(wk, wkPos + 32, samp[sampPos + 1]);\n sampPos += 2;\n wkPos += 64;\n /*\n\t\t\t\t\t * Compensate for inversion in the analysis filter\n\t\t\t\t\t */ for(band = 1; band < 32; band += 2)samp[sampPos - 1][band] *= -1;\n }\n /*\n\t\t\t\t * Perform imdct of 18 previous subband samples + 18 current\n\t\t\t\t * subband samples\n\t\t\t\t */ for(band = 0; band < 32; band++, mdct_encPos += 18){\n var type = gi.block_type;\n var band0 = gfc.sb_sample[ch][gr];\n var band1 = gfc.sb_sample[ch][1 - gr];\n if (gi.mixed_block_flag != 0 && band < 2) type = 0;\n if (gfc.amp_filter[band] < 1e-12) $9c8c9409243421ca$var$Arrays.fill(mdct_enc, mdct_encPos + 0, mdct_encPos + 18, 0);\n else {\n if (gfc.amp_filter[band] < 1.0) for(var k = 0; k < 18; k++)band1[k][order[band]] *= gfc.amp_filter[band];\n if (type == $cPNKB.SHORT_TYPE) {\n for(var k = -NS / 4; k < 0; k++){\n var w = win[$cPNKB.SHORT_TYPE][k + 3];\n mdct_enc[mdct_encPos + k * 3 + 9] = band0[9 + k][order[band]] * w - band0[8 - k][order[band]];\n mdct_enc[mdct_encPos + k * 3 + 18] = band0[14 - k][order[band]] * w + band0[15 + k][order[band]];\n mdct_enc[mdct_encPos + k * 3 + 10] = band0[15 + k][order[band]] * w - band0[14 - k][order[band]];\n mdct_enc[mdct_encPos + k * 3 + 19] = band1[2 - k][order[band]] * w + band1[3 + k][order[band]];\n mdct_enc[mdct_encPos + k * 3 + 11] = band1[3 + k][order[band]] * w - band1[2 - k][order[band]];\n mdct_enc[mdct_encPos + k * 3 + 20] = band1[8 - k][order[band]] * w + band1[9 + k][order[band]];\n }\n mdct_short(mdct_enc, mdct_encPos);\n } else {\n var work = $9c8c9409243421ca$var$new_float(18);\n for(var k = -NL / 4; k < 0; k++){\n var a, b;\n a = win[type][k + 27] * band1[k + 9][order[band]] + win[type][k + 36] * band1[8 - k][order[band]];\n b = win[type][k + 9] * band0[k + 9][order[band]] - win[type][k + 18] * band0[8 - k][order[band]];\n work[k + 9] = a - b * tantab_l[3 + k + 9];\n work[k + 18] = a * tantab_l[3 + k + 9] + b;\n }\n mdct_long(mdct_enc, mdct_encPos, work);\n }\n }\n /*\n\t\t\t\t\t * Perform aliasing reduction butterfly\n\t\t\t\t\t */ if (type != $cPNKB.SHORT_TYPE && band != 0) for(var k = 7; k >= 0; --k){\n var bu, bd;\n bu = mdct_enc[mdct_encPos + k] * ca[20 + k] + mdct_enc[mdct_encPos + -1 - k] * cs[28 + k];\n bd = mdct_enc[mdct_encPos + k] * cs[28 + k] - mdct_enc[mdct_encPos + -1 - k] * ca[20 + k];\n mdct_enc[mdct_encPos + -1 - k] = bu;\n mdct_enc[mdct_encPos + k] = bd;\n }\n }\n }\n wk = w1;\n wkPos = 286;\n if (gfc.mode_gr == 1) for(var i = 0; i < 18; i++)$9c8c9409243421ca$var$System.arraycopy(gfc.sb_sample[ch][1][i], 0, gfc.sb_sample[ch][0][i], 0, 32);\n }\n };\n}\nmodule.exports = $9c8c9409243421ca$var$NewMDCT;\n\n});\n\nparcelRequire.register(\"hvy40\", function(module, exports) {\n//package mp3;\n\nvar $51XxS = parcelRequire(\"51XxS\");\nfunction $cbefc13b27188c2b$var$III_psy_ratio() {\n this.thm = new $51XxS();\n this.en = new $51XxS();\n}\nmodule.exports = $cbefc13b27188c2b$var$III_psy_ratio;\n\n});\nparcelRequire.register(\"51XxS\", function(module, exports) {\n\nvar $cPNKB = parcelRequire(\"cPNKB\");\n\nvar $3YDN3 = parcelRequire(\"3YDN3\");\nvar $3a9b3c3a1c7d1011$var$System = $3YDN3.System;\nvar $3a9b3c3a1c7d1011$var$VbrMode = $3YDN3.VbrMode;\nvar $3a9b3c3a1c7d1011$var$Float = $3YDN3.Float;\nvar $3a9b3c3a1c7d1011$var$ShortBlock = $3YDN3.ShortBlock;\nvar $3a9b3c3a1c7d1011$var$Util = $3YDN3.Util;\nvar $3a9b3c3a1c7d1011$var$Arrays = $3YDN3.Arrays;\nvar $3a9b3c3a1c7d1011$var$new_array_n = $3YDN3.new_array_n;\nvar $3a9b3c3a1c7d1011$var$new_byte = $3YDN3.new_byte;\nvar $3a9b3c3a1c7d1011$var$new_double = $3YDN3.new_double;\nvar $3a9b3c3a1c7d1011$var$new_float = $3YDN3.new_float;\nvar $3a9b3c3a1c7d1011$var$new_float_n = $3YDN3.new_float_n;\nvar $3a9b3c3a1c7d1011$var$new_int = $3YDN3.new_int;\nvar $3a9b3c3a1c7d1011$var$new_int_n = $3YDN3.new_int_n;\nvar $3a9b3c3a1c7d1011$var$assert = $3YDN3.assert;\nfunction $3a9b3c3a1c7d1011$var$III_psy_xmin() {\n this.l = $3a9b3c3a1c7d1011$var$new_float($cPNKB.SBMAX_l);\n this.s = $3a9b3c3a1c7d1011$var$new_float_n([\n $cPNKB.SBMAX_s,\n 3\n ]);\n var self = this;\n this.assign = function(iii_psy_xmin) {\n $3a9b3c3a1c7d1011$var$System.arraycopy(iii_psy_xmin.l, 0, self.l, 0, $cPNKB.SBMAX_l);\n for(var i = 0; i < $cPNKB.SBMAX_s; i++)for(var j = 0; j < 3; j++)self.s[i][j] = iii_psy_xmin.s[i][j];\n };\n}\nmodule.exports = $3a9b3c3a1c7d1011$var$III_psy_xmin;\n\n});\n\n\nparcelRequire.register(\"jL6I1\", function(module, exports) {\n//package mp3;\n/* MPEG modes */ function $e6279c632d7fdac0$var$MPEGMode(ordinal) {\n var _ordinal = ordinal;\n this.ordinal = function() {\n return _ordinal;\n };\n}\n$e6279c632d7fdac0$var$MPEGMode.STEREO = new $e6279c632d7fdac0$var$MPEGMode(0);\n$e6279c632d7fdac0$var$MPEGMode.JOINT_STEREO = new $e6279c632d7fdac0$var$MPEGMode(1);\n$e6279c632d7fdac0$var$MPEGMode.DUAL_CHANNEL = new $e6279c632d7fdac0$var$MPEGMode(2);\n$e6279c632d7fdac0$var$MPEGMode.MONO = new $e6279c632d7fdac0$var$MPEGMode(3);\n$e6279c632d7fdac0$var$MPEGMode.NOT_SET = new $e6279c632d7fdac0$var$MPEGMode(4);\nmodule.exports = $e6279c632d7fdac0$var$MPEGMode;\n\n});\n\n\n\n\nparcelRequire.register(\"5HJeD\", function(module, exports) {\n\nvar $jL6I1 = parcelRequire(\"jL6I1\");\nfunction $42740ea95db3cb8e$var$LameGlobalFlags() {\n this.class_id = 0;\n /* input description */ /**\n * number of samples. default=-1\n */ this.num_samples = 0;\n /**\n * input number of channels. default=2\n */ this.num_channels = 0;\n /**\n * input_samp_rate in Hz. default=44.1 kHz\n */ this.in_samplerate = 0;\n /**\n * output_samp_rate. default: LAME picks best value at least not used for\n * MP3 decoding: Remember 44.1 kHz MP3s and AC97\n */ this.out_samplerate = 0;\n /**\n * scale input by this amount before encoding at least not used for MP3\n * decoding\n */ this.scale = 0.;\n /**\n * scale input of channel 0 (left) by this amount before encoding\n */ this.scale_left = 0.;\n /**\n * scale input of channel 1 (right) by this amount before encoding\n */ this.scale_right = 0.;\n /* general control params */ /**\n * collect data for a MP3 frame analyzer?\n */ this.analysis = false;\n /**\n * add Xing VBR tag?\n */ this.bWriteVbrTag = false;\n /**\n * use lame/mpglib to convert mp3 to wav\n */ this.decode_only = false;\n /**\n * quality setting 0=best, 9=worst default=5\n */ this.quality = 0;\n /**\n * see enum default = LAME picks best value\n */ this.mode = $jL6I1.STEREO;\n /**\n * force M/S mode. requires mode=1\n */ this.force_ms = false;\n /**\n * use free format? default=0\n */ this.free_format = false;\n /**\n * find the RG value? default=0\n */ this.findReplayGain = false;\n /**\n * decode on the fly? default=0\n */ this.decode_on_the_fly = false;\n /**\n * 1 (default) writes ID3 tags, 0 not\n */ this.write_id3tag_automatic = false;\n /*\n * set either brate>0 or compression_ratio>0, LAME will compute the value of\n * the variable not set. Default is compression_ratio = 11.025\n */ /**\n * bitrate\n */ this.brate = 0;\n /**\n * sizeof(wav file)/sizeof(mp3 file)\n */ this.compression_ratio = 0.;\n /* frame params */ /**\n * mark as copyright. default=0\n */ this.copyright = 0;\n /**\n * mark as original. default=1\n */ this.original = 0;\n /**\n * the MP3 'private extension' bit. Meaningless\n */ this.extension = 0;\n /**\n * Input PCM is emphased PCM (for instance from one of the rarely emphased\n * CDs), it is STRONGLY not recommended to use this, because psycho does not\n * take it into account, and last but not least many decoders don't care\n * about these bits\n */ this.emphasis = 0;\n /**\n * use 2 bytes per frame for a CRC checksum. default=0\n */ this.error_protection = 0;\n /**\n * enforce ISO spec as much as possible\n */ this.strict_ISO = false;\n /**\n * use bit reservoir?\n */ this.disable_reservoir = false;\n /* quantization/noise shaping */ this.quant_comp = 0;\n this.quant_comp_short = 0;\n this.experimentalY = false;\n this.experimentalZ = 0;\n this.exp_nspsytune = 0;\n this.preset = 0;\n /* VBR control */ this.VBR = null;\n /**\n * Range [0,...,1[\n */ this.VBR_q_frac = 0.;\n /**\n * Range [0,...,9]\n */ this.VBR_q = 0;\n this.VBR_mean_bitrate_kbps = 0;\n this.VBR_min_bitrate_kbps = 0;\n this.VBR_max_bitrate_kbps = 0;\n /**\n * strictly enforce VBR_min_bitrate normaly, it will be violated for analog\n * silence\n */ this.VBR_hard_min = 0;\n /* resampling and filtering */ /**\n * freq in Hz. 0=lame choses. -1=no filter\n */ this.lowpassfreq = 0;\n /**\n * freq in Hz. 0=lame choses. -1=no filter\n */ this.highpassfreq = 0;\n /**\n * freq width of filter, in Hz (default=15%)\n */ this.lowpasswidth = 0;\n /**\n * freq width of filter, in Hz (default=15%)\n */ this.highpasswidth = 0;\n /*\n * psycho acoustics and other arguments which you should not change unless\n * you know what you are doing\n */ this.maskingadjust = 0.;\n this.maskingadjust_short = 0.;\n /**\n * only use ATH\n */ this.ATHonly = false;\n /**\n * only use ATH for short blocks\n */ this.ATHshort = false;\n /**\n * disable ATH\n */ this.noATH = false;\n /**\n * select ATH formula\n */ this.ATHtype = 0;\n /**\n * change ATH formula 4 shape\n */ this.ATHcurve = 0.;\n /**\n * lower ATH by this many db\n */ this.ATHlower = 0.;\n /**\n * select ATH auto-adjust scheme\n */ this.athaa_type = 0;\n /**\n * select ATH auto-adjust loudness calc\n */ this.athaa_loudapprox = 0;\n /**\n * dB, tune active region of auto-level\n */ this.athaa_sensitivity = 0.;\n this.short_blocks = null;\n /**\n * use temporal masking effect\n */ this.useTemporal = false;\n this.interChRatio = 0.;\n /**\n * Naoki's adjustment of Mid/Side maskings\n */ this.msfix = 0.;\n /**\n * 0 off, 1 on\n */ this.tune = false;\n /**\n * used to pass values for debugging and stuff\n */ this.tune_value_a = 0.;\n /************************************************************************/ /* internal variables, do not set... */ /* provided because they may be of use to calling application */ /************************************************************************/ /**\n * 0=MPEG-2/2.5 1=MPEG-1\n */ this.version = 0;\n this.encoder_delay = 0;\n /**\n * number of samples of padding appended to input\n */ this.encoder_padding = 0;\n this.framesize = 0;\n /**\n * number of frames encoded\n */ this.frameNum = 0;\n /**\n * is this struct owned by calling program or lame?\n */ this.lame_allocated_gfp = 0;\n /**************************************************************************/ /* more internal variables are stored in this structure: */ /**************************************************************************/ this.internal_flags = null;\n}\nmodule.exports = $42740ea95db3cb8e$var$LameGlobalFlags;\n\n});\n\nparcelRequire.register(\"4SDnr\", function(module, exports) {\n\nvar $3YDN3 = parcelRequire(\"3YDN3\");\nvar $38dac00579cf6ffc$var$System = $3YDN3.System;\nvar $38dac00579cf6ffc$var$VbrMode = $3YDN3.VbrMode;\nvar $38dac00579cf6ffc$var$Float = $3YDN3.Float;\nvar $38dac00579cf6ffc$var$ShortBlock = $3YDN3.ShortBlock;\nvar $38dac00579cf6ffc$var$Util = $3YDN3.Util;\nvar $38dac00579cf6ffc$var$Arrays = $3YDN3.Arrays;\nvar $38dac00579cf6ffc$var$new_array_n = $3YDN3.new_array_n;\nvar $38dac00579cf6ffc$var$new_byte = $3YDN3.new_byte;\nvar $38dac00579cf6ffc$var$new_double = $3YDN3.new_double;\nvar $38dac00579cf6ffc$var$new_float = $3YDN3.new_float;\nvar $38dac00579cf6ffc$var$new_float_n = $3YDN3.new_float_n;\nvar $38dac00579cf6ffc$var$new_int = $3YDN3.new_int;\nvar $38dac00579cf6ffc$var$new_int_n = $3YDN3.new_int_n;\nvar $38dac00579cf6ffc$var$assert = $3YDN3.assert;\n\nvar $eWXBy = parcelRequire(\"eWXBy\");\n\nvar $7imnH = parcelRequire(\"7imnH\");\n\nvar $7yzUB = parcelRequire(\"7yzUB\");\n\nvar $jTmCQ = parcelRequire(\"jTmCQ\");\n\nvar $51XxS = parcelRequire(\"51XxS\");\n\nvar $cPNKB = parcelRequire(\"cPNKB\");\n\nvar $arIi9 = parcelRequire(\"arIi9\");\n$38dac00579cf6ffc$var$LameInternalFlags.MFSIZE = 3456 + $cPNKB.ENCDELAY - $cPNKB.MDCTDELAY;\n$38dac00579cf6ffc$var$LameInternalFlags.MAX_HEADER_BUF = 256;\n$38dac00579cf6ffc$var$LameInternalFlags.MAX_BITS_PER_CHANNEL = 4095;\n$38dac00579cf6ffc$var$LameInternalFlags.MAX_BITS_PER_GRANULE = 7680;\n$38dac00579cf6ffc$var$LameInternalFlags.BPC = 320;\nfunction $38dac00579cf6ffc$var$LameInternalFlags() {\n var MAX_HEADER_LEN = 40;\n /********************************************************************\n * internal variables NOT set by calling program, and should not be *\n * modified by the calling program *\n ********************************************************************/ /**\n * Some remarks to the Class_ID field: The Class ID is an Identifier for a\n * pointer to this struct. It is very unlikely that a pointer to\n * lame_global_flags has the same 32 bits in it's structure (large and other\n * special properties, for instance prime).\n *\n * To test that the structure is right and initialized, use: if ( gfc .\n * Class_ID == LAME_ID ) ... Other remark: If you set a flag to 0 for uninit\n * data and 1 for init data, the right test should be \"if (flag == 1)\" and\n * NOT \"if (flag)\". Unintended modification of this element will be\n * otherwise misinterpreted as an init.\n */ this.Class_ID = 0;\n this.lame_encode_frame_init = 0;\n this.iteration_init_init = 0;\n this.fill_buffer_resample_init = 0;\n //public float mfbuf[][] = new float[2][MFSIZE];\n this.mfbuf = $38dac00579cf6ffc$var$new_float_n([\n 2,\n $38dac00579cf6ffc$var$LameInternalFlags.MFSIZE\n ]);\n /**\n * granules per frame\n */ this.mode_gr = 0;\n /**\n * number of channels in the input data stream (PCM or decoded PCM)\n */ this.channels_in = 0;\n /**\n * number of channels in the output data stream (not used for decoding)\n */ this.channels_out = 0;\n /**\n * input_samp_rate/output_samp_rate\n */ //public double resample_ratio;\n this.resample_ratio = 0.;\n this.mf_samples_to_encode = 0;\n this.mf_size = 0;\n /**\n * min bitrate index\n */ this.VBR_min_bitrate = 0;\n /**\n * max bitrate index\n */ this.VBR_max_bitrate = 0;\n this.bitrate_index = 0;\n this.samplerate_index = 0;\n this.mode_ext = 0;\n /* lowpass and highpass filter control */ /**\n * normalized frequency bounds of passband\n */ this.lowpass1 = 0.;\n this.lowpass2 = 0.;\n /**\n * normalized frequency bounds of passband\n */ this.highpass1 = 0.;\n this.highpass2 = 0.;\n /**\n * 0 = none 1 = ISO AAC model 2 = allow scalefac_select=1\n */ this.noise_shaping = 0;\n /**\n * 0 = ISO model: amplify all distorted bands<BR>\n * 1 = amplify within 50% of max (on db scale)<BR>\n * 2 = amplify only most distorted band<BR>\n * 3 = method 1 and refine with method 2<BR>\n */ this.noise_shaping_amp = 0;\n /**\n * 0 = no substep<BR>\n * 1 = use substep shaping at last step(VBR only)<BR>\n * (not implemented yet)<BR>\n * 2 = use substep inside loop<BR>\n * 3 = use substep inside loop and last step<BR>\n */ this.substep_shaping = 0;\n /**\n * 1 = gpsycho. 0 = none\n */ this.psymodel = 0;\n /**\n * 0 = stop at over=0, all scalefacs amplified or<BR>\n * a scalefac has reached max value<BR>\n * 1 = stop when all scalefacs amplified or a scalefac has reached max value<BR>\n * 2 = stop when all scalefacs amplified\n */ this.noise_shaping_stop = 0;\n /**\n * 0 = no, 1 = yes\n */ this.subblock_gain = 0;\n /**\n * 0 = no. 1=outside loop 2=inside loop(slow)\n */ this.use_best_huffman = 0;\n /**\n * 0 = stop early after 0 distortion found. 1 = full search\n */ this.full_outer_loop = 0;\n //public IIISideInfo l3_side = new IIISideInfo();\n this.l3_side = new $eWXBy();\n this.ms_ratio = $38dac00579cf6ffc$var$new_float(2);\n /* used for padding */ /**\n * padding for the current frame?\n */ this.padding = 0;\n this.frac_SpF = 0;\n this.slot_lag = 0;\n /**\n * optional ID3 tags\n */ //public ID3TagSpec tag_spec;\n this.tag_spec = null;\n this.nMusicCRC = 0;\n /* variables used by Quantize */ //public int OldValue[] = new int[2];\n this.OldValue = $38dac00579cf6ffc$var$new_int(2);\n //public int CurrentStep[] = new int[2];\n this.CurrentStep = $38dac00579cf6ffc$var$new_int(2);\n this.masking_lower = 0.;\n //public int bv_scf[] = new int[576];\n this.bv_scf = $38dac00579cf6ffc$var$new_int(576);\n //public int pseudohalf[] = new int[L3Side.SFBMAX];\n this.pseudohalf = $38dac00579cf6ffc$var$new_int($arIi9.SFBMAX);\n /**\n * will be set in lame_init_params\n */ this.sfb21_extra = false;\n /* BPC = maximum number of filter convolution windows to precompute */ //public float[][] inbuf_old = new float[2][];\n this.inbuf_old = new Array(2);\n //public float[][] blackfilt = new float[2 * BPC + 1][];\n this.blackfilt = new Array(2 * $38dac00579cf6ffc$var$LameInternalFlags.BPC + 1);\n //public double itime[] = new double[2];\n this.itime = $38dac00579cf6ffc$var$new_double(2);\n this.sideinfo_len = 0;\n /* variables for newmdct.c */ //public float sb_sample[][][][] = new float[2][2][18][Encoder.SBLIMIT];\n this.sb_sample = $38dac00579cf6ffc$var$new_float_n([\n 2,\n 2,\n 18,\n $cPNKB.SBLIMIT\n ]);\n this.amp_filter = $38dac00579cf6ffc$var$new_float(32);\n /* variables for BitStream */ /**\n * <PRE>\n * mpeg1: buffer=511 bytes smallest frame: 96-38(sideinfo)=58\n * max number of frames in reservoir: 8\n * mpeg2: buffer=255 bytes. smallest frame: 24-23bytes=1\n * with VBR, if you are encoding all silence, it is possible to\n * have 8kbs/24khz frames with 1byte of data each, which means we need\n * to buffer up to 255 headers!\n * </PRE>\n */ /**\n * also, max_header_buf has to be a power of two\n */ /**\n * max size of header is 38\n */ function Header() {\n this.write_timing = 0;\n this.ptr = 0;\n //public byte buf[] = new byte[MAX_HEADER_LEN];\n this.buf = $38dac00579cf6ffc$var$new_byte(MAX_HEADER_LEN);\n }\n this.header = new Array($38dac00579cf6ffc$var$LameInternalFlags.MAX_HEADER_BUF);\n this.h_ptr = 0;\n this.w_ptr = 0;\n this.ancillary_flag = 0;\n /* variables for Reservoir */ /**\n * in bits\n */ this.ResvSize = 0;\n /**\n * in bits\n */ this.ResvMax = 0;\n //public ScaleFac scalefac_band = new ScaleFac();\n this.scalefac_band = new $7imnH();\n /* daa from PsyModel */ /* The static variables \"r\", \"phi_sav\", \"new\", \"old\" and \"oldest\" have */ /* to be remembered for the unpredictability measure. For \"r\" and */ /* \"phi_sav\", the first index from the left is the channel select and */ /* the second index is the \"age\" of the data. */ this.minval_l = $38dac00579cf6ffc$var$new_float($cPNKB.CBANDS);\n this.minval_s = $38dac00579cf6ffc$var$new_float($cPNKB.CBANDS);\n this.nb_1 = $38dac00579cf6ffc$var$new_float_n([\n 4,\n $cPNKB.CBANDS\n ]);\n this.nb_2 = $38dac00579cf6ffc$var$new_float_n([\n 4,\n $cPNKB.CBANDS\n ]);\n this.nb_s1 = $38dac00579cf6ffc$var$new_float_n([\n 4,\n $cPNKB.CBANDS\n ]);\n this.nb_s2 = $38dac00579cf6ffc$var$new_float_n([\n 4,\n $cPNKB.CBANDS\n ]);\n this.s3_ss = null;\n this.s3_ll = null;\n this.decay = 0.;\n //public III_psy_xmin[] thm = new III_psy_xmin[4];\n //public III_psy_xmin[] en = new III_psy_xmin[4];\n this.thm = new Array(4);\n this.en = new Array(4);\n /**\n * fft and energy calculation\n */ this.tot_ener = $38dac00579cf6ffc$var$new_float(4);\n /* loudness calculation (for adaptive threshold of hearing) */ /**\n * loudness^2 approx. per granule and channel\n */ this.loudness_sq = $38dac00579cf6ffc$var$new_float_n([\n 2,\n 2\n ]);\n /**\n * account for granule delay of L3psycho_anal\n */ this.loudness_sq_save = $38dac00579cf6ffc$var$new_float(2);\n /**\n * Scale Factor Bands\n */ this.mld_l = $38dac00579cf6ffc$var$new_float($cPNKB.SBMAX_l);\n this.mld_s = $38dac00579cf6ffc$var$new_float($cPNKB.SBMAX_s);\n this.bm_l = $38dac00579cf6ffc$var$new_int($cPNKB.SBMAX_l);\n this.bo_l = $38dac00579cf6ffc$var$new_int($cPNKB.SBMAX_l);\n this.bm_s = $38dac00579cf6ffc$var$new_int($cPNKB.SBMAX_s);\n this.bo_s = $38dac00579cf6ffc$var$new_int($cPNKB.SBMAX_s);\n this.npart_l = 0;\n this.npart_s = 0;\n this.s3ind = $38dac00579cf6ffc$var$new_int_n([\n $cPNKB.CBANDS,\n 2\n ]);\n this.s3ind_s = $38dac00579cf6ffc$var$new_int_n([\n $cPNKB.CBANDS,\n 2\n ]);\n this.numlines_s = $38dac00579cf6ffc$var$new_int($cPNKB.CBANDS);\n this.numlines_l = $38dac00579cf6ffc$var$new_int($cPNKB.CBANDS);\n this.rnumlines_l = $38dac00579cf6ffc$var$new_float($cPNKB.CBANDS);\n this.mld_cb_l = $38dac00579cf6ffc$var$new_float($cPNKB.CBANDS);\n this.mld_cb_s = $38dac00579cf6ffc$var$new_float($cPNKB.CBANDS);\n this.numlines_s_num1 = 0;\n this.numlines_l_num1 = 0;\n /* ratios */ this.pe = $38dac00579cf6ffc$var$new_float(4);\n this.ms_ratio_s_old = 0.;\n this.ms_ratio_l_old = 0.;\n this.ms_ener_ratio_old = 0.;\n /**\n * block type\n */ this.blocktype_old = $38dac00579cf6ffc$var$new_int(2);\n /**\n * variables used for --nspsytune\n */ this.nsPsy = new $7yzUB();\n /**\n * used for Xing VBR header\n */ this.VBR_seek_table = new $jTmCQ();\n /**\n * all ATH related stuff\n */ //public ATH ATH;\n this.ATH = null;\n this.PSY = null;\n this.nogap_total = 0;\n this.nogap_current = 0;\n /* ReplayGain */ this.decode_on_the_fly = true;\n this.findReplayGain = true;\n this.findPeakSample = true;\n this.PeakSample = 0.;\n this.RadioGain = 0;\n this.AudiophileGain = 0;\n //public ReplayGain rgdata;\n this.rgdata = null;\n /**\n * gain change required for preventing clipping\n */ this.noclipGainChange = 0;\n /**\n * user-specified scale factor required for preventing clipping\n */ this.noclipScale = 0.;\n /* simple statistics */ this.bitrate_stereoMode_Hist = $38dac00579cf6ffc$var$new_int_n([\n 16,\n 5\n ]);\n /**\n * norm/start/short/stop/mixed(short)/sum\n */ this.bitrate_blockType_Hist = $38dac00579cf6ffc$var$new_int_n([\n 16,\n 6\n ]);\n //public PlottingData pinfo;\n //public MPGLib.mpstr_tag hip;\n this.pinfo = null;\n this.hip = null;\n this.in_buffer_nsamples = 0;\n //public float[] in_buffer_0;\n //public float[] in_buffer_1;\n this.in_buffer_0 = null;\n this.in_buffer_1 = null;\n //public IIterationLoop iteration_loop;\n this.iteration_loop = null;\n for(var i = 0; i < this.en.length; i++)this.en[i] = new $51XxS();\n for(var i = 0; i < this.thm.length; i++)this.thm[i] = new $51XxS();\n for(var i = 0; i < this.header.length; i++)this.header[i] = new Header();\n}\nmodule.exports = $38dac00579cf6ffc$var$LameInternalFlags;\n\n});\nparcelRequire.register(\"eWXBy\", function(module, exports) {\n\nvar $3YDN3 = parcelRequire(\"3YDN3\");\nvar $ae24b7bb56fee1da$var$System = $3YDN3.System;\nvar $ae24b7bb56fee1da$var$VbrMode = $3YDN3.VbrMode;\nvar $ae24b7bb56fee1da$var$Float = $3YDN3.Float;\nvar $ae24b7bb56fee1da$var$ShortBlock = $3YDN3.ShortBlock;\nvar $ae24b7bb56fee1da$var$Util = $3YDN3.Util;\nvar $ae24b7bb56fee1da$var$Arrays = $3YDN3.Arrays;\nvar $ae24b7bb56fee1da$var$new_array_n = $3YDN3.new_array_n;\nvar $ae24b7bb56fee1da$var$new_byte = $3YDN3.new_byte;\nvar $ae24b7bb56fee1da$var$new_double = $3YDN3.new_double;\nvar $ae24b7bb56fee1da$var$new_float = $3YDN3.new_float;\nvar $ae24b7bb56fee1da$var$new_float_n = $3YDN3.new_float_n;\nvar $ae24b7bb56fee1da$var$new_int = $3YDN3.new_int;\nvar $ae24b7bb56fee1da$var$new_int_n = $3YDN3.new_int_n;\nvar $ae24b7bb56fee1da$var$assert = $3YDN3.assert;\n\nvar $7weBo = parcelRequire(\"7weBo\");\nfunction $ae24b7bb56fee1da$var$IIISideInfo() {\n this.tt = [\n [\n null,\n null\n ],\n [\n null,\n null\n ]\n ];\n this.main_data_begin = 0;\n this.private_bits = 0;\n this.resvDrain_pre = 0;\n this.resvDrain_post = 0;\n this.scfsi = [\n $ae24b7bb56fee1da$var$new_int(4),\n $ae24b7bb56fee1da$var$new_int(4)\n ];\n for(var gr = 0; gr < 2; gr++)for(var ch = 0; ch < 2; ch++)this.tt[gr][ch] = new $7weBo();\n}\nmodule.exports = $ae24b7bb56fee1da$var$IIISideInfo;\n\n});\nparcelRequire.register(\"7weBo\", function(module, exports) {\n//package mp3;\n\nvar $3YDN3 = parcelRequire(\"3YDN3\");\nvar $5796d93ba9162632$var$System = $3YDN3.System;\nvar $5796d93ba9162632$var$VbrMode = $3YDN3.VbrMode;\nvar $5796d93ba9162632$var$Float = $3YDN3.Float;\nvar $5796d93ba9162632$var$ShortBlock = $3YDN3.ShortBlock;\nvar $5796d93ba9162632$var$Util = $3YDN3.Util;\nvar $5796d93ba9162632$var$Arrays = $3YDN3.Arrays;\nvar $5796d93ba9162632$var$new_array_n = $3YDN3.new_array_n;\nvar $5796d93ba9162632$var$new_byte = $3YDN3.new_byte;\nvar $5796d93ba9162632$var$new_double = $3YDN3.new_double;\nvar $5796d93ba9162632$var$new_float = $3YDN3.new_float;\nvar $5796d93ba9162632$var$new_float_n = $3YDN3.new_float_n;\nvar $5796d93ba9162632$var$new_int = $3YDN3.new_int;\nvar $5796d93ba9162632$var$new_int_n = $3YDN3.new_int_n;\nvar $5796d93ba9162632$var$assert = $3YDN3.assert;\n\nvar $arIi9 = parcelRequire(\"arIi9\");\nfunction $5796d93ba9162632$var$GrInfo() {\n //float xr[] = new float[576];\n this.xr = $5796d93ba9162632$var$new_float(576);\n //int l3_enc[] = new int[576];\n this.l3_enc = $5796d93ba9162632$var$new_int(576);\n //int scalefac[] = new int[L3Side.SFBMAX];\n this.scalefac = $5796d93ba9162632$var$new_int($arIi9.SFBMAX);\n this.xrpow_max = 0.;\n this.part2_3_length = 0;\n this.big_values = 0;\n this.count1 = 0;\n this.global_gain = 0;\n this.scalefac_compress = 0;\n this.block_type = 0;\n this.mixed_block_flag = 0;\n this.table_select = $5796d93ba9162632$var$new_int(3);\n this.subblock_gain = $5796d93ba9162632$var$new_int(4);\n this.region0_count = 0;\n this.region1_count = 0;\n this.preflag = 0;\n this.scalefac_scale = 0;\n this.count1table_select = 0;\n this.part2_length = 0;\n this.sfb_lmax = 0;\n this.sfb_smin = 0;\n this.psy_lmax = 0;\n this.sfbmax = 0;\n this.psymax = 0;\n this.sfbdivide = 0;\n this.width = $5796d93ba9162632$var$new_int($arIi9.SFBMAX);\n this.window = $5796d93ba9162632$var$new_int($arIi9.SFBMAX);\n this.count1bits = 0;\n /**\n * added for LSF\n */ this.sfb_partition_table = null;\n this.slen = $5796d93ba9162632$var$new_int(4);\n this.max_nonzero_coeff = 0;\n var self = this;\n function clone_int(array) {\n return new Int32Array(array);\n }\n function clone_float(array) {\n return new Float32Array(array);\n }\n this.assign = function(other) {\n self.xr = clone_float(other.xr); //.slice(0); //clone();\n self.l3_enc = clone_int(other.l3_enc); //.slice(0); //clone();\n self.scalefac = clone_int(other.scalefac); //.slice(0); //clone();\n self.xrpow_max = other.xrpow_max;\n self.part2_3_length = other.part2_3_length;\n self.big_values = other.big_values;\n self.count1 = other.count1;\n self.global_gain = other.global_gain;\n self.scalefac_compress = other.scalefac_compress;\n self.block_type = other.block_type;\n self.mixed_block_flag = other.mixed_block_flag;\n self.table_select = clone_int(other.table_select); //.slice(0); //clone();\n self.subblock_gain = clone_int(other.subblock_gain); //.slice(0); //.clone();\n self.region0_count = other.region0_count;\n self.region1_count = other.region1_count;\n self.preflag = other.preflag;\n self.scalefac_scale = other.scalefac_scale;\n self.count1table_select = other.count1table_select;\n self.part2_length = other.part2_length;\n self.sfb_lmax = other.sfb_lmax;\n self.sfb_smin = other.sfb_smin;\n self.psy_lmax = other.psy_lmax;\n self.sfbmax = other.sfbmax;\n self.psymax = other.psymax;\n self.sfbdivide = other.sfbdivide;\n self.width = clone_int(other.width); //.slice(0); //.clone();\n self.window = clone_int(other.window); //.slice(0); //.clone();\n self.count1bits = other.count1bits;\n self.sfb_partition_table = other.sfb_partition_table.slice(0); //.clone();\n self.slen = clone_int(other.slen); //.slice(0); //.clone();\n self.max_nonzero_coeff = other.max_nonzero_coeff;\n };\n}\nmodule.exports = $5796d93ba9162632$var$GrInfo;\n\n});\nparcelRequire.register(\"arIi9\", function(module, exports) {\n\nvar $cPNKB = parcelRequire(\"cPNKB\");\nvar $79aec86e829b6e82$var$L3Side = {};\n/**\n\t * max scalefactor band, max(SBMAX_l, SBMAX_s*3, (SBMAX_s-3)*3+8)\n\t */ $79aec86e829b6e82$var$L3Side.SFBMAX = $cPNKB.SBMAX_s * 3;\nmodule.exports = $79aec86e829b6e82$var$L3Side;\n\n});\n\n\n\nparcelRequire.register(\"7imnH\", function(module, exports) {\n//package mp3;\n/**\n * Layer III side information.\n *\n * @author Ken\n *\n */ \nvar $3YDN3 = parcelRequire(\"3YDN3\");\nvar $54fb93475471cb87$var$System = $3YDN3.System;\nvar $54fb93475471cb87$var$VbrMode = $3YDN3.VbrMode;\nvar $54fb93475471cb87$var$Float = $3YDN3.Float;\nvar $54fb93475471cb87$var$ShortBlock = $3YDN3.ShortBlock;\nvar $54fb93475471cb87$var$Util = $3YDN3.Util;\nvar $54fb93475471cb87$var$Arrays = $3YDN3.Arrays;\nvar $54fb93475471cb87$var$new_array_n = $3YDN3.new_array_n;\nvar $54fb93475471cb87$var$new_byte = $3YDN3.new_byte;\nvar $54fb93475471cb87$var$new_double = $3YDN3.new_double;\nvar $54fb93475471cb87$var$new_float = $3YDN3.new_float;\nvar $54fb93475471cb87$var$new_float_n = $3YDN3.new_float_n;\nvar $54fb93475471cb87$var$new_int = $3YDN3.new_int;\nvar $54fb93475471cb87$var$new_int_n = $3YDN3.new_int_n;\nvar $54fb93475471cb87$var$assert = $3YDN3.assert;\n\nvar $cPNKB = parcelRequire(\"cPNKB\");\nfunction $54fb93475471cb87$var$ScaleFac(arrL, arrS, arr21, arr12) {\n this.l = $54fb93475471cb87$var$new_int(1 + $cPNKB.SBMAX_l);\n this.s = $54fb93475471cb87$var$new_int(1 + $cPNKB.SBMAX_s);\n this.psfb21 = $54fb93475471cb87$var$new_int(1 + $cPNKB.PSFB21);\n this.psfb12 = $54fb93475471cb87$var$new_int(1 + $cPNKB.PSFB12);\n var l = this.l;\n var s = this.s;\n if (arguments.length == 4) {\n //public ScaleFac(final int[] arrL, final int[] arrS, final int[] arr21,\n // final int[] arr12) {\n this.arrL = arguments[0];\n this.arrS = arguments[1];\n this.arr21 = arguments[2];\n this.arr12 = arguments[3];\n $54fb93475471cb87$var$System.arraycopy(this.arrL, 0, l, 0, Math.min(this.arrL.length, this.l.length));\n $54fb93475471cb87$var$System.arraycopy(this.arrS, 0, s, 0, Math.min(this.arrS.length, this.s.length));\n $54fb93475471cb87$var$System.arraycopy(this.arr21, 0, this.psfb21, 0, Math.min(this.arr21.length, this.psfb21.length));\n $54fb93475471cb87$var$System.arraycopy(this.arr12, 0, this.psfb12, 0, Math.min(this.arr12.length, this.psfb12.length));\n }\n}\nmodule.exports = $54fb93475471cb87$var$ScaleFac;\n\n});\n\nparcelRequire.register(\"7yzUB\", function(module, exports) {\n\nvar $3YDN3 = parcelRequire(\"3YDN3\");\nvar $580790bdd94a8b57$var$System = $3YDN3.System;\nvar $580790bdd94a8b57$var$VbrMode = $3YDN3.VbrMode;\nvar $580790bdd94a8b57$var$Float = $3YDN3.Float;\nvar $580790bdd94a8b57$var$ShortBlock = $3YDN3.ShortBlock;\nvar $580790bdd94a8b57$var$Util = $3YDN3.Util;\nvar $580790bdd94a8b57$var$Arrays = $3YDN3.Arrays;\nvar $580790bdd94a8b57$var$new_array_n = $3YDN3.new_array_n;\nvar $580790bdd94a8b57$var$new_byte = $3YDN3.new_byte;\nvar $580790bdd94a8b57$var$new_double = $3YDN3.new_double;\nvar $580790bdd94a8b57$var$new_float = $3YDN3.new_float;\nvar $580790bdd94a8b57$var$new_float_n = $3YDN3.new_float_n;\nvar $580790bdd94a8b57$var$new_int = $3YDN3.new_int;\nvar $580790bdd94a8b57$var$new_int_n = $3YDN3.new_int_n;\nvar $580790bdd94a8b57$var$assert = $3YDN3.assert;\n\nvar $cPNKB = parcelRequire(\"cPNKB\");\n//package mp3;\n/**\n * Variables used for --nspsytune\n *\n * @author Ken\n *\n */ function $580790bdd94a8b57$var$NsPsy() {\n this.last_en_subshort = $580790bdd94a8b57$var$new_float_n([\n 4,\n 9\n ]);\n this.lastAttacks = $580790bdd94a8b57$var$new_int(4);\n this.pefirbuf = $580790bdd94a8b57$var$new_float(19);\n this.longfact = $580790bdd94a8b57$var$new_float($cPNKB.SBMAX_l);\n this.shortfact = $580790bdd94a8b57$var$new_float($cPNKB.SBMAX_s);\n /**\n * short block tuning\n */ this.attackthre = 0.;\n this.attackthre_s = 0.;\n}\nmodule.exports = $580790bdd94a8b57$var$NsPsy;\n\n});\n\nparcelRequire.register(\"jTmCQ\", function(module, exports) {\n//package mp3;\nfunction $e7b4b455db8db26b$var$VBRSeekInfo() {\n /**\n * What we have seen so far.\n */ this.sum = 0;\n /**\n * How many frames we have seen in this chunk.\n */ this.seen = 0;\n /**\n * How many frames we want to collect into one chunk.\n */ this.want = 0;\n /**\n * Actual position in our bag.\n */ this.pos = 0;\n /**\n * Size of our bag.\n */ this.size = 0;\n /**\n * Pointer to our bag.\n */ this.bag = null;\n this.nVbrNumFrames = 0;\n this.nBytesWritten = 0;\n /* VBR tag data */ this.TotalFrameSize = 0;\n}\nmodule.exports = $e7b4b455db8db26b$var$VBRSeekInfo;\n\n});\n\n\nparcelRequire.register(\"cU3Yf\", function(module, exports) {\n\nvar $3YDN3 = parcelRequire(\"3YDN3\");\nvar $964dcb8066029e00$var$System = $3YDN3.System;\nvar $964dcb8066029e00$var$VbrMode = $3YDN3.VbrMode;\nvar $964dcb8066029e00$var$Float = $3YDN3.Float;\nvar $964dcb8066029e00$var$ShortBlock = $3YDN3.ShortBlock;\nvar $964dcb8066029e00$var$Util = $3YDN3.Util;\nvar $964dcb8066029e00$var$Arrays = $3YDN3.Arrays;\nvar $964dcb8066029e00$var$new_array_n = $3YDN3.new_array_n;\nvar $964dcb8066029e00$var$new_byte = $3YDN3.new_byte;\nvar $964dcb8066029e00$var$new_double = $3YDN3.new_double;\nvar $964dcb8066029e00$var$new_float = $3YDN3.new_float;\nvar $964dcb8066029e00$var$new_float_n = $3YDN3.new_float_n;\nvar $964dcb8066029e00$var$new_int = $3YDN3.new_int;\nvar $964dcb8066029e00$var$new_int_n = $3YDN3.new_int_n;\nvar $964dcb8066029e00$var$assert = $3YDN3.assert;\n\nvar $cPNKB = parcelRequire(\"cPNKB\");\n/**\n * ATH related stuff, if something new ATH related has to be added, please plug\n * it here into the ATH.\n */ function $964dcb8066029e00$var$ATH() {\n /**\n * Method for the auto adjustment.\n */ this.useAdjust = 0;\n /**\n * factor for tuning the (sample power) point below which adaptive threshold\n * of hearing adjustment occurs\n */ this.aaSensitivityP = 0.;\n /**\n * Lowering based on peak volume, 1 = no lowering.\n */ this.adjust = 0.;\n /**\n * Limit for dynamic ATH adjust.\n */ this.adjustLimit = 0.;\n /**\n * Determined to lower x dB each second.\n */ this.decay = 0.;\n /**\n * Lowest ATH value.\n */ this.floor = 0.;\n /**\n * ATH for sfbs in long blocks.\n */ this.l = $964dcb8066029e00$var$new_float($cPNKB.SBMAX_l);\n /**\n * ATH for sfbs in short blocks.\n */ this.s = $964dcb8066029e00$var$new_float($cPNKB.SBMAX_s);\n /**\n * ATH for partitioned sfb21 in long blocks.\n */ this.psfb21 = $964dcb8066029e00$var$new_float($cPNKB.PSFB21);\n /**\n * ATH for partitioned sfb12 in short blocks.\n */ this.psfb12 = $964dcb8066029e00$var$new_float($cPNKB.PSFB12);\n /**\n * ATH for long block convolution bands.\n */ this.cb_l = $964dcb8066029e00$var$new_float($cPNKB.CBANDS);\n /**\n * ATH for short block convolution bands.\n */ this.cb_s = $964dcb8066029e00$var$new_float($cPNKB.CBANDS);\n /**\n * Equal loudness weights (based on ATH).\n */ this.eql_w = $964dcb8066029e00$var$new_float($cPNKB.BLKSIZE / 2);\n}\nmodule.exports = $964dcb8066029e00$var$ATH;\n\n});\n\nparcelRequire.register(\"2qGTD\", function(module, exports) {\n\nvar $3YDN3 = parcelRequire(\"3YDN3\");\nvar $1c4f48cc96a3a753$var$System = $3YDN3.System;\nvar $1c4f48cc96a3a753$var$VbrMode = $3YDN3.VbrMode;\nvar $1c4f48cc96a3a753$var$Float = $3YDN3.Float;\nvar $1c4f48cc96a3a753$var$ShortBlock = $3YDN3.ShortBlock;\nvar $1c4f48cc96a3a753$var$Util = $3YDN3.Util;\nvar $1c4f48cc96a3a753$var$Arrays = $3YDN3.Arrays;\nvar $1c4f48cc96a3a753$var$new_array_n = $3YDN3.new_array_n;\nvar $1c4f48cc96a3a753$var$new_byte = $3YDN3.new_byte;\nvar $1c4f48cc96a3a753$var$new_double = $3YDN3.new_double;\nvar $1c4f48cc96a3a753$var$new_float = $3YDN3.new_float;\nvar $1c4f48cc96a3a753$var$new_float_n = $3YDN3.new_float_n;\nvar $1c4f48cc96a3a753$var$new_int = $3YDN3.new_int;\nvar $1c4f48cc96a3a753$var$new_int_n = $3YDN3.new_int_n;\nvar $1c4f48cc96a3a753$var$assert = $3YDN3.assert;\n\nvar $b8dhq = parcelRequire(\"b8dhq\");\nfunction $1c4f48cc96a3a753$var$ReplayGain() {\n this.linprebuf = $1c4f48cc96a3a753$var$new_float($b8dhq.MAX_ORDER * 2);\n /**\n * left input samples, with pre-buffer\n */ this.linpre = 0;\n this.lstepbuf = $1c4f48cc96a3a753$var$new_float($b8dhq.MAX_SAMPLES_PER_WINDOW + $b8dhq.MAX_ORDER);\n /**\n * left \"first step\" (i.e. post first filter) samples\n */ this.lstep = 0;\n this.loutbuf = $1c4f48cc96a3a753$var$new_float($b8dhq.MAX_SAMPLES_PER_WINDOW + $b8dhq.MAX_ORDER);\n /**\n * left \"out\" (i.e. post second filter) samples\n */ this.lout = 0;\n this.rinprebuf = $1c4f48cc96a3a753$var$new_float($b8dhq.MAX_ORDER * 2);\n /**\n * right input samples ...\n */ this.rinpre = 0;\n this.rstepbuf = $1c4f48cc96a3a753$var$new_float($b8dhq.MAX_SAMPLES_PER_WINDOW + $b8dhq.MAX_ORDER);\n this.rstep = 0;\n this.routbuf = $1c4f48cc96a3a753$var$new_float($b8dhq.MAX_SAMPLES_PER_WINDOW + $b8dhq.MAX_ORDER);\n this.rout = 0;\n /**\n * number of samples required to reach number of milliseconds required\n * for RMS window\n */ this.sampleWindow = 0;\n this.totsamp = 0;\n this.lsum = 0.;\n this.rsum = 0.;\n this.freqindex = 0;\n this.first = 0;\n this.A = $1c4f48cc96a3a753$var$new_int(0 | $b8dhq.STEPS_per_dB * $b8dhq.MAX_dB);\n this.B = $1c4f48cc96a3a753$var$new_int(0 | $b8dhq.STEPS_per_dB * $b8dhq.MAX_dB);\n}\nmodule.exports = $1c4f48cc96a3a753$var$ReplayGain;\n\n});\nparcelRequire.register(\"b8dhq\", function(module, exports) {\n/*\n * ReplayGainAnalysis - analyzes input samples and give the recommended dB change\n * Copyright (C) 2001 David Robinson and Glen Sawyer\n * Improvements and optimizations added by Frank Klemm, and by Marcel Muller \n *\n * This library is free software; you can redistribute it and/or\n * modify it under the terms of the GNU Lesser General Public\n * License as published by the Free Software Foundation; either\n * version 2.1 of the License, or (at your option) any later version.\n *\n * This library is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Lesser General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this library; if not, write to the Free Software\n * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n *\n * concept and filter values by David Robinson (David@Robinson.org)\n * -- blame him if you think the idea is flawed\n * original coding by Glen Sawyer (mp3gain@hotmail.com)\n * -- blame him if you think this runs too slowly, or the coding is otherwise flawed\n *\n * lots of code improvements by Frank Klemm ( http://www.uni-jena.de/~pfk/mpp/ )\n * -- credit him for all the _good_ programming ;)\n *\n *\n * For an explanation of the concepts and the basic algorithms involved, go to:\n * http://www.replaygain.org/\n */ /*\n * Here's the deal. Call\n *\n * InitGainAnalysis ( long samplefreq );\n *\n * to initialize everything. Call\n *\n * AnalyzeSamples ( var Float_t* left_samples,\n * var Float_t* right_samples,\n * size_t num_samples,\n * int num_channels );\n *\n * as many times as you want, with as many or as few samples as you want.\n * If mono, pass the sample buffer in through left_samples, leave\n * right_samples NULL, and make sure num_channels = 1.\n *\n * GetTitleGain()\n *\n * will return the recommended dB level change for all samples analyzed\n * SINCE THE LAST TIME you called GetTitleGain() OR InitGainAnalysis().\n *\n * GetAlbumGain()\n *\n * will return the recommended dB level change for all samples analyzed\n * since InitGainAnalysis() was called and finalized with GetTitleGain().\n *\n * Pseudo-code to process an album:\n *\n * Float_t l_samples [4096];\n * Float_t r_samples [4096];\n * size_t num_samples;\n * unsigned int num_songs;\n * unsigned int i;\n *\n * InitGainAnalysis ( 44100 );\n * for ( i = 1; i <= num_songs; i++ ) {\n * while ( ( num_samples = getSongSamples ( song[i], left_samples, right_samples ) ) > 0 )\n * AnalyzeSamples ( left_samples, right_samples, num_samples, 2 );\n * fprintf (\"Recommended dB change for song %2d: %+6.2 dB\\n\", i, GetTitleGain() );\n * }\n * fprintf (\"Recommended dB change for whole album: %+6.2 dB\\n\", GetAlbumGain() );\n */ /*\n * So here's the main source of potential code confusion:\n *\n * The filters applied to the incoming samples are IIR filters,\n * meaning they rely on up to <filter order> number of previous samples\n * AND up to <filter order> number of previous filtered samples.\n *\n * I set up the AnalyzeSamples routine to minimize memory usage and interface\n * complexity. The speed isn't compromised too much (I don't think), but the\n * internal complexity is higher than it should be for such a relatively\n * simple routine.\n *\n * Optimization/clarity suggestions are welcome.\n */ \nvar $3YDN3 = parcelRequire(\"3YDN3\");\nvar $81aabe360221f821$var$System = $3YDN3.System;\nvar $81aabe360221f821$var$VbrMode = $3YDN3.VbrMode;\nvar $81aabe360221f821$var$Float = $3YDN3.Float;\nvar $81aabe360221f821$var$ShortBlock = $3YDN3.ShortBlock;\nvar $81aabe360221f821$var$Util = $3YDN3.Util;\nvar $81aabe360221f821$var$Arrays = $3YDN3.Arrays;\nvar $81aabe360221f821$var$new_array_n = $3YDN3.new_array_n;\nvar $81aabe360221f821$var$new_byte = $3YDN3.new_byte;\nvar $81aabe360221f821$var$new_double = $3YDN3.new_double;\nvar $81aabe360221f821$var$new_float = $3YDN3.new_float;\nvar $81aabe360221f821$var$new_float_n = $3YDN3.new_float_n;\nvar $81aabe360221f821$var$new_int = $3YDN3.new_int;\nvar $81aabe360221f821$var$new_int_n = $3YDN3.new_int_n;\nvar $81aabe360221f821$var$assert = $3YDN3.assert;\n/**\n * Table entries per dB\n */ $81aabe360221f821$var$GainAnalysis.STEPS_per_dB = 100.;\n/**\n * Table entries for 0...MAX_dB (normal max. values are 70...80 dB)\n */ $81aabe360221f821$var$GainAnalysis.MAX_dB = 120.;\n$81aabe360221f821$var$GainAnalysis.GAIN_NOT_ENOUGH_SAMPLES = -24601;\n$81aabe360221f821$var$GainAnalysis.GAIN_ANALYSIS_ERROR = 0;\n$81aabe360221f821$var$GainAnalysis.GAIN_ANALYSIS_OK = 1;\n$81aabe360221f821$var$GainAnalysis.INIT_GAIN_ANALYSIS_ERROR = 0;\n$81aabe360221f821$var$GainAnalysis.INIT_GAIN_ANALYSIS_OK = 1;\n$81aabe360221f821$var$GainAnalysis.YULE_ORDER = 10;\n$81aabe360221f821$var$GainAnalysis.MAX_ORDER = $81aabe360221f821$var$GainAnalysis.YULE_ORDER;\n$81aabe360221f821$var$GainAnalysis.MAX_SAMP_FREQ = 48000;\n$81aabe360221f821$var$GainAnalysis.RMS_WINDOW_TIME_NUMERATOR = 1;\n$81aabe360221f821$var$GainAnalysis.RMS_WINDOW_TIME_DENOMINATOR = 20;\n$81aabe360221f821$var$GainAnalysis.MAX_SAMPLES_PER_WINDOW = $81aabe360221f821$var$GainAnalysis.MAX_SAMP_FREQ * $81aabe360221f821$var$GainAnalysis.RMS_WINDOW_TIME_NUMERATOR / $81aabe360221f821$var$GainAnalysis.RMS_WINDOW_TIME_DENOMINATOR + 1;\nfunction $81aabe360221f821$var$GainAnalysis() {\n /**\n * calibration value for 89dB\n */ var PINK_REF = 64.82;\n var YULE_ORDER = $81aabe360221f821$var$GainAnalysis.YULE_ORDER;\n /**\n * percentile which is louder than the proposed level\n */ var RMS_PERCENTILE = 0.95;\n /**\n * maximum allowed sample frequency [Hz]\n */ var MAX_SAMP_FREQ = $81aabe360221f821$var$GainAnalysis.MAX_SAMP_FREQ;\n var RMS_WINDOW_TIME_NUMERATOR = $81aabe360221f821$var$GainAnalysis.RMS_WINDOW_TIME_NUMERATOR;\n /**\n * numerator / denominator = time slice size [s]\n */ var RMS_WINDOW_TIME_DENOMINATOR = $81aabe360221f821$var$GainAnalysis.RMS_WINDOW_TIME_DENOMINATOR;\n /**\n * max. Samples per Time slice\n */ var MAX_SAMPLES_PER_WINDOW = $81aabe360221f821$var$GainAnalysis.MAX_SAMPLES_PER_WINDOW;\n var ABYule = [\n [\n 0.03857599435200,\n -3.84664617118067,\n -0.02160367184185,\n 7.81501653005538,\n -0.00123395316851,\n -11.34170355132042,\n -0.00009291677959,\n 13.05504219327545,\n -0.01655260341619,\n -12.28759895145294,\n 0.02161526843274,\n 9.48293806319790,\n -0.02074045215285,\n -5.87257861775999,\n 0.00594298065125,\n 2.75465861874613,\n 0.00306428023191,\n -0.86984376593551,\n 0.00012025322027,\n 0.13919314567432,\n 0.00288463683916\n ],\n [\n 0.05418656406430,\n -3.47845948550071,\n -0.02911007808948,\n 6.36317777566148,\n -0.00848709379851,\n -8.54751527471874,\n -0.00851165645469,\n 9.47693607801280,\n -0.00834990904936,\n -8.81498681370155,\n 0.02245293253339,\n 6.85401540936998,\n -0.02596338512915,\n -4.39470996079559,\n 0.01624864962975,\n 2.19611684890774,\n -0.00240879051584,\n -0.75104302451432,\n 0.00674613682247,\n 0.13149317958808,\n -0.00187763777362\n ],\n [\n 0.15457299681924,\n -2.37898834973084,\n -0.09331049056315,\n 2.84868151156327,\n -0.06247880153653,\n -2.64577170229825,\n 0.02163541888798,\n 2.23697657451713,\n -0.05588393329856,\n -1.67148153367602,\n 0.04781476674921,\n 1.00595954808547,\n 0.00222312597743,\n -0.45953458054983,\n 0.03174092540049,\n 0.16378164858596,\n -0.01390589421898,\n -0.05032077717131,\n 0.00651420667831,\n 0.02347897407020,\n -0.00881362733839\n ],\n [\n 0.30296907319327,\n -1.61273165137247,\n -0.22613988682123,\n 1.07977492259970,\n -0.08587323730772,\n -0.2565625775407,\n 0.03282930172664,\n -0.1627671912044,\n -0.00915702933434,\n -0.22638893773906,\n -0.02364141202522,\n 0.39120800788284,\n -0.00584456039913,\n -0.22138138954925,\n 0.06276101321749,\n 0.04500235387352,\n -0.00000828086748,\n 0.02005851806501,\n 0.00205861885564,\n 0.00302439095741,\n -0.02950134983287\n ],\n [\n 0.33642304856132,\n -1.49858979367799,\n -0.2557224142557,\n 0.87350271418188,\n -0.11828570177555,\n 0.12205022308084,\n 0.11921148675203,\n -0.80774944671438,\n -0.07834489609479,\n 0.47854794562326,\n -0.0046997791438,\n -0.12453458140019,\n -0.0058950022444,\n -0.04067510197014,\n 0.05724228140351,\n 0.08333755284107,\n 0.00832043980773,\n -0.04237348025746,\n -0.0163538138454,\n 0.02977207319925,\n -0.0176017656815\n ],\n [\n 0.44915256608450,\n -0.62820619233671,\n -0.14351757464547,\n 0.29661783706366,\n -0.22784394429749,\n -0.372563729424,\n -0.01419140100551,\n 0.00213767857124,\n 0.04078262797139,\n -0.42029820170918,\n -0.12398163381748,\n 0.22199650564824,\n 0.04097565135648,\n 0.00613424350682,\n 0.10478503600251,\n 0.06747620744683,\n -0.01863887810927,\n 0.05784820375801,\n -0.03193428438915,\n 0.03222754072173,\n 0.00541907748707\n ],\n [\n 0.56619470757641,\n -1.04800335126349,\n -0.75464456939302,\n 0.29156311971249,\n 0.16242137742230,\n -0.26806001042947,\n 0.16744243493672,\n 0.00819999645858,\n -0.18901604199609,\n 0.45054734505008,\n 0.30931782841830,\n -0.33032403314006,\n -0.27562961986224,\n 0.06739368333110,\n 0.00647310677246,\n -0.04784254229033,\n 0.08647503780351,\n 0.01639907836189,\n -0.0378898455484,\n 0.01807364323573,\n -0.00588215443421\n ],\n [\n 0.58100494960553,\n -0.51035327095184,\n -0.53174909058578,\n -0.31863563325245,\n -0.14289799034253,\n -0.20256413484477,\n 0.17520704835522,\n 0.14728154134330,\n 0.02377945217615,\n 0.38952639978999,\n 0.15558449135573,\n -0.23313271880868,\n -0.25344790059353,\n -0.05246019024463,\n 0.01628462406333,\n -0.02505961724053,\n 0.06920467763959,\n 0.02442357316099,\n -0.03721611395801,\n 0.01818801111503,\n -0.00749618797172\n ],\n [\n 0.53648789255105,\n -0.2504987195602,\n -0.42163034350696,\n -0.43193942311114,\n -0.00275953611929,\n -0.03424681017675,\n 0.04267842219415,\n -0.04678328784242,\n -0.10214864179676,\n 0.26408300200955,\n 0.14590772289388,\n 0.15113130533216,\n -0.02459864859345,\n -0.17556493366449,\n -0.11202315195388,\n -0.18823009262115,\n -0.04060034127,\n 0.05477720428674,\n 0.04788665548180,\n 0.04704409688120,\n -0.02217936801134\n ]\n ];\n var ABButter = [\n [\n 0.98621192462708,\n -1.97223372919527,\n -1.97242384925416,\n 0.97261396931306,\n 0.98621192462708\n ],\n [\n 0.98500175787242,\n -1.96977855582618,\n -1.97000351574484,\n 0.97022847566350,\n 0.98500175787242\n ],\n [\n 0.97938932735214,\n -1.95835380975398,\n -1.95877865470428,\n 0.95920349965459,\n 0.97938932735214\n ],\n [\n 0.97531843204928,\n -1.95002759149878,\n -1.95063686409857,\n 0.95124613669835,\n 0.97531843204928\n ],\n [\n 0.97316523498161,\n -1.94561023566527,\n -1.94633046996323,\n 0.94705070426118,\n 0.97316523498161\n ],\n [\n 0.96454515552826,\n -1.92783286977036,\n -1.92909031105652,\n 0.93034775234268,\n 0.96454515552826\n ],\n [\n 0.96009142950541,\n -1.91858953033784,\n -1.92018285901082,\n 0.92177618768381,\n 0.96009142950541\n ],\n [\n 0.95856916599601,\n -1.9154210807478,\n -1.91713833199203,\n 0.91885558323625,\n 0.95856916599601\n ],\n [\n 0.94597685600279,\n -1.88903307939452,\n -1.89195371200558,\n 0.89487434461664,\n 0.94597685600279\n ]\n ];\n /**\n * When calling this procedure, make sure that ip[-order] and op[-order]\n * point to real data\n */ //private void filterYule(final float[] input, int inputPos, float[] output,\n //int outputPos, int nSamples, final float[] kernel) {\n function filterYule(input, inputPos, output, outputPos, nSamples, kernel) {\n while(nSamples-- != 0){\n /* 1e-10 is a hack to avoid slowdown because of denormals */ output[outputPos] = 1e-10 + input[inputPos + 0] * kernel[0] - output[outputPos - 1] * kernel[1] + input[inputPos - 1] * kernel[2] - output[outputPos - 2] * kernel[3] + input[inputPos - 2] * kernel[4] - output[outputPos - 3] * kernel[5] + input[inputPos - 3] * kernel[6] - output[outputPos - 4] * kernel[7] + input[inputPos - 4] * kernel[8] - output[outputPos - 5] * kernel[9] + input[inputPos - 5] * kernel[10] - output[outputPos - 6] * kernel[11] + input[inputPos - 6] * kernel[12] - output[outputPos - 7] * kernel[13] + input[inputPos - 7] * kernel[14] - output[outputPos - 8] * kernel[15] + input[inputPos - 8] * kernel[16] - output[outputPos - 9] * kernel[17] + input[inputPos - 9] * kernel[18] - output[outputPos - 10] * kernel[19] + input[inputPos - 10] * kernel[20];\n ++outputPos;\n ++inputPos;\n }\n }\n //private void filterButter(final float[] input, int inputPos,\n // float[] output, int outputPos, int nSamples, final float[] kernel) {\n function filterButter(input, inputPos, output, outputPos, nSamples, kernel) {\n while(nSamples-- != 0){\n output[outputPos] = input[inputPos + 0] * kernel[0] - output[outputPos - 1] * kernel[1] + input[inputPos - 1] * kernel[2] - output[outputPos - 2] * kernel[3] + input[inputPos - 2] * kernel[4];\n ++outputPos;\n ++inputPos;\n }\n }\n /**\n * @return INIT_GAIN_ANALYSIS_OK if successful, INIT_GAIN_ANALYSIS_ERROR if\n * not\n */ function ResetSampleFrequency(rgData, samplefreq) {\n /* zero out initial values */ for(var i = 0; i < MAX_ORDER; i++)rgData.linprebuf[i] = rgData.lstepbuf[i] = rgData.loutbuf[i] = rgData.rinprebuf[i] = rgData.rstepbuf[i] = rgData.routbuf[i] = 0.;\n switch(0 | samplefreq){\n case 48000:\n rgData.reqindex = 0;\n break;\n case 44100:\n rgData.reqindex = 1;\n break;\n case 32000:\n rgData.reqindex = 2;\n break;\n case 24000:\n rgData.reqindex = 3;\n break;\n case 22050:\n rgData.reqindex = 4;\n break;\n case 16000:\n rgData.reqindex = 5;\n break;\n case 12000:\n rgData.reqindex = 6;\n break;\n case 11025:\n rgData.reqindex = 7;\n break;\n case 8000:\n rgData.reqindex = 8;\n break;\n default:\n return INIT_GAIN_ANALYSIS_ERROR;\n }\n rgData.sampleWindow = 0 | (samplefreq * RMS_WINDOW_TIME_NUMERATOR + RMS_WINDOW_TIME_DENOMINATOR - 1) / RMS_WINDOW_TIME_DENOMINATOR;\n rgData.lsum = 0.;\n rgData.rsum = 0.;\n rgData.totsamp = 0;\n $81aabe360221f821$var$Arrays.ill(rgData.A, 0);\n return INIT_GAIN_ANALYSIS_OK;\n }\n this.InitGainAnalysis = function(rgData, samplefreq) {\n if (ResetSampleFrequency(rgData, samplefreq) != INIT_GAIN_ANALYSIS_OK) return INIT_GAIN_ANALYSIS_ERROR;\n rgData.linpre = MAX_ORDER;\n rgData.rinpre = MAX_ORDER;\n rgData.lstep = MAX_ORDER;\n rgData.rstep = MAX_ORDER;\n rgData.lout = MAX_ORDER;\n rgData.rout = MAX_ORDER;\n $81aabe360221f821$var$Arrays.fill(rgData.B, 0);\n return INIT_GAIN_ANALYSIS_OK;\n };\n /**\n * square\n */ function fsqr(d) {\n return d * d;\n }\n this.AnalyzeSamples = function(rgData, left_samples, left_samplesPos, right_samples, right_samplesPos, num_samples, num_channels) {\n var curleft;\n var curleftBase;\n var curright;\n var currightBase;\n var batchsamples;\n var cursamples;\n var cursamplepos;\n if (num_samples == 0) return GAIN_ANALYSIS_OK;\n cursamplepos = 0;\n batchsamples = num_samples;\n switch(num_channels){\n case 1:\n right_samples = left_samples;\n right_samplesPos = left_samplesPos;\n break;\n case 2:\n break;\n default:\n return GAIN_ANALYSIS_ERROR;\n }\n if (num_samples < MAX_ORDER) {\n $81aabe360221f821$var$System.arraycopy(left_samples, left_samplesPos, rgData.linprebuf, MAX_ORDER, num_samples);\n $81aabe360221f821$var$System.arraycopy(right_samples, right_samplesPos, rgData.rinprebuf, MAX_ORDER, num_samples);\n } else {\n $81aabe360221f821$var$System.arraycopy(left_samples, left_samplesPos, rgData.linprebuf, MAX_ORDER, MAX_ORDER);\n $81aabe360221f821$var$System.arraycopy(right_samples, right_samplesPos, rgData.rinprebuf, MAX_ORDER, MAX_ORDER);\n }\n while(batchsamples > 0){\n cursamples = batchsamples > rgData.sampleWindow - rgData.totsamp ? rgData.sampleWindow - rgData.totsamp : batchsamples;\n if (cursamplepos < MAX_ORDER) {\n curleft = rgData.linpre + cursamplepos;\n curleftBase = rgData.linprebuf;\n curright = rgData.rinpre + cursamplepos;\n currightBase = rgData.rinprebuf;\n if (cursamples > MAX_ORDER - cursamplepos) cursamples = MAX_ORDER - cursamplepos;\n } else {\n curleft = left_samplesPos + cursamplepos;\n curleftBase = left_samples;\n curright = right_samplesPos + cursamplepos;\n currightBase = right_samples;\n }\n filterYule(curleftBase, curleft, rgData.lstepbuf, rgData.lstep + rgData.totsamp, cursamples, ABYule[rgData.reqindex]);\n filterYule(currightBase, curright, rgData.rstepbuf, rgData.rstep + rgData.totsamp, cursamples, ABYule[rgData.reqindex]);\n filterButter(rgData.lstepbuf, rgData.lstep + rgData.totsamp, rgData.loutbuf, rgData.lout + rgData.totsamp, cursamples, ABButter[rgData.reqindex]);\n filterButter(rgData.rstepbuf, rgData.rstep + rgData.totsamp, rgData.routbuf, rgData.rout + rgData.totsamp, cursamples, ABButter[rgData.reqindex]);\n curleft = rgData.lout + rgData.totsamp;\n /* Get the squared values */ curleftBase = rgData.loutbuf;\n curright = rgData.rout + rgData.totsamp;\n currightBase = rgData.routbuf;\n var i = cursamples % 8;\n while(i-- != 0){\n rgData.lsum += fsqr(curleftBase[curleft++]);\n rgData.rsum += fsqr(currightBase[curright++]);\n }\n i = cursamples / 8;\n while(i-- != 0){\n rgData.lsum += fsqr(curleftBase[curleft + 0]) + fsqr(curleftBase[curleft + 1]) + fsqr(curleftBase[curleft + 2]) + fsqr(curleftBase[curleft + 3]) + fsqr(curleftBase[curleft + 4]) + fsqr(curleftBase[curleft + 5]) + fsqr(curleftBase[curleft + 6]) + fsqr(curleftBase[curleft + 7]);\n curleft += 8;\n rgData.rsum += fsqr(currightBase[curright + 0]) + fsqr(currightBase[curright + 1]) + fsqr(currightBase[curright + 2]) + fsqr(currightBase[curright + 3]) + fsqr(currightBase[curright + 4]) + fsqr(currightBase[curright + 5]) + fsqr(currightBase[curright + 6]) + fsqr(currightBase[curright + 7]);\n curright += 8;\n }\n batchsamples -= cursamples;\n cursamplepos += cursamples;\n rgData.totsamp += cursamples;\n if (rgData.totsamp == rgData.sampleWindow) {\n /* Get the Root Mean Square (RMS) for this set of samples */ var val = $81aabe360221f821$var$GainAnalysis.STEPS_per_dB * 10. * Math.log10((rgData.lsum + rgData.rsum) / rgData.totsamp * 0.5 + 1.e-37);\n var ival = val <= 0 ? 0 : 0 | val;\n if (ival >= rgData.A.length) ival = rgData.A.length - 1;\n rgData.A[ival]++;\n rgData.lsum = rgData.rsum = 0.;\n $81aabe360221f821$var$System.arraycopy(rgData.loutbuf, rgData.totsamp, rgData.loutbuf, 0, MAX_ORDER);\n $81aabe360221f821$var$System.arraycopy(rgData.routbuf, rgData.totsamp, rgData.routbuf, 0, MAX_ORDER);\n $81aabe360221f821$var$System.arraycopy(rgData.lstepbuf, rgData.totsamp, rgData.lstepbuf, 0, MAX_ORDER);\n $81aabe360221f821$var$System.arraycopy(rgData.rstepbuf, rgData.totsamp, rgData.rstepbuf, 0, MAX_ORDER);\n rgData.totsamp = 0;\n }\n if (rgData.totsamp > rgData.sampleWindow) /*\n * somehow I really screwed up: Error in programming! Contact\n * author about totsamp > sampleWindow\n */ return GAIN_ANALYSIS_ERROR;\n }\n if (num_samples < MAX_ORDER) {\n $81aabe360221f821$var$System.arraycopy(rgData.linprebuf, num_samples, rgData.linprebuf, 0, MAX_ORDER - num_samples);\n $81aabe360221f821$var$System.arraycopy(rgData.rinprebuf, num_samples, rgData.rinprebuf, 0, MAX_ORDER - num_samples);\n $81aabe360221f821$var$System.arraycopy(left_samples, left_samplesPos, rgData.linprebuf, MAX_ORDER - num_samples, num_samples);\n $81aabe360221f821$var$System.arraycopy(right_samples, right_samplesPos, rgData.rinprebuf, MAX_ORDER - num_samples, num_samples);\n } else {\n $81aabe360221f821$var$System.arraycopy(left_samples, left_samplesPos + num_samples - MAX_ORDER, rgData.linprebuf, 0, MAX_ORDER);\n $81aabe360221f821$var$System.arraycopy(right_samples, right_samplesPos + num_samples - MAX_ORDER, rgData.rinprebuf, 0, MAX_ORDER);\n }\n return GAIN_ANALYSIS_OK;\n };\n function analyzeResult(Array, len) {\n var i;\n var elems = 0;\n for(i = 0; i < len; i++)elems += Array[i];\n if (elems == 0) return GAIN_NOT_ENOUGH_SAMPLES;\n var upper = 0 | Math.ceil(elems * (1. - RMS_PERCENTILE));\n for(i = len; i-- > 0;){\n if ((upper -= Array[i]) <= 0) break;\n }\n //return (float) ((float) PINK_REF - (float) i / (float) STEPS_per_dB);\n return PINK_REF - i / $81aabe360221f821$var$GainAnalysis.STEPS_per_dB;\n }\n this.GetTitleGain = function(rgData) {\n var retval = analyzeResult(rgData.A, rgData.A.length);\n for(var i = 0; i < rgData.A.length; i++){\n rgData.B[i] += rgData.A[i];\n rgData.A[i] = 0;\n }\n for(var i = 0; i < MAX_ORDER; i++)rgData.linprebuf[i] = rgData.lstepbuf[i] = rgData.loutbuf[i] = rgData.rinprebuf[i] = rgData.rstepbuf[i] = rgData.routbuf[i] = 0.;\n rgData.totsamp = 0;\n rgData.lsum = rgData.rsum = 0.;\n return retval;\n };\n}\nmodule.exports = $81aabe360221f821$var$GainAnalysis;\n\n});\n\n\nparcelRequire.register(\"e32wu\", function(module, exports) {\n\nvar $3YDN3 = parcelRequire(\"3YDN3\");\nvar $a3a34d831b8c1682$var$System = $3YDN3.System;\nvar $a3a34d831b8c1682$var$VbrMode = $3YDN3.VbrMode;\nvar $a3a34d831b8c1682$var$Float = $3YDN3.Float;\nvar $a3a34d831b8c1682$var$ShortBlock = $3YDN3.ShortBlock;\nvar $a3a34d831b8c1682$var$Util = $3YDN3.Util;\nvar $a3a34d831b8c1682$var$Arrays = $3YDN3.Arrays;\nvar $a3a34d831b8c1682$var$new_array_n = $3YDN3.new_array_n;\nvar $a3a34d831b8c1682$var$new_byte = $3YDN3.new_byte;\nvar $a3a34d831b8c1682$var$new_double = $3YDN3.new_double;\nvar $a3a34d831b8c1682$var$new_float = $3YDN3.new_float;\nvar $a3a34d831b8c1682$var$new_float_n = $3YDN3.new_float_n;\nvar $a3a34d831b8c1682$var$new_int = $3YDN3.new_int;\nvar $a3a34d831b8c1682$var$new_int_n = $3YDN3.new_int_n;\nvar $a3a34d831b8c1682$var$assert = $3YDN3.assert;\n\nvar $lL4Le = parcelRequire(\"lL4Le\");\n\nvar $cPNKB = parcelRequire(\"cPNKB\");\n\nvar $arIi9 = parcelRequire(\"arIi9\");\n\nvar $4SDnr = parcelRequire(\"4SDnr\");\nfunction $a3a34d831b8c1682$var$CBRNewIterationLoop(_quantize) {\n var quantize = _quantize;\n this.quantize = quantize;\n this.iteration_loop = function(gfp, pe, ms_ener_ratio, ratio) {\n var gfc = gfp.internal_flags;\n var l3_xmin = $a3a34d831b8c1682$var$new_float($arIi9.SFBMAX);\n var xrpow = $a3a34d831b8c1682$var$new_float(576);\n var targ_bits = $a3a34d831b8c1682$var$new_int(2);\n var mean_bits = 0, max_bits;\n var l3_side = gfc.l3_side;\n var mb = new $lL4Le(mean_bits);\n this.quantize.rv.ResvFrameBegin(gfp, mb);\n mean_bits = mb.bits;\n /* quantize! */ for(var gr = 0; gr < gfc.mode_gr; gr++){\n /*\n\t\t\t * calculate needed bits\n\t\t\t */ max_bits = this.quantize.qupvt.on_pe(gfp, pe, targ_bits, mean_bits, gr, gr);\n if (gfc.mode_ext == $cPNKB.MPG_MD_MS_LR) {\n this.quantize.ms_convert(gfc.l3_side, gr);\n this.quantize.qupvt.reduce_side(targ_bits, ms_ener_ratio[gr], mean_bits, max_bits);\n }\n for(var ch = 0; ch < gfc.channels_out; ch++){\n var adjust, masking_lower_db;\n var cod_info = l3_side.tt[gr][ch];\n if (cod_info.block_type != $cPNKB.SHORT_TYPE) {\n // NORM, START or STOP type\n adjust = 0;\n masking_lower_db = gfc.PSY.mask_adjust - adjust;\n } else {\n adjust = 0;\n masking_lower_db = gfc.PSY.mask_adjust_short - adjust;\n }\n gfc.masking_lower = Math.pow(10.0, masking_lower_db * 0.1);\n /*\n\t\t\t\t * init_outer_loop sets up cod_info, scalefac and xrpow\n\t\t\t\t */ this.quantize.init_outer_loop(gfc, cod_info);\n if (this.quantize.init_xrpow(gfc, cod_info, xrpow)) {\n /*\n\t\t\t\t\t * xr contains energy we will have to encode calculate the\n\t\t\t\t\t * masking abilities find some good quantization in\n\t\t\t\t\t * outer_loop\n\t\t\t\t\t */ this.quantize.qupvt.calc_xmin(gfp, ratio[gr][ch], cod_info, l3_xmin);\n this.quantize.outer_loop(gfp, cod_info, l3_xmin, xrpow, ch, targ_bits[ch]);\n }\n this.quantize.iteration_finish_one(gfc, gr, ch);\n $a3a34d831b8c1682$var$assert(cod_info.part2_3_length <= $4SDnr.MAX_BITS_PER_CHANNEL);\n $a3a34d831b8c1682$var$assert(cod_info.part2_3_length <= targ_bits[ch]);\n } /* for ch */ \n } /* for gr */ \n this.quantize.rv.ResvFrameEnd(gfc, mean_bits);\n };\n}\nmodule.exports = $a3a34d831b8c1682$var$CBRNewIterationLoop;\n\n});\nparcelRequire.register(\"lL4Le\", function(module, exports) {\nfunction $fd71ae23813c0974$var$MeanBits(meanBits) {\n this.bits = meanBits;\n}\nmodule.exports = $fd71ae23813c0974$var$MeanBits;\n\n});\n\n\nparcelRequire.register(\"ctaQC\", function(module, exports) {\n\nvar $3YDN3 = parcelRequire(\"3YDN3\");\nvar $91409b9649b00300$var$System = $3YDN3.System;\nvar $91409b9649b00300$var$VbrMode = $3YDN3.VbrMode;\nvar $91409b9649b00300$var$Float = $3YDN3.Float;\nvar $91409b9649b00300$var$ShortBlock = $3YDN3.ShortBlock;\nvar $91409b9649b00300$var$Util = $3YDN3.Util;\nvar $91409b9649b00300$var$Arrays = $3YDN3.Arrays;\nvar $91409b9649b00300$var$new_array_n = $3YDN3.new_array_n;\nvar $91409b9649b00300$var$new_byte = $3YDN3.new_byte;\nvar $91409b9649b00300$var$new_double = $3YDN3.new_double;\nvar $91409b9649b00300$var$new_float = $3YDN3.new_float;\nvar $91409b9649b00300$var$new_float_n = $3YDN3.new_float_n;\nvar $91409b9649b00300$var$new_int = $3YDN3.new_int;\nvar $91409b9649b00300$var$new_int_n = $3YDN3.new_int_n;\nvar $91409b9649b00300$var$assert = $3YDN3.assert;\n\nvar $65Sx2 = parcelRequire(\"65Sx2\");\n\nvar $dQDcS = parcelRequire(\"dQDcS\");\n\nvar $cPNKB = parcelRequire(\"cPNKB\");\n\nvar $4SDnr = parcelRequire(\"4SDnr\");\n$91409b9649b00300$var$BitStream.EQ = function(a, b) {\n return Math.abs(a) > Math.abs(b) ? Math.abs(a - b) <= Math.abs(a) * 1e-6 : Math.abs(a - b) <= Math.abs(b) * 1e-6;\n};\n$91409b9649b00300$var$BitStream.NEQ = function(a, b) {\n return !$91409b9649b00300$var$BitStream.EQ(a, b);\n};\n\nfunction $91409b9649b00300$var$BitStream() {\n var Lame = (parcelRequire(\"kk1yk\"));\n var self = this;\n var CRC16_POLYNOMIAL = 0x8005;\n /*\n * we work with ints, so when doing bit manipulation, we limit ourselves to\n * MAX_LENGTH-2 just to be on the safe side\n */ var MAX_LENGTH = 32;\n //GainAnalysis ga;\n //MPGLib mpg;\n //Version ver;\n //VBRTag vbr;\n var ga = null;\n var mpg = null;\n var ver = null;\n var vbr = null;\n //public final void setModules(GainAnalysis ga, MPGLib mpg, Version ver,\n //\tVBRTag vbr) {\n this.setModules = function(_ga, _mpg, _ver, _vbr) {\n ga = _ga;\n mpg = _mpg;\n ver = _ver;\n vbr = _vbr;\n };\n /**\n * Bit stream buffer.\n */ //private byte[] buf;\n var buf = null;\n /**\n * Bit counter of bit stream.\n */ var totbit = 0;\n /**\n * Pointer to top byte in buffer.\n */ var bufByteIdx = 0;\n /**\n * Pointer to top bit of top byte in buffer.\n */ var bufBitIdx = 0;\n /**\n * compute bitsperframe and mean_bits for a layer III frame\n */ this.getframebits = function(gfp) {\n var gfc = gfp.internal_flags;\n var bit_rate;\n /* get bitrate in kbps [?] */ if (gfc.bitrate_index != 0) bit_rate = $dQDcS.bitrate_table[gfp.version][gfc.bitrate_index];\n else bit_rate = gfp.brate;\n $91409b9649b00300$var$assert(8 <= bit_rate && bit_rate <= 640);\n /* main encoding routine toggles padding on and off */ /* one Layer3 Slot consists of 8 bits */ var bytes = 0 | (gfp.version + 1) * 72000 * bit_rate / gfp.out_samplerate + gfc.padding;\n return 8 * bytes;\n };\n function putheader_bits(gfc) {\n $91409b9649b00300$var$System.arraycopy(gfc.header[gfc.w_ptr].buf, 0, buf, bufByteIdx, gfc.sideinfo_len);\n bufByteIdx += gfc.sideinfo_len;\n totbit += gfc.sideinfo_len * 8;\n gfc.w_ptr = gfc.w_ptr + 1 & $4SDnr.MAX_HEADER_BUF - 1;\n }\n /**\n * write j bits into the bit stream\n */ function putbits2(gfc, val, j) {\n $91409b9649b00300$var$assert(j < MAX_LENGTH - 2);\n while(j > 0){\n var k;\n if (bufBitIdx == 0) {\n bufBitIdx = 8;\n bufByteIdx++;\n $91409b9649b00300$var$assert(bufByteIdx < Lame.LAME_MAXMP3BUFFER);\n $91409b9649b00300$var$assert(gfc.header[gfc.w_ptr].write_timing >= totbit);\n if (gfc.header[gfc.w_ptr].write_timing == totbit) putheader_bits(gfc);\n buf[bufByteIdx] = 0;\n }\n k = Math.min(j, bufBitIdx);\n j -= k;\n bufBitIdx -= k;\n $91409b9649b00300$var$assert(j < MAX_LENGTH);\n /* 32 too large on 32 bit machines */ $91409b9649b00300$var$assert(bufBitIdx < MAX_LENGTH);\n buf[bufByteIdx] |= val >> j << bufBitIdx;\n totbit += k;\n }\n }\n /**\n * write j bits into the bit stream, ignoring frame headers\n */ function putbits_noheaders(gfc, val, j) {\n $91409b9649b00300$var$assert(j < MAX_LENGTH - 2);\n while(j > 0){\n var k;\n if (bufBitIdx == 0) {\n bufBitIdx = 8;\n bufByteIdx++;\n $91409b9649b00300$var$assert(bufByteIdx < Lame.LAME_MAXMP3BUFFER);\n buf[bufByteIdx] = 0;\n }\n k = Math.min(j, bufBitIdx);\n j -= k;\n bufBitIdx -= k;\n $91409b9649b00300$var$assert(j < MAX_LENGTH);\n /* 32 too large on 32 bit machines */ $91409b9649b00300$var$assert(bufBitIdx < MAX_LENGTH);\n buf[bufByteIdx] |= val >> j << bufBitIdx;\n totbit += k;\n }\n }\n /**\n * Some combinations of bitrate, Fs, and stereo make it impossible to stuff\n * out a frame using just main_data, due to the limited number of bits to\n * indicate main_data_length. In these situations, we put stuffing bits into\n * the ancillary data...\n */ function drain_into_ancillary(gfp, remainingBits) {\n var gfc = gfp.internal_flags;\n var i;\n $91409b9649b00300$var$assert(remainingBits >= 0);\n if (remainingBits >= 8) {\n putbits2(gfc, 0x4c, 8);\n remainingBits -= 8;\n }\n if (remainingBits >= 8) {\n putbits2(gfc, 0x41, 8);\n remainingBits -= 8;\n }\n if (remainingBits >= 8) {\n putbits2(gfc, 0x4d, 8);\n remainingBits -= 8;\n }\n if (remainingBits >= 8) {\n putbits2(gfc, 0x45, 8);\n remainingBits -= 8;\n }\n if (remainingBits >= 32) {\n var version = ver.getLameShortVersion();\n if (remainingBits >= 32) for(i = 0; i < version.length && remainingBits >= 8; ++i){\n remainingBits -= 8;\n putbits2(gfc, version.charAt(i), 8);\n }\n }\n for(; remainingBits >= 1; remainingBits -= 1){\n putbits2(gfc, gfc.ancillary_flag, 1);\n gfc.ancillary_flag ^= !gfp.disable_reservoir ? 1 : 0;\n }\n $91409b9649b00300$var$assert(remainingBits == 0);\n }\n /**\n * write N bits into the header\n */ function writeheader(gfc, val, j) {\n var ptr = gfc.header[gfc.h_ptr].ptr;\n while(j > 0){\n var k = Math.min(j, 8 - (ptr & 7));\n j -= k;\n $91409b9649b00300$var$assert(j < MAX_LENGTH);\n /* >> 32 too large for 32 bit machines */ gfc.header[gfc.h_ptr].buf[ptr >> 3] |= val >> j << 8 - (ptr & 7) - k;\n ptr += k;\n }\n gfc.header[gfc.h_ptr].ptr = ptr;\n }\n function CRC_update(value, crc) {\n value <<= 8;\n for(var i = 0; i < 8; i++){\n value <<= 1;\n crc <<= 1;\n if (((crc ^ value) & 0x10000) != 0) crc ^= CRC16_POLYNOMIAL;\n }\n return crc;\n }\n this.CRC_writeheader = function(gfc, header) {\n var crc = 0xffff;\n /* (jo) init crc16 for error_protection */ crc = CRC_update(header[2] & 0xff, crc);\n crc = CRC_update(header[3] & 0xff, crc);\n for(var i = 6; i < gfc.sideinfo_len; i++)crc = CRC_update(header[i] & 0xff, crc);\n header[4] = byte(crc >> 8);\n header[5] = byte(crc & 255);\n };\n function encodeSideInfo2(gfp, bitsPerFrame) {\n var gfc = gfp.internal_flags;\n var l3_side;\n var gr, ch;\n l3_side = gfc.l3_side;\n gfc.header[gfc.h_ptr].ptr = 0;\n $91409b9649b00300$var$Arrays.fill(gfc.header[gfc.h_ptr].buf, 0, gfc.sideinfo_len, 0);\n if (gfp.out_samplerate < 16000) writeheader(gfc, 0xffe, 12);\n else writeheader(gfc, 0xfff, 12);\n writeheader(gfc, gfp.version, 1);\n writeheader(gfc, 1, 2);\n writeheader(gfc, !gfp.error_protection ? 1 : 0, 1);\n writeheader(gfc, gfc.bitrate_index, 4);\n writeheader(gfc, gfc.samplerate_index, 2);\n writeheader(gfc, gfc.padding, 1);\n writeheader(gfc, gfp.extension, 1);\n writeheader(gfc, gfp.mode.ordinal(), 2);\n writeheader(gfc, gfc.mode_ext, 2);\n writeheader(gfc, gfp.copyright, 1);\n writeheader(gfc, gfp.original, 1);\n writeheader(gfc, gfp.emphasis, 2);\n if (gfp.error_protection) writeheader(gfc, 0, 16);\n if (gfp.version == 1) {\n /* MPEG1 */ $91409b9649b00300$var$assert(l3_side.main_data_begin >= 0);\n writeheader(gfc, l3_side.main_data_begin, 9);\n if (gfc.channels_out == 2) writeheader(gfc, l3_side.private_bits, 3);\n else writeheader(gfc, l3_side.private_bits, 5);\n for(ch = 0; ch < gfc.channels_out; ch++){\n var band;\n for(band = 0; band < 4; band++)writeheader(gfc, l3_side.scfsi[ch][band], 1);\n }\n for(gr = 0; gr < 2; gr++)for(ch = 0; ch < gfc.channels_out; ch++){\n var gi = l3_side.tt[gr][ch];\n writeheader(gfc, gi.part2_3_length + gi.part2_length, 12);\n writeheader(gfc, gi.big_values / 2, 9);\n writeheader(gfc, gi.global_gain, 8);\n writeheader(gfc, gi.scalefac_compress, 4);\n if (gi.block_type != $cPNKB.NORM_TYPE) {\n writeheader(gfc, 1, 1);\n /* window_switching_flag */ writeheader(gfc, gi.block_type, 2);\n writeheader(gfc, gi.mixed_block_flag, 1);\n if (gi.table_select[0] == 14) gi.table_select[0] = 16;\n writeheader(gfc, gi.table_select[0], 5);\n if (gi.table_select[1] == 14) gi.table_select[1] = 16;\n writeheader(gfc, gi.table_select[1], 5);\n writeheader(gfc, gi.subblock_gain[0], 3);\n writeheader(gfc, gi.subblock_gain[1], 3);\n writeheader(gfc, gi.subblock_gain[2], 3);\n } else {\n writeheader(gfc, 0, 1);\n /* window_switching_flag */ if (gi.table_select[0] == 14) gi.table_select[0] = 16;\n writeheader(gfc, gi.table_select[0], 5);\n if (gi.table_select[1] == 14) gi.table_select[1] = 16;\n writeheader(gfc, gi.table_select[1], 5);\n if (gi.table_select[2] == 14) gi.table_select[2] = 16;\n writeheader(gfc, gi.table_select[2], 5);\n $91409b9649b00300$var$assert(0 <= gi.region0_count && gi.region0_count < 16);\n $91409b9649b00300$var$assert(0 <= gi.region1_count && gi.region1_count < 8);\n writeheader(gfc, gi.region0_count, 4);\n writeheader(gfc, gi.region1_count, 3);\n }\n writeheader(gfc, gi.preflag, 1);\n writeheader(gfc, gi.scalefac_scale, 1);\n writeheader(gfc, gi.count1table_select, 1);\n }\n } else {\n /* MPEG2 */ $91409b9649b00300$var$assert(l3_side.main_data_begin >= 0);\n writeheader(gfc, l3_side.main_data_begin, 8);\n writeheader(gfc, l3_side.private_bits, gfc.channels_out);\n gr = 0;\n for(ch = 0; ch < gfc.channels_out; ch++){\n var gi = l3_side.tt[gr][ch];\n writeheader(gfc, gi.part2_3_length + gi.part2_length, 12);\n writeheader(gfc, gi.big_values / 2, 9);\n writeheader(gfc, gi.global_gain, 8);\n writeheader(gfc, gi.scalefac_compress, 9);\n if (gi.block_type != $cPNKB.NORM_TYPE) {\n writeheader(gfc, 1, 1);\n /* window_switching_flag */ writeheader(gfc, gi.block_type, 2);\n writeheader(gfc, gi.mixed_block_flag, 1);\n if (gi.table_select[0] == 14) gi.table_select[0] = 16;\n writeheader(gfc, gi.table_select[0], 5);\n if (gi.table_select[1] == 14) gi.table_select[1] = 16;\n writeheader(gfc, gi.table_select[1], 5);\n writeheader(gfc, gi.subblock_gain[0], 3);\n writeheader(gfc, gi.subblock_gain[1], 3);\n writeheader(gfc, gi.subblock_gain[2], 3);\n } else {\n writeheader(gfc, 0, 1);\n /* window_switching_flag */ if (gi.table_select[0] == 14) gi.table_select[0] = 16;\n writeheader(gfc, gi.table_select[0], 5);\n if (gi.table_select[1] == 14) gi.table_select[1] = 16;\n writeheader(gfc, gi.table_select[1], 5);\n if (gi.table_select[2] == 14) gi.table_select[2] = 16;\n writeheader(gfc, gi.table_select[2], 5);\n $91409b9649b00300$var$assert(0 <= gi.region0_count && gi.region0_count < 16);\n $91409b9649b00300$var$assert(0 <= gi.region1_count && gi.region1_count < 8);\n writeheader(gfc, gi.region0_count, 4);\n writeheader(gfc, gi.region1_count, 3);\n }\n writeheader(gfc, gi.scalefac_scale, 1);\n writeheader(gfc, gi.count1table_select, 1);\n }\n }\n if (gfp.error_protection) /* (jo) error_protection: add crc16 information to header */ CRC_writeheader(gfc, gfc.header[gfc.h_ptr].buf);\n var old = gfc.h_ptr;\n $91409b9649b00300$var$assert(gfc.header[old].ptr == gfc.sideinfo_len * 8);\n gfc.h_ptr = old + 1 & $4SDnr.MAX_HEADER_BUF - 1;\n gfc.header[gfc.h_ptr].write_timing = gfc.header[old].write_timing + bitsPerFrame;\n if (gfc.h_ptr == gfc.w_ptr) /* yikes! we are out of header buffer space */ $91409b9649b00300$var$System.err.println(\"Error: MAX_HEADER_BUF too small in bitstream.c \\n\");\n }\n function huffman_coder_count1(gfc, gi) {\n /* Write count1 area */ var h = $dQDcS.ht[gi.count1table_select + 32];\n var i, bits = 0;\n var ix = gi.big_values;\n var xr = gi.big_values;\n $91409b9649b00300$var$assert(gi.count1table_select < 2);\n for(i = (gi.count1 - gi.big_values) / 4; i > 0; --i){\n var huffbits = 0;\n var p = 0, v;\n v = gi.l3_enc[ix + 0];\n if (v != 0) {\n p += 8;\n if (gi.xr[xr + 0] < 0) huffbits++;\n $91409b9649b00300$var$assert(v <= 1);\n }\n v = gi.l3_enc[ix + 1];\n if (v != 0) {\n p += 4;\n huffbits *= 2;\n if (gi.xr[xr + 1] < 0) huffbits++;\n $91409b9649b00300$var$assert(v <= 1);\n }\n v = gi.l3_enc[ix + 2];\n if (v != 0) {\n p += 2;\n huffbits *= 2;\n if (gi.xr[xr + 2] < 0) huffbits++;\n $91409b9649b00300$var$assert(v <= 1);\n }\n v = gi.l3_enc[ix + 3];\n if (v != 0) {\n p++;\n huffbits *= 2;\n if (gi.xr[xr + 3] < 0) huffbits++;\n $91409b9649b00300$var$assert(v <= 1);\n }\n ix += 4;\n xr += 4;\n putbits2(gfc, huffbits + h.table[p], h.hlen[p]);\n bits += h.hlen[p];\n }\n return bits;\n }\n /**\n * Implements the pseudocode of page 98 of the IS\n */ function Huffmancode(gfc, tableindex, start, end, gi) {\n var h = $dQDcS.ht[tableindex];\n var bits = 0;\n $91409b9649b00300$var$assert(tableindex < 32);\n if (0 == tableindex) return bits;\n for(var i = start; i < end; i += 2){\n var cbits = 0;\n var xbits = 0;\n var linbits = h.xlen;\n var xlen = h.xlen;\n var ext = 0;\n var x1 = gi.l3_enc[i];\n var x2 = gi.l3_enc[i + 1];\n if (x1 != 0) {\n if (gi.xr[i] < 0) ext++;\n cbits--;\n }\n if (tableindex > 15) {\n /* use ESC-words */ if (x1 > 14) {\n var linbits_x1 = x1 - 15;\n $91409b9649b00300$var$assert(linbits_x1 <= h.linmax);\n ext |= linbits_x1 << 1;\n xbits = linbits;\n x1 = 15;\n }\n if (x2 > 14) {\n var linbits_x2 = x2 - 15;\n $91409b9649b00300$var$assert(linbits_x2 <= h.linmax);\n ext <<= linbits;\n ext |= linbits_x2;\n xbits += linbits;\n x2 = 15;\n }\n xlen = 16;\n }\n if (x2 != 0) {\n ext <<= 1;\n if (gi.xr[i + 1] < 0) ext++;\n cbits--;\n }\n $91409b9649b00300$var$assert((x1 | x2) < 16);\n x1 = x1 * xlen + x2;\n xbits -= cbits;\n cbits += h.hlen[x1];\n $91409b9649b00300$var$assert(cbits <= MAX_LENGTH);\n $91409b9649b00300$var$assert(xbits <= MAX_LENGTH);\n putbits2(gfc, h.table[x1], cbits);\n putbits2(gfc, ext, xbits);\n bits += cbits + xbits;\n }\n return bits;\n }\n /**\n * Note the discussion of huffmancodebits() on pages 28 and 29 of the IS, as\n * well as the definitions of the side information on pages 26 and 27.\n */ function ShortHuffmancodebits(gfc, gi) {\n var region1Start = 3 * gfc.scalefac_band.s[3];\n if (region1Start > gi.big_values) region1Start = gi.big_values;\n /* short blocks do not have a region2 */ var bits = Huffmancode(gfc, gi.table_select[0], 0, region1Start, gi);\n bits += Huffmancode(gfc, gi.table_select[1], region1Start, gi.big_values, gi);\n return bits;\n }\n function LongHuffmancodebits(gfc, gi) {\n var bigvalues, bits;\n var region1Start, region2Start;\n bigvalues = gi.big_values;\n $91409b9649b00300$var$assert(0 <= bigvalues && bigvalues <= 576);\n var i = gi.region0_count + 1;\n $91409b9649b00300$var$assert(0 <= i);\n $91409b9649b00300$var$assert(i < gfc.scalefac_band.l.length);\n region1Start = gfc.scalefac_band.l[i];\n i += gi.region1_count + 1;\n $91409b9649b00300$var$assert(0 <= i);\n $91409b9649b00300$var$assert(i < gfc.scalefac_band.l.length);\n region2Start = gfc.scalefac_band.l[i];\n if (region1Start > bigvalues) region1Start = bigvalues;\n if (region2Start > bigvalues) region2Start = bigvalues;\n bits = Huffmancode(gfc, gi.table_select[0], 0, region1Start, gi);\n bits += Huffmancode(gfc, gi.table_select[1], region1Start, region2Start, gi);\n bits += Huffmancode(gfc, gi.table_select[2], region2Start, bigvalues, gi);\n return bits;\n }\n function writeMainData(gfp) {\n var gr, ch, sfb, data_bits, tot_bits = 0;\n var gfc = gfp.internal_flags;\n var l3_side = gfc.l3_side;\n if (gfp.version == 1) {\n /* MPEG 1 */ for(gr = 0; gr < 2; gr++)for(ch = 0; ch < gfc.channels_out; ch++){\n var gi = l3_side.tt[gr][ch];\n var slen1 = $65Sx2.slen1_tab[gi.scalefac_compress];\n var slen2 = $65Sx2.slen2_tab[gi.scalefac_compress];\n data_bits = 0;\n for(sfb = 0; sfb < gi.sfbdivide; sfb++){\n if (gi.scalefac[sfb] == -1) continue;\n /* scfsi is used */ putbits2(gfc, gi.scalefac[sfb], slen1);\n data_bits += slen1;\n }\n for(; sfb < gi.sfbmax; sfb++){\n if (gi.scalefac[sfb] == -1) continue;\n /* scfsi is used */ putbits2(gfc, gi.scalefac[sfb], slen2);\n data_bits += slen2;\n }\n $91409b9649b00300$var$assert(data_bits == gi.part2_length);\n if (gi.block_type == $cPNKB.SHORT_TYPE) data_bits += ShortHuffmancodebits(gfc, gi);\n else data_bits += LongHuffmancodebits(gfc, gi);\n data_bits += huffman_coder_count1(gfc, gi);\n /* does bitcount in quantize.c agree with actual bit count? */ $91409b9649b00300$var$assert(data_bits == gi.part2_3_length + gi.part2_length);\n tot_bits += data_bits;\n }\n /* for gr */ } else {\n /* MPEG 2 */ gr = 0;\n for(ch = 0; ch < gfc.channels_out; ch++){\n var gi = l3_side.tt[gr][ch];\n var i, sfb_partition, scale_bits = 0;\n $91409b9649b00300$var$assert(gi.sfb_partition_table != null);\n data_bits = 0;\n sfb = 0;\n sfb_partition = 0;\n if (gi.block_type == $cPNKB.SHORT_TYPE) {\n for(; sfb_partition < 4; sfb_partition++){\n var sfbs = gi.sfb_partition_table[sfb_partition] / 3;\n var slen = gi.slen[sfb_partition];\n for(i = 0; i < sfbs; i++, sfb++){\n putbits2(gfc, Math.max(gi.scalefac[sfb * 3 + 0], 0), slen);\n putbits2(gfc, Math.max(gi.scalefac[sfb * 3 + 1], 0), slen);\n putbits2(gfc, Math.max(gi.scalefac[sfb * 3 + 2], 0), slen);\n scale_bits += 3 * slen;\n }\n }\n data_bits += ShortHuffmancodebits(gfc, gi);\n } else {\n for(; sfb_partition < 4; sfb_partition++){\n var sfbs = gi.sfb_partition_table[sfb_partition];\n var slen = gi.slen[sfb_partition];\n for(i = 0; i < sfbs; i++, sfb++){\n putbits2(gfc, Math.max(gi.scalefac[sfb], 0), slen);\n scale_bits += slen;\n }\n }\n data_bits += LongHuffmancodebits(gfc, gi);\n }\n data_bits += huffman_coder_count1(gfc, gi);\n /* does bitcount in quantize.c agree with actual bit count? */ $91409b9649b00300$var$assert(data_bits == gi.part2_3_length);\n $91409b9649b00300$var$assert(scale_bits == gi.part2_length);\n tot_bits += scale_bits + data_bits;\n }\n /* for ch */ }\n /* for gf */ return tot_bits;\n }\n /* main_data */ function TotalBytes() {\n this.total = 0;\n }\n /*\n * compute the number of bits required to flush all mp3 frames currently in\n * the buffer. This should be the same as the reservoir size. Only call this\n * routine between frames - i.e. only after all headers and data have been\n * added to the buffer by format_bitstream().\n *\n * Also compute total_bits_output = size of mp3 buffer (including frame\n * headers which may not have yet been send to the mp3 buffer) + number of\n * bits needed to flush all mp3 frames.\n *\n * total_bytes_output is the size of the mp3 output buffer if\n * lame_encode_flush_nogap() was called right now.\n */ function compute_flushbits(gfp, total_bytes_output) {\n var gfc = gfp.internal_flags;\n var flushbits, remaining_headers;\n var bitsPerFrame;\n var last_ptr, first_ptr;\n first_ptr = gfc.w_ptr;\n /* first header to add to bitstream */ last_ptr = gfc.h_ptr - 1;\n /* last header to add to bitstream */ if (last_ptr == -1) last_ptr = $4SDnr.MAX_HEADER_BUF - 1;\n /* add this many bits to bitstream so we can flush all headers */ flushbits = gfc.header[last_ptr].write_timing - totbit;\n total_bytes_output.total = flushbits;\n if (flushbits >= 0) {\n /* if flushbits >= 0, some headers have not yet been written */ /* reduce flushbits by the size of the headers */ remaining_headers = 1 + last_ptr - first_ptr;\n if (last_ptr < first_ptr) remaining_headers = 1 + last_ptr - first_ptr + $4SDnr.MAX_HEADER_BUF;\n flushbits -= remaining_headers * 8 * gfc.sideinfo_len;\n }\n /*\n * finally, add some bits so that the last frame is complete these bits\n * are not necessary to decode the last frame, but some decoders will\n * ignore last frame if these bits are missing\n */ bitsPerFrame = self.getframebits(gfp);\n flushbits += bitsPerFrame;\n total_bytes_output.total += bitsPerFrame;\n /* round up: */ if (total_bytes_output.total % 8 != 0) total_bytes_output.total = 1 + total_bytes_output.total / 8;\n else total_bytes_output.total = total_bytes_output.total / 8;\n total_bytes_output.total += bufByteIdx + 1;\n if (flushbits < 0) $91409b9649b00300$var$System.err.println(\"strange error flushing buffer ... \\n\");\n return flushbits;\n }\n this.flush_bitstream = function(gfp) {\n var gfc = gfp.internal_flags;\n var l3_side;\n var flushbits;\n var last_ptr = gfc.h_ptr - 1;\n /* last header to add to bitstream */ if (last_ptr == -1) last_ptr = $4SDnr.MAX_HEADER_BUF - 1;\n l3_side = gfc.l3_side;\n if ((flushbits = compute_flushbits(gfp, new TotalBytes())) < 0) return;\n drain_into_ancillary(gfp, flushbits);\n /* check that the 100% of the last frame has been written to bitstream */ $91409b9649b00300$var$assert(gfc.header[last_ptr].write_timing + this.getframebits(gfp) == totbit);\n /*\n * we have padded out all frames with ancillary data, which is the same\n * as filling the bitreservoir with ancillary data, so :\n */ gfc.ResvSize = 0;\n l3_side.main_data_begin = 0;\n /* save the ReplayGain value */ if (gfc.findReplayGain) {\n var RadioGain = ga.GetTitleGain(gfc.rgdata);\n $91409b9649b00300$var$assert(NEQ(RadioGain, GainAnalysis.GAIN_NOT_ENOUGH_SAMPLES));\n gfc.RadioGain = Math.floor(RadioGain * 10.0 + 0.5) | 0;\n /* round to nearest */ }\n /* find the gain and scale change required for no clipping */ if (gfc.findPeakSample) {\n gfc.noclipGainChange = Math.ceil(Math.log10(gfc.PeakSample / 32767.0) * 200) | 0;\n /* round up */ if (gfc.noclipGainChange > 0) {\n /* clipping occurs */ if (EQ(gfp.scale, 1.0) || EQ(gfp.scale, 0.0)) gfc.noclipScale = Math.floor(32767.0 / gfc.PeakSample * 100.0) / 100.0;\n else /*\n * the user specified his own scaling factor. We could\n * suggest the scaling factor of\n * (32767.0/gfp.PeakSample)*(gfp.scale) but it's usually\n * very inaccurate. So we'd rather not advice him on the\n * scaling factor.\n */ gfc.noclipScale = -1;\n } else /* no clipping */ gfc.noclipScale = -1;\n }\n };\n this.add_dummy_byte = function(gfp, val, n) {\n var gfc = gfp.internal_flags;\n var i;\n while(n-- > 0){\n putbits_noheaders(gfc, val, 8);\n for(i = 0; i < $4SDnr.MAX_HEADER_BUF; ++i)gfc.header[i].write_timing += 8;\n }\n };\n /**\n * This is called after a frame of audio has been quantized and coded. It\n * will write the encoded audio to the bitstream. Note that from a layer3\n * encoder's perspective the bit stream is primarily a series of main_data()\n * blocks, with header and side information inserted at the proper locations\n * to maintain framing. (See Figure A.7 in the IS).\n */ this.format_bitstream = function(gfp) {\n var gfc = gfp.internal_flags;\n var l3_side;\n l3_side = gfc.l3_side;\n var bitsPerFrame = this.getframebits(gfp);\n drain_into_ancillary(gfp, l3_side.resvDrain_pre);\n encodeSideInfo2(gfp, bitsPerFrame);\n var bits = 8 * gfc.sideinfo_len;\n bits += writeMainData(gfp);\n drain_into_ancillary(gfp, l3_side.resvDrain_post);\n bits += l3_side.resvDrain_post;\n l3_side.main_data_begin += (bitsPerFrame - bits) / 8;\n /*\n * compare number of bits needed to clear all buffered mp3 frames with\n * what we think the resvsize is:\n */ if (compute_flushbits(gfp, new TotalBytes()) != gfc.ResvSize) $91409b9649b00300$var$System.err.println(\"Internal buffer inconsistency. flushbits <> ResvSize\");\n /*\n * compare main_data_begin for the next frame with what we think the\n * resvsize is:\n */ if (l3_side.main_data_begin * 8 != gfc.ResvSize) {\n $91409b9649b00300$var$System.err.printf(\"bit reservoir error: \\nl3_side.main_data_begin: %d \\nResvoir size: %d \\nresv drain (post) %d \\nresv drain (pre) %d \\nheader and sideinfo: %d \\ndata bits: %d \\ntotal bits: %d (remainder: %d) \\nbitsperframe: %d \\n\", 8 * l3_side.main_data_begin, gfc.ResvSize, l3_side.resvDrain_post, l3_side.resvDrain_pre, 8 * gfc.sideinfo_len, bits - l3_side.resvDrain_post - 8 * gfc.sideinfo_len, bits, bits % 8, bitsPerFrame);\n $91409b9649b00300$var$System.err.println(\"This is a fatal error. It has several possible causes:\");\n $91409b9649b00300$var$System.err.println(\"90%% LAME compiled with buggy version of gcc using advanced optimizations\");\n $91409b9649b00300$var$System.err.println(\" 9%% Your system is overclocked\");\n $91409b9649b00300$var$System.err.println(\" 1%% bug in LAME encoding library\");\n gfc.ResvSize = l3_side.main_data_begin * 8;\n }\n //;\n $91409b9649b00300$var$assert(totbit % 8 == 0);\n if (totbit > 1000000000) {\n /*\n * to avoid totbit overflow, (at 8h encoding at 128kbs) lets reset\n * bit counter\n */ var i;\n for(i = 0; i < $4SDnr.MAX_HEADER_BUF; ++i)gfc.header[i].write_timing -= totbit;\n totbit = 0;\n }\n return 0;\n };\n /**\n * <PRE>\n * copy data out of the internal MP3 bit buffer into a user supplied\n * unsigned char buffer.\n *\n * mp3data=0 indicates data in buffer is an id3tags and VBR tags\n * mp3data=1 data is real mp3 frame data.\n * </PRE>\n */ this.copy_buffer = function(gfc, buffer, bufferPos, size, mp3data) {\n var minimum = bufByteIdx + 1;\n if (minimum <= 0) return 0;\n if (size != 0 && minimum > size) /* buffer is too small */ return -1;\n $91409b9649b00300$var$System.arraycopy(buf, 0, buffer, bufferPos, minimum);\n bufByteIdx = -1;\n bufBitIdx = 0;\n if (mp3data != 0) {\n var crc = $91409b9649b00300$var$new_int(1);\n crc[0] = gfc.nMusicCRC;\n vbr.updateMusicCRC(crc, buffer, bufferPos, minimum);\n gfc.nMusicCRC = crc[0];\n /**\n * sum number of bytes belonging to the mp3 stream this info will be\n * written into the Xing/LAME header for seeking\n */ if (minimum > 0) gfc.VBR_seek_table.nBytesWritten += minimum;\n if (gfc.decode_on_the_fly) {\n var pcm_buf = $91409b9649b00300$var$new_float_n([\n 2,\n 1152\n ]);\n var mp3_in = minimum;\n var samples_out = -1;\n var i;\n /* re-synthesis to pcm. Repeat until we get a samples_out=0 */ while(samples_out != 0){\n samples_out = mpg.hip_decode1_unclipped(gfc.hip, buffer, bufferPos, mp3_in, pcm_buf[0], pcm_buf[1]);\n /*\n * samples_out = 0: need more data to decode samples_out =\n * -1: error. Lets assume 0 pcm output samples_out = number\n * of samples output\n */ /*\n * set the lenght of the mp3 input buffer to zero, so that\n * in the next iteration of the loop we will be querying\n * mpglib about buffered data\n */ mp3_in = 0;\n if (samples_out == -1) /*\n * error decoding. Not fatal, but might screw up the\n * ReplayGain tag. What should we do? Ignore for now\n */ samples_out = 0;\n if (samples_out > 0) {\n /* process the PCM data */ /*\n * this should not be possible, and indicates we have\n * overflown the pcm_buf buffer\n */ $91409b9649b00300$var$assert(samples_out <= 1152);\n if (gfc.findPeakSample) {\n for(i = 0; i < samples_out; i++){\n if (pcm_buf[0][i] > gfc.PeakSample) gfc.PeakSample = pcm_buf[0][i];\n else if (-pcm_buf[0][i] > gfc.PeakSample) gfc.PeakSample = -pcm_buf[0][i];\n }\n if (gfc.channels_out > 1) for(i = 0; i < samples_out; i++){\n if (pcm_buf[1][i] > gfc.PeakSample) gfc.PeakSample = pcm_buf[1][i];\n else if (-pcm_buf[1][i] > gfc.PeakSample) gfc.PeakSample = -pcm_buf[1][i];\n }\n }\n if (gfc.findReplayGain) {\n if (ga.AnalyzeSamples(gfc.rgdata, pcm_buf[0], 0, pcm_buf[1], 0, samples_out, gfc.channels_out) == GainAnalysis.GAIN_ANALYSIS_ERROR) return -6;\n }\n }\n /* if (samples_out>0) */ }\n /* while (samples_out!=0) */ }\n /* if (gfc.decode_on_the_fly) */ }\n /* if (mp3data) */ return minimum;\n };\n this.init_bit_stream_w = function(gfc) {\n buf = $91409b9649b00300$var$new_byte(Lame.LAME_MAXMP3BUFFER);\n gfc.h_ptr = gfc.w_ptr = 0;\n gfc.header[gfc.h_ptr].write_timing = 0;\n bufByteIdx = -1;\n bufBitIdx = 0;\n totbit = 0;\n };\n// From machine.h\n}\nmodule.exports = $91409b9649b00300$var$BitStream;\n\n});\nparcelRequire.register(\"65Sx2\", function(module, exports) {\n/*\n *\tMP3 huffman table selecting and bit counting\n *\n *\tCopyright (c) 1999-2005 Takehiro TOMINAGA\n *\tCopyright (c) 2002-2005 Gabriel Bouvigne\n *\n * This library is free software; you can redistribute it and/or\n * modify it under the terms of the GNU Lesser General Public\n * License as published by the Free Software Foundation; either\n * version 2 of the License, or (at your option) any later version.\n *\n * This library is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\t See the GNU\n * Library General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this library; if not, write to the\n * Free Software Foundation, Inc., 59 Temple Place - Suite 330,\n * Boston, MA 02111-1307, USA.\n */ /* $Id: Takehiro.java,v 1.26 2011/05/24 20:48:06 kenchis Exp $ */ //package mp3;\n//import java.util.Arrays;\n\nvar $3YDN3 = parcelRequire(\"3YDN3\");\nvar $46fd82963609949b$var$System = $3YDN3.System;\nvar $46fd82963609949b$var$VbrMode = $3YDN3.VbrMode;\nvar $46fd82963609949b$var$Float = $3YDN3.Float;\nvar $46fd82963609949b$var$ShortBlock = $3YDN3.ShortBlock;\nvar $46fd82963609949b$var$Util = $3YDN3.Util;\nvar $46fd82963609949b$var$Arrays = $3YDN3.Arrays;\nvar $46fd82963609949b$var$new_array_n = $3YDN3.new_array_n;\nvar $46fd82963609949b$var$new_byte = $3YDN3.new_byte;\nvar $46fd82963609949b$var$new_double = $3YDN3.new_double;\nvar $46fd82963609949b$var$new_float = $3YDN3.new_float;\nvar $46fd82963609949b$var$new_float_n = $3YDN3.new_float_n;\nvar $46fd82963609949b$var$new_int = $3YDN3.new_int;\nvar $46fd82963609949b$var$new_int_n = $3YDN3.new_int_n;\nvar $46fd82963609949b$var$assert = $3YDN3.assert;\n\nvar $cPNKB = parcelRequire(\"cPNKB\");\n\nvar $dQDcS = parcelRequire(\"dQDcS\");\n\nvar $7weBo = parcelRequire(\"7weBo\");\n\nvar $84mea = parcelRequire(\"84mea\");\nfunction $46fd82963609949b$var$Takehiro() {\n var qupvt = null;\n this.qupvt = null;\n this.setModules = function(_qupvt) {\n this.qupvt = _qupvt;\n qupvt = _qupvt;\n };\n function Bits(b) {\n this.bits = 0 | b;\n }\n var subdv_table = [\n [\n 0,\n 0\n ],\n /* 0 bands */ [\n 0,\n 0\n ],\n /* 1 bands */ [\n 0,\n 0\n ],\n /* 2 bands */ [\n 0,\n 0\n ],\n /* 3 bands */ [\n 0,\n 0\n ],\n /* 4 bands */ [\n 0,\n 1\n ],\n /* 5 bands */ [\n 1,\n 1\n ],\n /* 6 bands */ [\n 1,\n 1\n ],\n /* 7 bands */ [\n 1,\n 2\n ],\n /* 8 bands */ [\n 2,\n 2\n ],\n /* 9 bands */ [\n 2,\n 3\n ],\n /* 10 bands */ [\n 2,\n 3\n ],\n /* 11 bands */ [\n 3,\n 4\n ],\n /* 12 bands */ [\n 3,\n 4\n ],\n /* 13 bands */ [\n 3,\n 4\n ],\n /* 14 bands */ [\n 4,\n 5\n ],\n /* 15 bands */ [\n 4,\n 5\n ],\n /* 16 bands */ [\n 4,\n 6\n ],\n /* 17 bands */ [\n 5,\n 6\n ],\n /* 18 bands */ [\n 5,\n 6\n ],\n /* 19 bands */ [\n 5,\n 7\n ],\n /* 20 bands */ [\n 6,\n 7\n ],\n /* 21 bands */ [\n 6,\n 7\n ]\n ];\n /**\n * nonlinear quantization of xr More accurate formula than the ISO formula.\n * Takes into account the fact that we are quantizing xr . ix, but we want\n * ix^4/3 to be as close as possible to x^4/3. (taking the nearest int would\n * mean ix is as close as possible to xr, which is different.)\n *\n * From Segher Boessenkool <segher@eastsite.nl> 11/1999\n *\n * 09/2000: ASM code removed in favor of IEEE754 hack by Takehiro Tominaga.\n * If you need the ASM code, check CVS circa Aug 2000.\n *\n * 01/2004: Optimizations by Gabriel Bouvigne\n */ function quantize_lines_xrpow_01(l, istep, xr, xrPos, ix, ixPos) {\n var compareval0 = 0.5946 / istep;\n $46fd82963609949b$var$assert(l > 0);\n l = l >> 1;\n while(l-- != 0){\n ix[ixPos++] = compareval0 > xr[xrPos++] ? 0 : 1;\n ix[ixPos++] = compareval0 > xr[xrPos++] ? 0 : 1;\n }\n }\n /**\n * XRPOW_FTOI is a macro to convert floats to ints.<BR>\n * if XRPOW_FTOI(x) = nearest_int(x), then QUANTFAC(x)=adj43asm[x]<BR>\n * ROUNDFAC= -0.0946<BR>\n *\n * if XRPOW_FTOI(x) = floor(x), then QUANTFAC(x)=asj43[x]<BR>\n * ROUNDFAC=0.4054<BR>\n *\n * Note: using floor() or 0| is extremely slow. On machines where the\n * TAKEHIRO_IEEE754_HACK code above does not work, it is worthwile to write\n * some ASM for XRPOW_FTOI().\n */ function quantize_lines_xrpow(l, istep, xr, xrPos, ix, ixPos) {\n $46fd82963609949b$var$assert(l > 0);\n l = l >> 1;\n var remaining = l % 2;\n l = l >> 1;\n while(l-- != 0){\n var x0, x1, x2, x3;\n var rx0, rx1, rx2, rx3;\n x0 = xr[xrPos++] * istep;\n x1 = xr[xrPos++] * istep;\n rx0 = 0 | x0;\n x2 = xr[xrPos++] * istep;\n rx1 = 0 | x1;\n x3 = xr[xrPos++] * istep;\n rx2 = 0 | x2;\n x0 += qupvt.adj43[rx0];\n rx3 = 0 | x3;\n x1 += qupvt.adj43[rx1];\n ix[ixPos++] = 0 | x0;\n x2 += qupvt.adj43[rx2];\n ix[ixPos++] = 0 | x1;\n x3 += qupvt.adj43[rx3];\n ix[ixPos++] = 0 | x2;\n ix[ixPos++] = 0 | x3;\n }\n if (remaining != 0) {\n var x0, x1;\n var rx0, rx1;\n x0 = xr[xrPos++] * istep;\n x1 = xr[xrPos++] * istep;\n rx0 = 0 | x0;\n rx1 = 0 | x1;\n x0 += qupvt.adj43[rx0];\n x1 += qupvt.adj43[rx1];\n ix[ixPos++] = 0 | x0;\n ix[ixPos++] = 0 | x1;\n }\n }\n /**\n * Quantization function This function will select which lines to quantize\n * and call the proper quantization function\n */ function quantize_xrpow(xp, pi, istep, codInfo, prevNoise) {\n /* quantize on xr^(3/4) instead of xr */ var sfb;\n var sfbmax;\n var j = 0;\n var prev_data_use;\n var accumulate = 0;\n var accumulate01 = 0;\n var xpPos = 0;\n var iData = pi;\n var iDataPos = 0;\n var acc_iData = iData;\n var acc_iDataPos = 0;\n var acc_xp = xp;\n var acc_xpPos = 0;\n /*\n * Reusing previously computed data does not seems to work if global\n * gain is changed. Finding why it behaves this way would allow to use a\n * cache of previously computed values (let's 10 cached values per sfb)\n * that would probably provide a noticeable speedup\n */ prev_data_use = prevNoise != null && codInfo.global_gain == prevNoise.global_gain;\n if (codInfo.block_type == $cPNKB.SHORT_TYPE) sfbmax = 38;\n else sfbmax = 21;\n for(sfb = 0; sfb <= sfbmax; sfb++){\n var step = -1;\n if (prev_data_use || codInfo.block_type == $cPNKB.NORM_TYPE) step = codInfo.global_gain - (codInfo.scalefac[sfb] + (codInfo.preflag != 0 ? qupvt.pretab[sfb] : 0) << codInfo.scalefac_scale + 1) - codInfo.subblock_gain[codInfo.window[sfb]] * 8;\n $46fd82963609949b$var$assert(codInfo.width[sfb] >= 0);\n if (prev_data_use && prevNoise.step[sfb] == step) {\n /*\n * do not recompute this part, but compute accumulated lines\n */ if (accumulate != 0) {\n quantize_lines_xrpow(accumulate, istep, acc_xp, acc_xpPos, acc_iData, acc_iDataPos);\n accumulate = 0;\n }\n if (accumulate01 != 0) {\n quantize_lines_xrpow_01(accumulate01, istep, acc_xp, acc_xpPos, acc_iData, acc_iDataPos);\n accumulate01 = 0;\n }\n } else {\n var l = codInfo.width[sfb];\n if (j + codInfo.width[sfb] > codInfo.max_nonzero_coeff) {\n /* do not compute upper zero part */ var usefullsize;\n usefullsize = codInfo.max_nonzero_coeff - j + 1;\n $46fd82963609949b$var$Arrays.fill(pi, codInfo.max_nonzero_coeff, 576, 0);\n l = usefullsize;\n if (l < 0) l = 0;\n /* no need to compute higher sfb values */ sfb = sfbmax + 1;\n }\n /* accumulate lines to quantize */ if (0 == accumulate && 0 == accumulate01) {\n acc_iData = iData;\n acc_iDataPos = iDataPos;\n acc_xp = xp;\n acc_xpPos = xpPos;\n }\n if (prevNoise != null && prevNoise.sfb_count1 > 0 && sfb >= prevNoise.sfb_count1 && prevNoise.step[sfb] > 0 && step >= prevNoise.step[sfb]) {\n if (accumulate != 0) {\n quantize_lines_xrpow(accumulate, istep, acc_xp, acc_xpPos, acc_iData, acc_iDataPos);\n accumulate = 0;\n acc_iData = iData;\n acc_iDataPos = iDataPos;\n acc_xp = xp;\n acc_xpPos = xpPos;\n }\n accumulate01 += l;\n } else {\n if (accumulate01 != 0) {\n quantize_lines_xrpow_01(accumulate01, istep, acc_xp, acc_xpPos, acc_iData, acc_iDataPos);\n accumulate01 = 0;\n acc_iData = iData;\n acc_iDataPos = iDataPos;\n acc_xp = xp;\n acc_xpPos = xpPos;\n }\n accumulate += l;\n }\n if (l <= 0) {\n /*\n * rh: 20040215 may happen due to \"prev_data_use\"\n * optimization\n */ if (accumulate01 != 0) {\n quantize_lines_xrpow_01(accumulate01, istep, acc_xp, acc_xpPos, acc_iData, acc_iDataPos);\n accumulate01 = 0;\n }\n if (accumulate != 0) {\n quantize_lines_xrpow(accumulate, istep, acc_xp, acc_xpPos, acc_iData, acc_iDataPos);\n accumulate = 0;\n }\n break;\n /* ends for-loop */ }\n }\n if (sfb <= sfbmax) {\n iDataPos += codInfo.width[sfb];\n xpPos += codInfo.width[sfb];\n j += codInfo.width[sfb];\n }\n }\n if (accumulate != 0) {\n quantize_lines_xrpow(accumulate, istep, acc_xp, acc_xpPos, acc_iData, acc_iDataPos);\n accumulate = 0;\n }\n if (accumulate01 != 0) {\n quantize_lines_xrpow_01(accumulate01, istep, acc_xp, acc_xpPos, acc_iData, acc_iDataPos);\n accumulate01 = 0;\n }\n }\n /**\n * ix_max\n */ function ix_max(ix, ixPos, endPos) {\n var max1 = 0, max2 = 0;\n do {\n var x1 = ix[ixPos++];\n var x2 = ix[ixPos++];\n if (max1 < x1) max1 = x1;\n if (max2 < x2) max2 = x2;\n }while (ixPos < endPos);\n if (max1 < max2) max1 = max2;\n return max1;\n }\n function count_bit_ESC(ix, ixPos, end, t1, t2, s) {\n /* ESC-table is used */ var linbits = $dQDcS.ht[t1].xlen * 65536 + $dQDcS.ht[t2].xlen;\n var sum = 0, sum2;\n do {\n var x = ix[ixPos++];\n var y = ix[ixPos++];\n if (x != 0) {\n if (x > 14) {\n x = 15;\n sum += linbits;\n }\n x *= 16;\n }\n if (y != 0) {\n if (y > 14) {\n y = 15;\n sum += linbits;\n }\n x += y;\n }\n sum += $dQDcS.largetbl[x];\n }while (ixPos < end);\n sum2 = sum & 0xffff;\n sum >>= 16;\n if (sum > sum2) {\n sum = sum2;\n t1 = t2;\n }\n s.bits += sum;\n return t1;\n }\n function count_bit_noESC(ix, ixPos, end, s) {\n /* No ESC-words */ var sum1 = 0;\n var hlen1 = $dQDcS.ht[1].hlen;\n do {\n var x = ix[ixPos + 0] * 2 + ix[ixPos + 1];\n ixPos += 2;\n sum1 += hlen1[x];\n }while (ixPos < end);\n s.bits += sum1;\n return 1;\n }\n function count_bit_noESC_from2(ix, ixPos, end, t1, s) {\n /* No ESC-words */ var sum = 0, sum2;\n var xlen = $dQDcS.ht[t1].xlen;\n var hlen;\n if (t1 == 2) hlen = $dQDcS.table23;\n else hlen = $dQDcS.table56;\n do {\n var x = ix[ixPos + 0] * xlen + ix[ixPos + 1];\n ixPos += 2;\n sum += hlen[x];\n }while (ixPos < end);\n sum2 = sum & 0xffff;\n sum >>= 16;\n if (sum > sum2) {\n sum = sum2;\n t1++;\n }\n s.bits += sum;\n return t1;\n }\n function count_bit_noESC_from3(ix, ixPos, end, t1, s) {\n /* No ESC-words */ var sum1 = 0;\n var sum2 = 0;\n var sum3 = 0;\n var xlen = $dQDcS.ht[t1].xlen;\n var hlen1 = $dQDcS.ht[t1].hlen;\n var hlen2 = $dQDcS.ht[t1 + 1].hlen;\n var hlen3 = $dQDcS.ht[t1 + 2].hlen;\n do {\n var x = ix[ixPos + 0] * xlen + ix[ixPos + 1];\n ixPos += 2;\n sum1 += hlen1[x];\n sum2 += hlen2[x];\n sum3 += hlen3[x];\n }while (ixPos < end);\n var t = t1;\n if (sum1 > sum2) {\n sum1 = sum2;\n t++;\n }\n if (sum1 > sum3) {\n sum1 = sum3;\n t = t1 + 2;\n }\n s.bits += sum1;\n return t;\n }\n /*************************************************************************/ /* choose table */ /*************************************************************************/ var huf_tbl_noESC = [\n 1,\n 2,\n 5,\n 7,\n 7,\n 10,\n 10,\n 13,\n 13,\n 13,\n 13,\n 13,\n 13,\n 13,\n 13\n ];\n /**\n * Choose the Huffman table that will encode ix[begin..end] with the fewest\n * bits.\n *\n * Note: This code contains knowledge about the sizes and characteristics of\n * the Huffman tables as defined in the IS (Table B.7), and will not work\n * with any arbitrary tables.\n */ function choose_table(ix, ixPos, endPos, s) {\n var max = ix_max(ix, ixPos, endPos);\n switch(max){\n case 0:\n return max;\n case 1:\n return count_bit_noESC(ix, ixPos, endPos, s);\n case 2:\n case 3:\n return count_bit_noESC_from2(ix, ixPos, endPos, huf_tbl_noESC[max - 1], s);\n case 4:\n case 5:\n case 6:\n case 7:\n case 8:\n case 9:\n case 10:\n case 11:\n case 12:\n case 13:\n case 14:\n case 15:\n return count_bit_noESC_from3(ix, ixPos, endPos, huf_tbl_noESC[max - 1], s);\n default:\n /* try tables with linbits */ if (max > $84mea.IXMAX_VAL) {\n s.bits = $84mea.LARGE_BITS;\n return -1;\n }\n max -= 15;\n var choice2;\n for(choice2 = 24; choice2 < 32; choice2++){\n if ($dQDcS.ht[choice2].linmax >= max) break;\n }\n var choice;\n for(choice = choice2 - 8; choice < 24; choice++){\n if ($dQDcS.ht[choice].linmax >= max) break;\n }\n return count_bit_ESC(ix, ixPos, endPos, choice, choice2, s);\n }\n }\n /**\n * count_bit\n */ this.noquant_count_bits = function(gfc, gi, prev_noise) {\n var ix = gi.l3_enc;\n var i = Math.min(576, gi.max_nonzero_coeff + 2 >> 1 << 1);\n if (prev_noise != null) prev_noise.sfb_count1 = 0;\n /* Determine count1 region */ for(; i > 1; i -= 2)if ((ix[i - 1] | ix[i - 2]) != 0) break;\n gi.count1 = i;\n /* Determines the number of bits to encode the quadruples. */ var a1 = 0;\n var a2 = 0;\n for(; i > 3; i -= 4){\n var p;\n /* hack to check if all values <= 1 */ //throw \"TODO: HACK if ((((long) ix[i - 1] | (long) ix[i - 2] | (long) ix[i - 3] | (long) ix[i - 4]) & 0xffffffffL) > 1L \"\n //if (true) {\n if (((ix[i - 1] | ix[i - 2] | ix[i - 3] | ix[i - 4]) & 0x7fffffff) > 1) break;\n p = ((ix[i - 4] * 2 + ix[i - 3]) * 2 + ix[i - 2]) * 2 + ix[i - 1];\n a1 += $dQDcS.t32l[p];\n a2 += $dQDcS.t33l[p];\n }\n var bits = a1;\n gi.count1table_select = 0;\n if (a1 > a2) {\n bits = a2;\n gi.count1table_select = 1;\n }\n gi.count1bits = bits;\n gi.big_values = i;\n if (i == 0) return bits;\n if (gi.block_type == $cPNKB.SHORT_TYPE) {\n a1 = 3 * gfc.scalefac_band.s[3];\n if (a1 > gi.big_values) a1 = gi.big_values;\n a2 = gi.big_values;\n } else if (gi.block_type == $cPNKB.NORM_TYPE) {\n $46fd82963609949b$var$assert(i <= 576);\n /* bv_scf has 576 entries (0..575) */ a1 = gi.region0_count = gfc.bv_scf[i - 2];\n a2 = gi.region1_count = gfc.bv_scf[i - 1];\n $46fd82963609949b$var$assert(a1 + a2 + 2 < $cPNKB.SBPSY_l);\n a2 = gfc.scalefac_band.l[a1 + a2 + 2];\n a1 = gfc.scalefac_band.l[a1 + 1];\n if (a2 < i) {\n var bi = new Bits(bits);\n gi.table_select[2] = choose_table(ix, a2, i, bi);\n bits = bi.bits;\n }\n } else {\n gi.region0_count = 7;\n /* gi.region1_count = SBPSY_l - 7 - 1; */ gi.region1_count = $cPNKB.SBMAX_l - 1 - 7 - 1;\n a1 = gfc.scalefac_band.l[8];\n a2 = i;\n if (a1 > a2) a1 = a2;\n }\n /* have to allow for the case when bigvalues < region0 < region1 */ /* (and region0, region1 are ignored) */ a1 = Math.min(a1, i);\n a2 = Math.min(a2, i);\n $46fd82963609949b$var$assert(a1 >= 0);\n $46fd82963609949b$var$assert(a2 >= 0);\n /* Count the number of bits necessary to code the bigvalues region. */ if (0 < a1) {\n var bi = new Bits(bits);\n gi.table_select[0] = choose_table(ix, 0, a1, bi);\n bits = bi.bits;\n }\n if (a1 < a2) {\n var bi = new Bits(bits);\n gi.table_select[1] = choose_table(ix, a1, a2, bi);\n bits = bi.bits;\n }\n if (gfc.use_best_huffman == 2) {\n gi.part2_3_length = bits;\n best_huffman_divide(gfc, gi);\n bits = gi.part2_3_length;\n }\n if (prev_noise != null) {\n if (gi.block_type == $cPNKB.NORM_TYPE) {\n var sfb = 0;\n while(gfc.scalefac_band.l[sfb] < gi.big_values)sfb++;\n prev_noise.sfb_count1 = sfb;\n }\n }\n return bits;\n };\n this.count_bits = function(gfc, xr, gi, prev_noise) {\n var ix = gi.l3_enc;\n /* since quantize_xrpow uses table lookup, we need to check this first: */ var w = $84mea.IXMAX_VAL / qupvt.IPOW20(gi.global_gain);\n if (gi.xrpow_max > w) return $84mea.LARGE_BITS;\n quantize_xrpow(xr, ix, qupvt.IPOW20(gi.global_gain), gi, prev_noise);\n if ((gfc.substep_shaping & 2) != 0) {\n var j = 0;\n /* 0.634521682242439 = 0.5946*2**(.5*0.1875) */ var gain = gi.global_gain + gi.scalefac_scale;\n var roundfac = 0.634521682242439 / qupvt.IPOW20(gain);\n for(var sfb = 0; sfb < gi.sfbmax; sfb++){\n var width = gi.width[sfb];\n $46fd82963609949b$var$assert(width >= 0);\n if (0 == gfc.pseudohalf[sfb]) j += width;\n else {\n var k;\n for(k = j, j += width; k < j; ++k)ix[k] = xr[k] >= roundfac ? ix[k] : 0;\n }\n }\n }\n return this.noquant_count_bits(gfc, gi, prev_noise);\n };\n /**\n * re-calculate the best scalefac_compress using scfsi the saved bits are\n * kept in the bit reservoir.\n */ function recalc_divide_init(gfc, cod_info, ix, r01_bits, r01_div, r0_tbl, r1_tbl) {\n var bigv = cod_info.big_values;\n for(var r0 = 0; r0 <= 22; r0++)r01_bits[r0] = $84mea.LARGE_BITS;\n for(var r0 = 0; r0 < 16; r0++){\n var a1 = gfc.scalefac_band.l[r0 + 1];\n if (a1 >= bigv) break;\n var r0bits = 0;\n var bi = new Bits(r0bits);\n var r0t = choose_table(ix, 0, a1, bi);\n r0bits = bi.bits;\n for(var r1 = 0; r1 < 8; r1++){\n var a2 = gfc.scalefac_band.l[r0 + r1 + 2];\n if (a2 >= bigv) break;\n var bits = r0bits;\n bi = new Bits(bits);\n var r1t = choose_table(ix, a1, a2, bi);\n bits = bi.bits;\n if (r01_bits[r0 + r1] > bits) {\n r01_bits[r0 + r1] = bits;\n r01_div[r0 + r1] = r0;\n r0_tbl[r0 + r1] = r0t;\n r1_tbl[r0 + r1] = r1t;\n }\n }\n }\n }\n function recalc_divide_sub(gfc, cod_info2, gi, ix, r01_bits, r01_div, r0_tbl, r1_tbl) {\n var bigv = cod_info2.big_values;\n for(var r2 = 2; r2 < $cPNKB.SBMAX_l + 1; r2++){\n var a2 = gfc.scalefac_band.l[r2];\n if (a2 >= bigv) break;\n var bits = r01_bits[r2 - 2] + cod_info2.count1bits;\n if (gi.part2_3_length <= bits) break;\n var bi = new Bits(bits);\n var r2t = choose_table(ix, a2, bigv, bi);\n bits = bi.bits;\n if (gi.part2_3_length <= bits) continue;\n gi.assign(cod_info2);\n gi.part2_3_length = bits;\n gi.region0_count = r01_div[r2 - 2];\n gi.region1_count = r2 - 2 - r01_div[r2 - 2];\n gi.table_select[0] = r0_tbl[r2 - 2];\n gi.table_select[1] = r1_tbl[r2 - 2];\n gi.table_select[2] = r2t;\n }\n }\n this.best_huffman_divide = function(gfc, gi) {\n var cod_info2 = new $7weBo();\n var ix = gi.l3_enc;\n var r01_bits = $46fd82963609949b$var$new_int(23);\n var r01_div = $46fd82963609949b$var$new_int(23);\n var r0_tbl = $46fd82963609949b$var$new_int(23);\n var r1_tbl = $46fd82963609949b$var$new_int(23);\n /* SHORT BLOCK stuff fails for MPEG2 */ if (gi.block_type == $cPNKB.SHORT_TYPE && gfc.mode_gr == 1) return;\n cod_info2.assign(gi);\n if (gi.block_type == $cPNKB.NORM_TYPE) {\n recalc_divide_init(gfc, gi, ix, r01_bits, r01_div, r0_tbl, r1_tbl);\n recalc_divide_sub(gfc, cod_info2, gi, ix, r01_bits, r01_div, r0_tbl, r1_tbl);\n }\n var i = cod_info2.big_values;\n if (i == 0 || (ix[i - 2] | ix[i - 1]) > 1) return;\n i = gi.count1 + 2;\n if (i > 576) return;\n /* Determines the number of bits to encode the quadruples. */ cod_info2.assign(gi);\n cod_info2.count1 = i;\n var a1 = 0;\n var a2 = 0;\n $46fd82963609949b$var$assert(i <= 576);\n for(; i > cod_info2.big_values; i -= 4){\n var p = ((ix[i - 4] * 2 + ix[i - 3]) * 2 + ix[i - 2]) * 2 + ix[i - 1];\n a1 += $dQDcS.t32l[p];\n a2 += $dQDcS.t33l[p];\n }\n cod_info2.big_values = i;\n cod_info2.count1table_select = 0;\n if (a1 > a2) {\n a1 = a2;\n cod_info2.count1table_select = 1;\n }\n cod_info2.count1bits = a1;\n if (cod_info2.block_type == $cPNKB.NORM_TYPE) recalc_divide_sub(gfc, cod_info2, gi, ix, r01_bits, r01_div, r0_tbl, r1_tbl);\n else {\n /* Count the number of bits necessary to code the bigvalues region. */ cod_info2.part2_3_length = a1;\n a1 = gfc.scalefac_band.l[8];\n if (a1 > i) a1 = i;\n if (a1 > 0) {\n var bi = new Bits(cod_info2.part2_3_length);\n cod_info2.table_select[0] = choose_table(ix, 0, a1, bi);\n cod_info2.part2_3_length = bi.bits;\n }\n if (i > a1) {\n var bi = new Bits(cod_info2.part2_3_length);\n cod_info2.table_select[1] = choose_table(ix, a1, i, bi);\n cod_info2.part2_3_length = bi.bits;\n }\n if (gi.part2_3_length > cod_info2.part2_3_length) gi.assign(cod_info2);\n }\n };\n var slen1_n = [\n 1,\n 1,\n 1,\n 1,\n 8,\n 2,\n 2,\n 2,\n 4,\n 4,\n 4,\n 8,\n 8,\n 8,\n 16,\n 16\n ];\n var slen2_n = [\n 1,\n 2,\n 4,\n 8,\n 1,\n 2,\n 4,\n 8,\n 2,\n 4,\n 8,\n 2,\n 4,\n 8,\n 4,\n 8\n ];\n var slen1_tab = [\n 0,\n 0,\n 0,\n 0,\n 3,\n 1,\n 1,\n 1,\n 2,\n 2,\n 2,\n 3,\n 3,\n 3,\n 4,\n 4\n ];\n var slen2_tab = [\n 0,\n 1,\n 2,\n 3,\n 0,\n 1,\n 2,\n 3,\n 1,\n 2,\n 3,\n 1,\n 2,\n 3,\n 2,\n 3\n ];\n $46fd82963609949b$var$Takehiro.slen1_tab = slen1_tab;\n $46fd82963609949b$var$Takehiro.slen2_tab = slen2_tab;\n function scfsi_calc(ch, l3_side) {\n var sfb;\n var gi = l3_side.tt[1][ch];\n var g0 = l3_side.tt[0][ch];\n for(var i = 0; i < $dQDcS.scfsi_band.length - 1; i++){\n for(sfb = $dQDcS.scfsi_band[i]; sfb < $dQDcS.scfsi_band[i + 1]; sfb++){\n if (g0.scalefac[sfb] != gi.scalefac[sfb] && gi.scalefac[sfb] >= 0) break;\n }\n if (sfb == $dQDcS.scfsi_band[i + 1]) {\n for(sfb = $dQDcS.scfsi_band[i]; sfb < $dQDcS.scfsi_band[i + 1]; sfb++)gi.scalefac[sfb] = -1;\n l3_side.scfsi[ch][i] = 1;\n }\n }\n var s1 = 0;\n var c1 = 0;\n for(sfb = 0; sfb < 11; sfb++){\n if (gi.scalefac[sfb] == -1) continue;\n c1++;\n if (s1 < gi.scalefac[sfb]) s1 = gi.scalefac[sfb];\n }\n var s2 = 0;\n var c2 = 0;\n for(; sfb < $cPNKB.SBPSY_l; sfb++){\n if (gi.scalefac[sfb] == -1) continue;\n c2++;\n if (s2 < gi.scalefac[sfb]) s2 = gi.scalefac[sfb];\n }\n for(var i = 0; i < 16; i++)if (s1 < slen1_n[i] && s2 < slen2_n[i]) {\n var c = slen1_tab[i] * c1 + slen2_tab[i] * c2;\n if (gi.part2_length > c) {\n gi.part2_length = c;\n gi.scalefac_compress = i;\n }\n }\n }\n /**\n * Find the optimal way to store the scalefactors. Only call this routine\n * after final scalefactors have been chosen and the channel/granule will\n * not be re-encoded.\n */ this.best_scalefac_store = function(gfc, gr, ch, l3_side) {\n /* use scalefac_scale if we can */ var gi = l3_side.tt[gr][ch];\n var sfb, i, j, l;\n var recalc = 0;\n /*\n * remove scalefacs from bands with ix=0. This idea comes from the AAC\n * ISO docs. added mt 3/00\n */ /* check if l3_enc=0 */ j = 0;\n for(sfb = 0; sfb < gi.sfbmax; sfb++){\n var width = gi.width[sfb];\n $46fd82963609949b$var$assert(width >= 0);\n j += width;\n for(l = -width; l < 0; l++){\n if (gi.l3_enc[l + j] != 0) break;\n }\n if (l == 0) gi.scalefac[sfb] = recalc = -2;\n /* anything goes. */ /*\n * only best_scalefac_store and calc_scfsi know--and only they\n * should know--about the magic number -2.\n */ }\n if (0 == gi.scalefac_scale && 0 == gi.preflag) {\n var s = 0;\n for(sfb = 0; sfb < gi.sfbmax; sfb++)if (gi.scalefac[sfb] > 0) s |= gi.scalefac[sfb];\n if (0 == (s & 1) && s != 0) {\n for(sfb = 0; sfb < gi.sfbmax; sfb++)if (gi.scalefac[sfb] > 0) gi.scalefac[sfb] >>= 1;\n gi.scalefac_scale = recalc = 1;\n }\n }\n if (0 == gi.preflag && gi.block_type != $cPNKB.SHORT_TYPE && gfc.mode_gr == 2) {\n for(sfb = 11; sfb < $cPNKB.SBPSY_l; sfb++)if (gi.scalefac[sfb] < qupvt.pretab[sfb] && gi.scalefac[sfb] != -2) break;\n if (sfb == $cPNKB.SBPSY_l) {\n for(sfb = 11; sfb < $cPNKB.SBPSY_l; sfb++)if (gi.scalefac[sfb] > 0) gi.scalefac[sfb] -= qupvt.pretab[sfb];\n gi.preflag = recalc = 1;\n }\n }\n for(i = 0; i < 4; i++)l3_side.scfsi[ch][i] = 0;\n if (gfc.mode_gr == 2 && gr == 1 && l3_side.tt[0][ch].block_type != $cPNKB.SHORT_TYPE && l3_side.tt[1][ch].block_type != $cPNKB.SHORT_TYPE) {\n scfsi_calc(ch, l3_side);\n recalc = 0;\n }\n for(sfb = 0; sfb < gi.sfbmax; sfb++)if (gi.scalefac[sfb] == -2) gi.scalefac[sfb] = 0;\n if (recalc != 0) {\n if (gfc.mode_gr == 2) this.scale_bitcount(gi);\n else this.scale_bitcount_lsf(gfc, gi);\n }\n };\n function all_scalefactors_not_negative(scalefac, n) {\n for(var i = 0; i < n; ++i){\n if (scalefac[i] < 0) return false;\n }\n return true;\n }\n /**\n * number of bits used to encode scalefacs.\n *\n * 18*slen1_tab[i] + 18*slen2_tab[i]\n */ var scale_short = [\n 0,\n 18,\n 36,\n 54,\n 54,\n 36,\n 54,\n 72,\n 54,\n 72,\n 90,\n 72,\n 90,\n 108,\n 108,\n 126\n ];\n /**\n * number of bits used to encode scalefacs.\n *\n * 17*slen1_tab[i] + 18*slen2_tab[i]\n */ var scale_mixed = [\n 0,\n 18,\n 36,\n 54,\n 51,\n 35,\n 53,\n 71,\n 52,\n 70,\n 88,\n 69,\n 87,\n 105,\n 104,\n 122\n ];\n /**\n * number of bits used to encode scalefacs.\n *\n * 11*slen1_tab[i] + 10*slen2_tab[i]\n */ var scale_long = [\n 0,\n 10,\n 20,\n 30,\n 33,\n 21,\n 31,\n 41,\n 32,\n 42,\n 52,\n 43,\n 53,\n 63,\n 64,\n 74\n ];\n /**\n * Also calculates the number of bits necessary to code the scalefactors.\n */ this.scale_bitcount = function(cod_info) {\n var k, sfb, max_slen1 = 0, max_slen2 = 0;\n /* maximum values */ var tab;\n var scalefac = cod_info.scalefac;\n $46fd82963609949b$var$assert(all_scalefactors_not_negative(scalefac, cod_info.sfbmax));\n if (cod_info.block_type == $cPNKB.SHORT_TYPE) {\n tab = scale_short;\n if (cod_info.mixed_block_flag != 0) tab = scale_mixed;\n } else {\n tab = scale_long;\n if (0 == cod_info.preflag) {\n for(sfb = 11; sfb < $cPNKB.SBPSY_l; sfb++)if (scalefac[sfb] < qupvt.pretab[sfb]) break;\n if (sfb == $cPNKB.SBPSY_l) {\n cod_info.preflag = 1;\n for(sfb = 11; sfb < $cPNKB.SBPSY_l; sfb++)scalefac[sfb] -= qupvt.pretab[sfb];\n }\n }\n }\n for(sfb = 0; sfb < cod_info.sfbdivide; sfb++)if (max_slen1 < scalefac[sfb]) max_slen1 = scalefac[sfb];\n for(; sfb < cod_info.sfbmax; sfb++)if (max_slen2 < scalefac[sfb]) max_slen2 = scalefac[sfb];\n /*\n * from Takehiro TOMINAGA <tominaga@isoternet.org> 10/99 loop over *all*\n * posible values of scalefac_compress to find the one which uses the\n * smallest number of bits. ISO would stop at first valid index\n */ cod_info.part2_length = $84mea.LARGE_BITS;\n for(k = 0; k < 16; k++)if (max_slen1 < slen1_n[k] && max_slen2 < slen2_n[k] && cod_info.part2_length > tab[k]) {\n cod_info.part2_length = tab[k];\n cod_info.scalefac_compress = k;\n }\n return cod_info.part2_length == $84mea.LARGE_BITS;\n };\n /**\n * table of largest scalefactor values for MPEG2\n */ var max_range_sfac_tab = [\n [\n 15,\n 15,\n 7,\n 7\n ],\n [\n 15,\n 15,\n 7,\n 0\n ],\n [\n 7,\n 3,\n 0,\n 0\n ],\n [\n 15,\n 31,\n 31,\n 0\n ],\n [\n 7,\n 7,\n 7,\n 0\n ],\n [\n 3,\n 3,\n 0,\n 0\n ]\n ];\n /**\n * Also counts the number of bits to encode the scalefacs but for MPEG 2\n * Lower sampling frequencies (24, 22.05 and 16 kHz.)\n *\n * This is reverse-engineered from section 2.4.3.2 of the MPEG2 IS,\n * \"Audio Decoding Layer III\"\n */ this.scale_bitcount_lsf = function(gfc, cod_info) {\n var table_number, row_in_table, partition, nr_sfb, window;\n var over;\n var i, sfb;\n var max_sfac = $46fd82963609949b$var$new_int(4);\n //var partition_table;\n var scalefac = cod_info.scalefac;\n /*\n * Set partition table. Note that should try to use table one, but do\n * not yet...\n */ if (cod_info.preflag != 0) table_number = 2;\n else table_number = 0;\n for(i = 0; i < 4; i++)max_sfac[i] = 0;\n if (cod_info.block_type == $cPNKB.SHORT_TYPE) {\n row_in_table = 1;\n var partition_table = qupvt.nr_of_sfb_block[table_number][row_in_table];\n for(sfb = 0, partition = 0; partition < 4; partition++){\n nr_sfb = partition_table[partition] / 3;\n for(i = 0; i < nr_sfb; i++, sfb++)for(window = 0; window < 3; window++)if (scalefac[sfb * 3 + window] > max_sfac[partition]) max_sfac[partition] = scalefac[sfb * 3 + window];\n }\n } else {\n row_in_table = 0;\n var partition_table = qupvt.nr_of_sfb_block[table_number][row_in_table];\n for(sfb = 0, partition = 0; partition < 4; partition++){\n nr_sfb = partition_table[partition];\n for(i = 0; i < nr_sfb; i++, sfb++)if (scalefac[sfb] > max_sfac[partition]) max_sfac[partition] = scalefac[sfb];\n }\n }\n for(over = false, partition = 0; partition < 4; partition++)if (max_sfac[partition] > max_range_sfac_tab[table_number][partition]) over = true;\n if (!over) {\n var slen1, slen2, slen3, slen4;\n cod_info.sfb_partition_table = qupvt.nr_of_sfb_block[table_number][row_in_table];\n for(partition = 0; partition < 4; partition++)cod_info.slen[partition] = log2tab[max_sfac[partition]];\n /* set scalefac_compress */ slen1 = cod_info.slen[0];\n slen2 = cod_info.slen[1];\n slen3 = cod_info.slen[2];\n slen4 = cod_info.slen[3];\n switch(table_number){\n case 0:\n cod_info.scalefac_compress = (slen1 * 5 + slen2 << 4) + (slen3 << 2) + slen4;\n break;\n case 1:\n cod_info.scalefac_compress = 400 + (slen1 * 5 + slen2 << 2) + slen3;\n break;\n case 2:\n cod_info.scalefac_compress = 500 + slen1 * 3 + slen2;\n break;\n default:\n $46fd82963609949b$var$System.err.printf(\"intensity stereo not implemented yet\\n\");\n break;\n }\n }\n if (!over) {\n $46fd82963609949b$var$assert(cod_info.sfb_partition_table != null);\n cod_info.part2_length = 0;\n for(partition = 0; partition < 4; partition++)cod_info.part2_length += cod_info.slen[partition] * cod_info.sfb_partition_table[partition];\n }\n return over;\n };\n /*\n * Since no bands have been over-amplified, we can set scalefac_compress and\n * slen[] for the formatter\n */ var log2tab = [\n 0,\n 1,\n 2,\n 2,\n 3,\n 3,\n 3,\n 3,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4,\n 4\n ];\n this.huffman_init = function(gfc) {\n for(var i = 2; i <= 576; i += 2){\n var scfb_anz = 0, bv_index;\n while(gfc.scalefac_band.l[++scfb_anz] < i);\n bv_index = subdv_table[scfb_anz][0]; // .region0_count\n while(gfc.scalefac_band.l[bv_index + 1] > i)bv_index--;\n if (bv_index < 0) /*\n * this is an indication that everything is going to be encoded\n * as region0: bigvalues < region0 < region1 so lets set\n * region0, region1 to some value larger than bigvalues\n */ bv_index = subdv_table[scfb_anz][0]; // .region0_count\n gfc.bv_scf[i - 2] = bv_index;\n bv_index = subdv_table[scfb_anz][1]; // .region1_count\n while(gfc.scalefac_band.l[bv_index + gfc.bv_scf[i - 2] + 2] > i)bv_index--;\n if (bv_index < 0) bv_index = subdv_table[scfb_anz][1]; // .region1_count\n gfc.bv_scf[i - 1] = bv_index;\n }\n };\n}\nmodule.exports = $46fd82963609949b$var$Takehiro;\n\n});\nparcelRequire.register(\"dQDcS\", function(module, exports) {\nfunction $a14e8b54f947e3d4$var$HuffCodeTab(len, max, tab, hl) {\n this.xlen = len;\n this.linmax = max;\n this.table = tab;\n this.hlen = hl;\n}\nvar $a14e8b54f947e3d4$var$Tables = {};\n$a14e8b54f947e3d4$var$Tables.t1HB = [\n 1,\n 1,\n 1,\n 0\n];\n$a14e8b54f947e3d4$var$Tables.t2HB = [\n 1,\n 2,\n 1,\n 3,\n 1,\n 1,\n 3,\n 2,\n 0\n];\n$a14e8b54f947e3d4$var$Tables.t3HB = [\n 3,\n 2,\n 1,\n 1,\n 1,\n 1,\n 3,\n 2,\n 0\n];\n$a14e8b54f947e3d4$var$Tables.t5HB = [\n 1,\n 2,\n 6,\n 5,\n 3,\n 1,\n 4,\n 4,\n 7,\n 5,\n 7,\n 1,\n 6,\n 1,\n 1,\n 0\n];\n$a14e8b54f947e3d4$var$Tables.t6HB = [\n 7,\n 3,\n 5,\n 1,\n 6,\n 2,\n 3,\n 2,\n 5,\n 4,\n 4,\n 1,\n 3,\n 3,\n 2,\n 0\n];\n$a14e8b54f947e3d4$var$Tables.t7HB = [\n 1,\n 2,\n 10,\n 19,\n 16,\n 10,\n 3,\n 3,\n 7,\n 10,\n 5,\n 3,\n 11,\n 4,\n 13,\n 17,\n 8,\n 4,\n 12,\n 11,\n 18,\n 15,\n 11,\n 2,\n 7,\n 6,\n 9,\n 14,\n 3,\n 1,\n 6,\n 4,\n 5,\n 3,\n 2,\n 0\n];\n$a14e8b54f947e3d4$var$Tables.t8HB = [\n 3,\n 4,\n 6,\n 18,\n 12,\n 5,\n 5,\n 1,\n 2,\n 16,\n 9,\n 3,\n 7,\n 3,\n 5,\n 14,\n 7,\n 3,\n 19,\n 17,\n 15,\n 13,\n 10,\n 4,\n 13,\n 5,\n 8,\n 11,\n 5,\n 1,\n 12,\n 4,\n 4,\n 1,\n 1,\n 0\n];\n$a14e8b54f947e3d4$var$Tables.t9HB = [\n 7,\n 5,\n 9,\n 14,\n 15,\n 7,\n 6,\n 4,\n 5,\n 5,\n 6,\n 7,\n 7,\n 6,\n 8,\n 8,\n 8,\n 5,\n 15,\n 6,\n 9,\n 10,\n 5,\n 1,\n 11,\n 7,\n 9,\n 6,\n 4,\n 1,\n 14,\n 4,\n 6,\n 2,\n 6,\n 0\n];\n$a14e8b54f947e3d4$var$Tables.t10HB = [\n 1,\n 2,\n 10,\n 23,\n 35,\n 30,\n 12,\n 17,\n 3,\n 3,\n 8,\n 12,\n 18,\n 21,\n 12,\n 7,\n 11,\n 9,\n 15,\n 21,\n 32,\n 40,\n 19,\n 6,\n 14,\n 13,\n 22,\n 34,\n 46,\n 23,\n 18,\n 7,\n 20,\n 19,\n 33,\n 47,\n 27,\n 22,\n 9,\n 3,\n 31,\n 22,\n 41,\n 26,\n 21,\n 20,\n 5,\n 3,\n 14,\n 13,\n 10,\n 11,\n 16,\n 6,\n 5,\n 1,\n 9,\n 8,\n 7,\n 8,\n 4,\n 4,\n 2,\n 0\n];\n$a14e8b54f947e3d4$var$Tables.t11HB = [\n 3,\n 4,\n 10,\n 24,\n 34,\n 33,\n 21,\n 15,\n 5,\n 3,\n 4,\n 10,\n 32,\n 17,\n 11,\n 10,\n 11,\n 7,\n 13,\n 18,\n 30,\n 31,\n 20,\n 5,\n 25,\n 11,\n 19,\n 59,\n 27,\n 18,\n 12,\n 5,\n 35,\n 33,\n 31,\n 58,\n 30,\n 16,\n 7,\n 5,\n 28,\n 26,\n 32,\n 19,\n 17,\n 15,\n 8,\n 14,\n 14,\n 12,\n 9,\n 13,\n 14,\n 9,\n 4,\n 1,\n 11,\n 4,\n 6,\n 6,\n 6,\n 3,\n 2,\n 0\n];\n$a14e8b54f947e3d4$var$Tables.t12HB = [\n 9,\n 6,\n 16,\n 33,\n 41,\n 39,\n 38,\n 26,\n 7,\n 5,\n 6,\n 9,\n 23,\n 16,\n 26,\n 11,\n 17,\n 7,\n 11,\n 14,\n 21,\n 30,\n 10,\n 7,\n 17,\n 10,\n 15,\n 12,\n 18,\n 28,\n 14,\n 5,\n 32,\n 13,\n 22,\n 19,\n 18,\n 16,\n 9,\n 5,\n 40,\n 17,\n 31,\n 29,\n 17,\n 13,\n 4,\n 2,\n 27,\n 12,\n 11,\n 15,\n 10,\n 7,\n 4,\n 1,\n 27,\n 12,\n 8,\n 12,\n 6,\n 3,\n 1,\n 0\n];\n$a14e8b54f947e3d4$var$Tables.t13HB = [\n 1,\n 5,\n 14,\n 21,\n 34,\n 51,\n 46,\n 71,\n 42,\n 52,\n 68,\n 52,\n 67,\n 44,\n 43,\n 19,\n 3,\n 4,\n 12,\n 19,\n 31,\n 26,\n 44,\n 33,\n 31,\n 24,\n 32,\n 24,\n 31,\n 35,\n 22,\n 14,\n 15,\n 13,\n 23,\n 36,\n 59,\n 49,\n 77,\n 65,\n 29,\n 40,\n 30,\n 40,\n 27,\n 33,\n 42,\n 16,\n 22,\n 20,\n 37,\n 61,\n 56,\n 79,\n 73,\n 64,\n 43,\n 76,\n 56,\n 37,\n 26,\n 31,\n 25,\n 14,\n 35,\n 16,\n 60,\n 57,\n 97,\n 75,\n 114,\n 91,\n 54,\n 73,\n 55,\n 41,\n 48,\n 53,\n 23,\n 24,\n 58,\n 27,\n 50,\n 96,\n 76,\n 70,\n 93,\n 84,\n 77,\n 58,\n 79,\n 29,\n 74,\n 49,\n 41,\n 17,\n 47,\n 45,\n 78,\n 74,\n 115,\n 94,\n 90,\n 79,\n 69,\n 83,\n 71,\n 50,\n 59,\n 38,\n 36,\n 15,\n 72,\n 34,\n 56,\n 95,\n 92,\n 85,\n 91,\n 90,\n 86,\n 73,\n 77,\n 65,\n 51,\n 44,\n 43,\n 42,\n 43,\n 20,\n 30,\n 44,\n 55,\n 78,\n 72,\n 87,\n 78,\n 61,\n 46,\n 54,\n 37,\n 30,\n 20,\n 16,\n 53,\n 25,\n 41,\n 37,\n 44,\n 59,\n 54,\n 81,\n 66,\n 76,\n 57,\n 54,\n 37,\n 18,\n 39,\n 11,\n 35,\n 33,\n 31,\n 57,\n 42,\n 82,\n 72,\n 80,\n 47,\n 58,\n 55,\n 21,\n 22,\n 26,\n 38,\n 22,\n 53,\n 25,\n 23,\n 38,\n 70,\n 60,\n 51,\n 36,\n 55,\n 26,\n 34,\n 23,\n 27,\n 14,\n 9,\n 7,\n 34,\n 32,\n 28,\n 39,\n 49,\n 75,\n 30,\n 52,\n 48,\n 40,\n 52,\n 28,\n 18,\n 17,\n 9,\n 5,\n 45,\n 21,\n 34,\n 64,\n 56,\n 50,\n 49,\n 45,\n 31,\n 19,\n 12,\n 15,\n 10,\n 7,\n 6,\n 3,\n 48,\n 23,\n 20,\n 39,\n 36,\n 35,\n 53,\n 21,\n 16,\n 23,\n 13,\n 10,\n 6,\n 1,\n 4,\n 2,\n 16,\n 15,\n 17,\n 27,\n 25,\n 20,\n 29,\n 11,\n 17,\n 12,\n 16,\n 8,\n 1,\n 1,\n 0,\n 1\n];\n$a14e8b54f947e3d4$var$Tables.t15HB = [\n 7,\n 12,\n 18,\n 53,\n 47,\n 76,\n 124,\n 108,\n 89,\n 123,\n 108,\n 119,\n 107,\n 81,\n 122,\n 63,\n 13,\n 5,\n 16,\n 27,\n 46,\n 36,\n 61,\n 51,\n 42,\n 70,\n 52,\n 83,\n 65,\n 41,\n 59,\n 36,\n 19,\n 17,\n 15,\n 24,\n 41,\n 34,\n 59,\n 48,\n 40,\n 64,\n 50,\n 78,\n 62,\n 80,\n 56,\n 33,\n 29,\n 28,\n 25,\n 43,\n 39,\n 63,\n 55,\n 93,\n 76,\n 59,\n 93,\n 72,\n 54,\n 75,\n 50,\n 29,\n 52,\n 22,\n 42,\n 40,\n 67,\n 57,\n 95,\n 79,\n 72,\n 57,\n 89,\n 69,\n 49,\n 66,\n 46,\n 27,\n 77,\n 37,\n 35,\n 66,\n 58,\n 52,\n 91,\n 74,\n 62,\n 48,\n 79,\n 63,\n 90,\n 62,\n 40,\n 38,\n 125,\n 32,\n 60,\n 56,\n 50,\n 92,\n 78,\n 65,\n 55,\n 87,\n 71,\n 51,\n 73,\n 51,\n 70,\n 30,\n 109,\n 53,\n 49,\n 94,\n 88,\n 75,\n 66,\n 122,\n 91,\n 73,\n 56,\n 42,\n 64,\n 44,\n 21,\n 25,\n 90,\n 43,\n 41,\n 77,\n 73,\n 63,\n 56,\n 92,\n 77,\n 66,\n 47,\n 67,\n 48,\n 53,\n 36,\n 20,\n 71,\n 34,\n 67,\n 60,\n 58,\n 49,\n 88,\n 76,\n 67,\n 106,\n 71,\n 54,\n 38,\n 39,\n 23,\n 15,\n 109,\n 53,\n 51,\n 47,\n 90,\n 82,\n 58,\n 57,\n 48,\n 72,\n 57,\n 41,\n 23,\n 27,\n 62,\n 9,\n 86,\n 42,\n 40,\n 37,\n 70,\n 64,\n 52,\n 43,\n 70,\n 55,\n 42,\n 25,\n 29,\n 18,\n 11,\n 11,\n 118,\n 68,\n 30,\n 55,\n 50,\n 46,\n 74,\n 65,\n 49,\n 39,\n 24,\n 16,\n 22,\n 13,\n 14,\n 7,\n 91,\n 44,\n 39,\n 38,\n 34,\n 63,\n 52,\n 45,\n 31,\n 52,\n 28,\n 19,\n 14,\n 8,\n 9,\n 3,\n 123,\n 60,\n 58,\n 53,\n 47,\n 43,\n 32,\n 22,\n 37,\n 24,\n 17,\n 12,\n 15,\n 10,\n 2,\n 1,\n 71,\n 37,\n 34,\n 30,\n 28,\n 20,\n 17,\n 26,\n 21,\n 16,\n 10,\n 6,\n 8,\n 6,\n 2,\n 0\n];\n$a14e8b54f947e3d4$var$Tables.t16HB = [\n 1,\n 5,\n 14,\n 44,\n 74,\n 63,\n 110,\n 93,\n 172,\n 149,\n 138,\n 242,\n 225,\n 195,\n 376,\n 17,\n 3,\n 4,\n 12,\n 20,\n 35,\n 62,\n 53,\n 47,\n 83,\n 75,\n 68,\n 119,\n 201,\n 107,\n 207,\n 9,\n 15,\n 13,\n 23,\n 38,\n 67,\n 58,\n 103,\n 90,\n 161,\n 72,\n 127,\n 117,\n 110,\n 209,\n 206,\n 16,\n 45,\n 21,\n 39,\n 69,\n 64,\n 114,\n 99,\n 87,\n 158,\n 140,\n 252,\n 212,\n 199,\n 387,\n 365,\n 26,\n 75,\n 36,\n 68,\n 65,\n 115,\n 101,\n 179,\n 164,\n 155,\n 264,\n 246,\n 226,\n 395,\n 382,\n 362,\n 9,\n 66,\n 30,\n 59,\n 56,\n 102,\n 185,\n 173,\n 265,\n 142,\n 253,\n 232,\n 400,\n 388,\n 378,\n 445,\n 16,\n 111,\n 54,\n 52,\n 100,\n 184,\n 178,\n 160,\n 133,\n 257,\n 244,\n 228,\n 217,\n 385,\n 366,\n 715,\n 10,\n 98,\n 48,\n 91,\n 88,\n 165,\n 157,\n 148,\n 261,\n 248,\n 407,\n 397,\n 372,\n 380,\n 889,\n 884,\n 8,\n 85,\n 84,\n 81,\n 159,\n 156,\n 143,\n 260,\n 249,\n 427,\n 401,\n 392,\n 383,\n 727,\n 713,\n 708,\n 7,\n 154,\n 76,\n 73,\n 141,\n 131,\n 256,\n 245,\n 426,\n 406,\n 394,\n 384,\n 735,\n 359,\n 710,\n 352,\n 11,\n 139,\n 129,\n 67,\n 125,\n 247,\n 233,\n 229,\n 219,\n 393,\n 743,\n 737,\n 720,\n 885,\n 882,\n 439,\n 4,\n 243,\n 120,\n 118,\n 115,\n 227,\n 223,\n 396,\n 746,\n 742,\n 736,\n 721,\n 712,\n 706,\n 223,\n 436,\n 6,\n 202,\n 224,\n 222,\n 218,\n 216,\n 389,\n 386,\n 381,\n 364,\n 888,\n 443,\n 707,\n 440,\n 437,\n 1728,\n 4,\n 747,\n 211,\n 210,\n 208,\n 370,\n 379,\n 734,\n 723,\n 714,\n 1735,\n 883,\n 877,\n 876,\n 3459,\n 865,\n 2,\n 377,\n 369,\n 102,\n 187,\n 726,\n 722,\n 358,\n 711,\n 709,\n 866,\n 1734,\n 871,\n 3458,\n 870,\n 434,\n 0,\n 12,\n 10,\n 7,\n 11,\n 10,\n 17,\n 11,\n 9,\n 13,\n 12,\n 10,\n 7,\n 5,\n 3,\n 1,\n 3\n];\n$a14e8b54f947e3d4$var$Tables.t24HB = [\n 15,\n 13,\n 46,\n 80,\n 146,\n 262,\n 248,\n 434,\n 426,\n 669,\n 653,\n 649,\n 621,\n 517,\n 1032,\n 88,\n 14,\n 12,\n 21,\n 38,\n 71,\n 130,\n 122,\n 216,\n 209,\n 198,\n 327,\n 345,\n 319,\n 297,\n 279,\n 42,\n 47,\n 22,\n 41,\n 74,\n 68,\n 128,\n 120,\n 221,\n 207,\n 194,\n 182,\n 340,\n 315,\n 295,\n 541,\n 18,\n 81,\n 39,\n 75,\n 70,\n 134,\n 125,\n 116,\n 220,\n 204,\n 190,\n 178,\n 325,\n 311,\n 293,\n 271,\n 16,\n 147,\n 72,\n 69,\n 135,\n 127,\n 118,\n 112,\n 210,\n 200,\n 188,\n 352,\n 323,\n 306,\n 285,\n 540,\n 14,\n 263,\n 66,\n 129,\n 126,\n 119,\n 114,\n 214,\n 202,\n 192,\n 180,\n 341,\n 317,\n 301,\n 281,\n 262,\n 12,\n 249,\n 123,\n 121,\n 117,\n 113,\n 215,\n 206,\n 195,\n 185,\n 347,\n 330,\n 308,\n 291,\n 272,\n 520,\n 10,\n 435,\n 115,\n 111,\n 109,\n 211,\n 203,\n 196,\n 187,\n 353,\n 332,\n 313,\n 298,\n 283,\n 531,\n 381,\n 17,\n 427,\n 212,\n 208,\n 205,\n 201,\n 193,\n 186,\n 177,\n 169,\n 320,\n 303,\n 286,\n 268,\n 514,\n 377,\n 16,\n 335,\n 199,\n 197,\n 191,\n 189,\n 181,\n 174,\n 333,\n 321,\n 305,\n 289,\n 275,\n 521,\n 379,\n 371,\n 11,\n 668,\n 184,\n 183,\n 179,\n 175,\n 344,\n 331,\n 314,\n 304,\n 290,\n 277,\n 530,\n 383,\n 373,\n 366,\n 10,\n 652,\n 346,\n 171,\n 168,\n 164,\n 318,\n 309,\n 299,\n 287,\n 276,\n 263,\n 513,\n 375,\n 368,\n 362,\n 6,\n 648,\n 322,\n 316,\n 312,\n 307,\n 302,\n 292,\n 284,\n 269,\n 261,\n 512,\n 376,\n 370,\n 364,\n 359,\n 4,\n 620,\n 300,\n 296,\n 294,\n 288,\n 282,\n 273,\n 266,\n 515,\n 380,\n 374,\n 369,\n 365,\n 361,\n 357,\n 2,\n 1033,\n 280,\n 278,\n 274,\n 267,\n 264,\n 259,\n 382,\n 378,\n 372,\n 367,\n 363,\n 360,\n 358,\n 356,\n 0,\n 43,\n 20,\n 19,\n 17,\n 15,\n 13,\n 11,\n 9,\n 7,\n 6,\n 4,\n 7,\n 5,\n 3,\n 1,\n 3\n];\n$a14e8b54f947e3d4$var$Tables.t32HB = [\n 1,\n 10,\n 8,\n 20,\n 12,\n 20,\n 16,\n 32,\n 14,\n 12,\n 24,\n 0,\n 28,\n 16,\n 24,\n 16\n];\n$a14e8b54f947e3d4$var$Tables.t33HB = [\n 15,\n 28,\n 26,\n 48,\n 22,\n 40,\n 36,\n 64,\n 14,\n 24,\n 20,\n 32,\n 12,\n 16,\n 8,\n 0\n];\n$a14e8b54f947e3d4$var$Tables.t1l = [\n 1,\n 4,\n 3,\n 5\n];\n$a14e8b54f947e3d4$var$Tables.t2l = [\n 1,\n 4,\n 7,\n 4,\n 5,\n 7,\n 6,\n 7,\n 8\n];\n$a14e8b54f947e3d4$var$Tables.t3l = [\n 2,\n 3,\n 7,\n 4,\n 4,\n 7,\n 6,\n 7,\n 8\n];\n$a14e8b54f947e3d4$var$Tables.t5l = [\n 1,\n 4,\n 7,\n 8,\n 4,\n 5,\n 8,\n 9,\n 7,\n 8,\n 9,\n 10,\n 8,\n 8,\n 9,\n 10\n];\n$a14e8b54f947e3d4$var$Tables.t6l = [\n 3,\n 4,\n 6,\n 8,\n 4,\n 4,\n 6,\n 7,\n 5,\n 6,\n 7,\n 8,\n 7,\n 7,\n 8,\n 9\n];\n$a14e8b54f947e3d4$var$Tables.t7l = [\n 1,\n 4,\n 7,\n 9,\n 9,\n 10,\n 4,\n 6,\n 8,\n 9,\n 9,\n 10,\n 7,\n 7,\n 9,\n 10,\n 10,\n 11,\n 8,\n 9,\n 10,\n 11,\n 11,\n 11,\n 8,\n 9,\n 10,\n 11,\n 11,\n 12,\n 9,\n 10,\n 11,\n 12,\n 12,\n 12\n];\n$a14e8b54f947e3d4$var$Tables.t8l = [\n 2,\n 4,\n 7,\n 9,\n 9,\n 10,\n 4,\n 4,\n 6,\n 10,\n 10,\n 10,\n 7,\n 6,\n 8,\n 10,\n 10,\n 11,\n 9,\n 10,\n 10,\n 11,\n 11,\n 12,\n 9,\n 9,\n 10,\n 11,\n 12,\n 12,\n 10,\n 10,\n 11,\n 11,\n 13,\n 13\n];\n$a14e8b54f947e3d4$var$Tables.t9l = [\n 3,\n 4,\n 6,\n 7,\n 9,\n 10,\n 4,\n 5,\n 6,\n 7,\n 8,\n 10,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 7,\n 7,\n 8,\n 9,\n 9,\n 10,\n 8,\n 8,\n 9,\n 9,\n 10,\n 11,\n 9,\n 9,\n 10,\n 10,\n 11,\n 11\n];\n$a14e8b54f947e3d4$var$Tables.t10l = [\n 1,\n 4,\n 7,\n 9,\n 10,\n 10,\n 10,\n 11,\n 4,\n 6,\n 8,\n 9,\n 10,\n 11,\n 10,\n 10,\n 7,\n 8,\n 9,\n 10,\n 11,\n 12,\n 11,\n 11,\n 8,\n 9,\n 10,\n 11,\n 12,\n 12,\n 11,\n 12,\n 9,\n 10,\n 11,\n 12,\n 12,\n 12,\n 12,\n 12,\n 10,\n 11,\n 12,\n 12,\n 13,\n 13,\n 12,\n 13,\n 9,\n 10,\n 11,\n 12,\n 12,\n 12,\n 13,\n 13,\n 10,\n 10,\n 11,\n 12,\n 12,\n 13,\n 13,\n 13\n];\n$a14e8b54f947e3d4$var$Tables.t11l = [\n 2,\n 4,\n 6,\n 8,\n 9,\n 10,\n 9,\n 10,\n 4,\n 5,\n 6,\n 8,\n 10,\n 10,\n 9,\n 10,\n 6,\n 7,\n 8,\n 9,\n 10,\n 11,\n 10,\n 10,\n 8,\n 8,\n 9,\n 11,\n 10,\n 12,\n 10,\n 11,\n 9,\n 10,\n 10,\n 11,\n 11,\n 12,\n 11,\n 12,\n 9,\n 10,\n 11,\n 12,\n 12,\n 13,\n 12,\n 13,\n 9,\n 9,\n 9,\n 10,\n 11,\n 12,\n 12,\n 12,\n 9,\n 9,\n 10,\n 11,\n 12,\n 12,\n 12,\n 12\n];\n$a14e8b54f947e3d4$var$Tables.t12l = [\n 4,\n 4,\n 6,\n 8,\n 9,\n 10,\n 10,\n 10,\n 4,\n 5,\n 6,\n 7,\n 9,\n 9,\n 10,\n 10,\n 6,\n 6,\n 7,\n 8,\n 9,\n 10,\n 9,\n 10,\n 7,\n 7,\n 8,\n 8,\n 9,\n 10,\n 10,\n 10,\n 8,\n 8,\n 9,\n 9,\n 10,\n 10,\n 10,\n 11,\n 9,\n 9,\n 10,\n 10,\n 10,\n 11,\n 10,\n 11,\n 9,\n 9,\n 9,\n 10,\n 10,\n 11,\n 11,\n 12,\n 10,\n 10,\n 10,\n 11,\n 11,\n 11,\n 11,\n 12\n];\n$a14e8b54f947e3d4$var$Tables.t13l = [\n 1,\n 5,\n 7,\n 8,\n 9,\n 10,\n 10,\n 11,\n 10,\n 11,\n 12,\n 12,\n 13,\n 13,\n 14,\n 14,\n 4,\n 6,\n 8,\n 9,\n 10,\n 10,\n 11,\n 11,\n 11,\n 11,\n 12,\n 12,\n 13,\n 14,\n 14,\n 14,\n 7,\n 8,\n 9,\n 10,\n 11,\n 11,\n 12,\n 12,\n 11,\n 12,\n 12,\n 13,\n 13,\n 14,\n 15,\n 15,\n 8,\n 9,\n 10,\n 11,\n 11,\n 12,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 13,\n 14,\n 15,\n 15,\n 9,\n 9,\n 11,\n 11,\n 12,\n 12,\n 13,\n 13,\n 12,\n 13,\n 13,\n 14,\n 14,\n 15,\n 15,\n 16,\n 10,\n 10,\n 11,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 13,\n 14,\n 13,\n 15,\n 15,\n 16,\n 16,\n 10,\n 11,\n 12,\n 12,\n 13,\n 13,\n 13,\n 13,\n 13,\n 14,\n 14,\n 14,\n 15,\n 15,\n 16,\n 16,\n 11,\n 11,\n 12,\n 13,\n 13,\n 13,\n 14,\n 14,\n 14,\n 14,\n 15,\n 15,\n 15,\n 16,\n 18,\n 18,\n 10,\n 10,\n 11,\n 12,\n 12,\n 13,\n 13,\n 14,\n 14,\n 14,\n 14,\n 15,\n 15,\n 16,\n 17,\n 17,\n 11,\n 11,\n 12,\n 12,\n 13,\n 13,\n 13,\n 15,\n 14,\n 15,\n 15,\n 16,\n 16,\n 16,\n 18,\n 17,\n 11,\n 12,\n 12,\n 13,\n 13,\n 14,\n 14,\n 15,\n 14,\n 15,\n 16,\n 15,\n 16,\n 17,\n 18,\n 19,\n 12,\n 12,\n 12,\n 13,\n 14,\n 14,\n 14,\n 14,\n 15,\n 15,\n 15,\n 16,\n 17,\n 17,\n 17,\n 18,\n 12,\n 13,\n 13,\n 14,\n 14,\n 15,\n 14,\n 15,\n 16,\n 16,\n 17,\n 17,\n 17,\n 18,\n 18,\n 18,\n 13,\n 13,\n 14,\n 15,\n 15,\n 15,\n 16,\n 16,\n 16,\n 16,\n 16,\n 17,\n 18,\n 17,\n 18,\n 18,\n 14,\n 14,\n 14,\n 15,\n 15,\n 15,\n 17,\n 16,\n 16,\n 19,\n 17,\n 17,\n 17,\n 19,\n 18,\n 18,\n 13,\n 14,\n 15,\n 16,\n 16,\n 16,\n 17,\n 16,\n 17,\n 17,\n 18,\n 18,\n 21,\n 20,\n 21,\n 18\n];\n$a14e8b54f947e3d4$var$Tables.t15l = [\n 3,\n 5,\n 6,\n 8,\n 8,\n 9,\n 10,\n 10,\n 10,\n 11,\n 11,\n 12,\n 12,\n 12,\n 13,\n 14,\n 5,\n 5,\n 7,\n 8,\n 9,\n 9,\n 10,\n 10,\n 10,\n 11,\n 11,\n 12,\n 12,\n 12,\n 13,\n 13,\n 6,\n 7,\n 7,\n 8,\n 9,\n 9,\n 10,\n 10,\n 10,\n 11,\n 11,\n 12,\n 12,\n 13,\n 13,\n 13,\n 7,\n 8,\n 8,\n 9,\n 9,\n 10,\n 10,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 8,\n 8,\n 9,\n 9,\n 10,\n 10,\n 11,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 9,\n 9,\n 9,\n 10,\n 10,\n 10,\n 11,\n 11,\n 11,\n 11,\n 12,\n 12,\n 13,\n 13,\n 13,\n 14,\n 10,\n 9,\n 10,\n 10,\n 10,\n 11,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 13,\n 13,\n 14,\n 14,\n 10,\n 10,\n 10,\n 11,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 14,\n 10,\n 10,\n 10,\n 11,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 12,\n 13,\n 13,\n 14,\n 14,\n 14,\n 10,\n 10,\n 11,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 13,\n 14,\n 14,\n 14,\n 11,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 13,\n 14,\n 15,\n 14,\n 11,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 13,\n 14,\n 14,\n 14,\n 15,\n 12,\n 12,\n 11,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 13,\n 13,\n 13,\n 14,\n 14,\n 15,\n 15,\n 12,\n 12,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 13,\n 14,\n 14,\n 14,\n 14,\n 14,\n 15,\n 15,\n 13,\n 13,\n 13,\n 13,\n 13,\n 13,\n 13,\n 13,\n 14,\n 14,\n 14,\n 14,\n 15,\n 15,\n 14,\n 15,\n 13,\n 13,\n 13,\n 13,\n 13,\n 13,\n 13,\n 14,\n 14,\n 14,\n 14,\n 14,\n 15,\n 15,\n 15,\n 15\n];\n$a14e8b54f947e3d4$var$Tables.t16_5l = [\n 1,\n 5,\n 7,\n 9,\n 10,\n 10,\n 11,\n 11,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 14,\n 11,\n 4,\n 6,\n 8,\n 9,\n 10,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 13,\n 14,\n 13,\n 14,\n 11,\n 7,\n 8,\n 9,\n 10,\n 11,\n 11,\n 12,\n 12,\n 13,\n 12,\n 13,\n 13,\n 13,\n 14,\n 14,\n 12,\n 9,\n 9,\n 10,\n 11,\n 11,\n 12,\n 12,\n 12,\n 13,\n 13,\n 14,\n 14,\n 14,\n 15,\n 15,\n 13,\n 10,\n 10,\n 11,\n 11,\n 12,\n 12,\n 13,\n 13,\n 13,\n 14,\n 14,\n 14,\n 15,\n 15,\n 15,\n 12,\n 10,\n 10,\n 11,\n 11,\n 12,\n 13,\n 13,\n 14,\n 13,\n 14,\n 14,\n 15,\n 15,\n 15,\n 16,\n 13,\n 11,\n 11,\n 11,\n 12,\n 13,\n 13,\n 13,\n 13,\n 14,\n 14,\n 14,\n 14,\n 15,\n 15,\n 16,\n 13,\n 11,\n 11,\n 12,\n 12,\n 13,\n 13,\n 13,\n 14,\n 14,\n 15,\n 15,\n 15,\n 15,\n 17,\n 17,\n 13,\n 11,\n 12,\n 12,\n 13,\n 13,\n 13,\n 14,\n 14,\n 15,\n 15,\n 15,\n 15,\n 16,\n 16,\n 16,\n 13,\n 12,\n 12,\n 12,\n 13,\n 13,\n 14,\n 14,\n 15,\n 15,\n 15,\n 15,\n 16,\n 15,\n 16,\n 15,\n 14,\n 12,\n 13,\n 12,\n 13,\n 14,\n 14,\n 14,\n 14,\n 15,\n 16,\n 16,\n 16,\n 17,\n 17,\n 16,\n 13,\n 13,\n 13,\n 13,\n 13,\n 14,\n 14,\n 15,\n 16,\n 16,\n 16,\n 16,\n 16,\n 16,\n 15,\n 16,\n 14,\n 13,\n 14,\n 14,\n 14,\n 14,\n 15,\n 15,\n 15,\n 15,\n 17,\n 16,\n 16,\n 16,\n 16,\n 18,\n 14,\n 15,\n 14,\n 14,\n 14,\n 15,\n 15,\n 16,\n 16,\n 16,\n 18,\n 17,\n 17,\n 17,\n 19,\n 17,\n 14,\n 14,\n 15,\n 13,\n 14,\n 16,\n 16,\n 15,\n 16,\n 16,\n 17,\n 18,\n 17,\n 19,\n 17,\n 16,\n 14,\n 11,\n 11,\n 11,\n 12,\n 12,\n 13,\n 13,\n 13,\n 14,\n 14,\n 14,\n 14,\n 14,\n 14,\n 14,\n 12\n];\n$a14e8b54f947e3d4$var$Tables.t16l = [\n 1,\n 5,\n 7,\n 9,\n 10,\n 10,\n 11,\n 11,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 14,\n 10,\n 4,\n 6,\n 8,\n 9,\n 10,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 13,\n 14,\n 13,\n 14,\n 10,\n 7,\n 8,\n 9,\n 10,\n 11,\n 11,\n 12,\n 12,\n 13,\n 12,\n 13,\n 13,\n 13,\n 14,\n 14,\n 11,\n 9,\n 9,\n 10,\n 11,\n 11,\n 12,\n 12,\n 12,\n 13,\n 13,\n 14,\n 14,\n 14,\n 15,\n 15,\n 12,\n 10,\n 10,\n 11,\n 11,\n 12,\n 12,\n 13,\n 13,\n 13,\n 14,\n 14,\n 14,\n 15,\n 15,\n 15,\n 11,\n 10,\n 10,\n 11,\n 11,\n 12,\n 13,\n 13,\n 14,\n 13,\n 14,\n 14,\n 15,\n 15,\n 15,\n 16,\n 12,\n 11,\n 11,\n 11,\n 12,\n 13,\n 13,\n 13,\n 13,\n 14,\n 14,\n 14,\n 14,\n 15,\n 15,\n 16,\n 12,\n 11,\n 11,\n 12,\n 12,\n 13,\n 13,\n 13,\n 14,\n 14,\n 15,\n 15,\n 15,\n 15,\n 17,\n 17,\n 12,\n 11,\n 12,\n 12,\n 13,\n 13,\n 13,\n 14,\n 14,\n 15,\n 15,\n 15,\n 15,\n 16,\n 16,\n 16,\n 12,\n 12,\n 12,\n 12,\n 13,\n 13,\n 14,\n 14,\n 15,\n 15,\n 15,\n 15,\n 16,\n 15,\n 16,\n 15,\n 13,\n 12,\n 13,\n 12,\n 13,\n 14,\n 14,\n 14,\n 14,\n 15,\n 16,\n 16,\n 16,\n 17,\n 17,\n 16,\n 12,\n 13,\n 13,\n 13,\n 13,\n 14,\n 14,\n 15,\n 16,\n 16,\n 16,\n 16,\n 16,\n 16,\n 15,\n 16,\n 13,\n 13,\n 14,\n 14,\n 14,\n 14,\n 15,\n 15,\n 15,\n 15,\n 17,\n 16,\n 16,\n 16,\n 16,\n 18,\n 13,\n 15,\n 14,\n 14,\n 14,\n 15,\n 15,\n 16,\n 16,\n 16,\n 18,\n 17,\n 17,\n 17,\n 19,\n 17,\n 13,\n 14,\n 15,\n 13,\n 14,\n 16,\n 16,\n 15,\n 16,\n 16,\n 17,\n 18,\n 17,\n 19,\n 17,\n 16,\n 13,\n 10,\n 10,\n 10,\n 11,\n 11,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 13,\n 13,\n 13,\n 13,\n 10\n];\n$a14e8b54f947e3d4$var$Tables.t24l = [\n 4,\n 5,\n 7,\n 8,\n 9,\n 10,\n 10,\n 11,\n 11,\n 12,\n 12,\n 12,\n 12,\n 12,\n 13,\n 10,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 10,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 12,\n 12,\n 10,\n 7,\n 7,\n 8,\n 9,\n 9,\n 10,\n 10,\n 11,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 13,\n 9,\n 8,\n 8,\n 9,\n 9,\n 10,\n 10,\n 10,\n 11,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 12,\n 9,\n 9,\n 9,\n 9,\n 10,\n 10,\n 10,\n 10,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 12,\n 13,\n 9,\n 10,\n 9,\n 10,\n 10,\n 10,\n 10,\n 11,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 12,\n 12,\n 9,\n 10,\n 10,\n 10,\n 10,\n 10,\n 11,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 12,\n 12,\n 13,\n 9,\n 11,\n 10,\n 10,\n 10,\n 11,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 12,\n 12,\n 13,\n 13,\n 10,\n 11,\n 11,\n 11,\n 11,\n 11,\n 11,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 12,\n 13,\n 13,\n 10,\n 11,\n 11,\n 11,\n 11,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 10,\n 12,\n 11,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 13,\n 10,\n 12,\n 12,\n 11,\n 11,\n 11,\n 12,\n 12,\n 12,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 13,\n 10,\n 12,\n 12,\n 12,\n 12,\n 12,\n 12,\n 12,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 13,\n 13,\n 10,\n 12,\n 12,\n 12,\n 12,\n 12,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 13,\n 13,\n 13,\n 13,\n 10,\n 13,\n 12,\n 12,\n 12,\n 12,\n 12,\n 12,\n 13,\n 13,\n 13,\n 13,\n 13,\n 13,\n 13,\n 13,\n 10,\n 9,\n 9,\n 9,\n 9,\n 9,\n 9,\n 9,\n 9,\n 9,\n 9,\n 9,\n 10,\n 10,\n 10,\n 10,\n 6\n];\n$a14e8b54f947e3d4$var$Tables.t32l = [\n 1,\n 5,\n 5,\n 7,\n 5,\n 8,\n 7,\n 9,\n 5,\n 7,\n 7,\n 9,\n 7,\n 9,\n 9,\n 10\n];\n$a14e8b54f947e3d4$var$Tables.t33l = [\n 4,\n 5,\n 5,\n 6,\n 5,\n 6,\n 6,\n 7,\n 5,\n 6,\n 6,\n 7,\n 6,\n 7,\n 7,\n 8\n];\n$a14e8b54f947e3d4$var$Tables.ht = [\n /* xlen, linmax, table, hlen */ new $a14e8b54f947e3d4$var$HuffCodeTab(0, 0, null, null),\n new $a14e8b54f947e3d4$var$HuffCodeTab(2, 0, $a14e8b54f947e3d4$var$Tables.t1HB, $a14e8b54f947e3d4$var$Tables.t1l),\n new $a14e8b54f947e3d4$var$HuffCodeTab(3, 0, $a14e8b54f947e3d4$var$Tables.t2HB, $a14e8b54f947e3d4$var$Tables.t2l),\n new $a14e8b54f947e3d4$var$HuffCodeTab(3, 0, $a14e8b54f947e3d4$var$Tables.t3HB, $a14e8b54f947e3d4$var$Tables.t3l),\n new $a14e8b54f947e3d4$var$HuffCodeTab(0, 0, null, null),\n /* Apparently not used */ new $a14e8b54f947e3d4$var$HuffCodeTab(4, 0, $a14e8b54f947e3d4$var$Tables.t5HB, $a14e8b54f947e3d4$var$Tables.t5l),\n new $a14e8b54f947e3d4$var$HuffCodeTab(4, 0, $a14e8b54f947e3d4$var$Tables.t6HB, $a14e8b54f947e3d4$var$Tables.t6l),\n new $a14e8b54f947e3d4$var$HuffCodeTab(6, 0, $a14e8b54f947e3d4$var$Tables.t7HB, $a14e8b54f947e3d4$var$Tables.t7l),\n new $a14e8b54f947e3d4$var$HuffCodeTab(6, 0, $a14e8b54f947e3d4$var$Tables.t8HB, $a14e8b54f947e3d4$var$Tables.t8l),\n new $a14e8b54f947e3d4$var$HuffCodeTab(6, 0, $a14e8b54f947e3d4$var$Tables.t9HB, $a14e8b54f947e3d4$var$Tables.t9l),\n new $a14e8b54f947e3d4$var$HuffCodeTab(8, 0, $a14e8b54f947e3d4$var$Tables.t10HB, $a14e8b54f947e3d4$var$Tables.t10l),\n new $a14e8b54f947e3d4$var$HuffCodeTab(8, 0, $a14e8b54f947e3d4$var$Tables.t11HB, $a14e8b54f947e3d4$var$Tables.t11l),\n new $a14e8b54f947e3d4$var$HuffCodeTab(8, 0, $a14e8b54f947e3d4$var$Tables.t12HB, $a14e8b54f947e3d4$var$Tables.t12l),\n new $a14e8b54f947e3d4$var$HuffCodeTab(16, 0, $a14e8b54f947e3d4$var$Tables.t13HB, $a14e8b54f947e3d4$var$Tables.t13l),\n new $a14e8b54f947e3d4$var$HuffCodeTab(0, 0, null, $a14e8b54f947e3d4$var$Tables.t16_5l),\n /* Apparently not used */ new $a14e8b54f947e3d4$var$HuffCodeTab(16, 0, $a14e8b54f947e3d4$var$Tables.t15HB, $a14e8b54f947e3d4$var$Tables.t15l),\n new $a14e8b54f947e3d4$var$HuffCodeTab(1, 1, $a14e8b54f947e3d4$var$Tables.t16HB, $a14e8b54f947e3d4$var$Tables.t16l),\n new $a14e8b54f947e3d4$var$HuffCodeTab(2, 3, $a14e8b54f947e3d4$var$Tables.t16HB, $a14e8b54f947e3d4$var$Tables.t16l),\n new $a14e8b54f947e3d4$var$HuffCodeTab(3, 7, $a14e8b54f947e3d4$var$Tables.t16HB, $a14e8b54f947e3d4$var$Tables.t16l),\n new $a14e8b54f947e3d4$var$HuffCodeTab(4, 15, $a14e8b54f947e3d4$var$Tables.t16HB, $a14e8b54f947e3d4$var$Tables.t16l),\n new $a14e8b54f947e3d4$var$HuffCodeTab(6, 63, $a14e8b54f947e3d4$var$Tables.t16HB, $a14e8b54f947e3d4$var$Tables.t16l),\n new $a14e8b54f947e3d4$var$HuffCodeTab(8, 255, $a14e8b54f947e3d4$var$Tables.t16HB, $a14e8b54f947e3d4$var$Tables.t16l),\n new $a14e8b54f947e3d4$var$HuffCodeTab(10, 1023, $a14e8b54f947e3d4$var$Tables.t16HB, $a14e8b54f947e3d4$var$Tables.t16l),\n new $a14e8b54f947e3d4$var$HuffCodeTab(13, 8191, $a14e8b54f947e3d4$var$Tables.t16HB, $a14e8b54f947e3d4$var$Tables.t16l),\n new $a14e8b54f947e3d4$var$HuffCodeTab(4, 15, $a14e8b54f947e3d4$var$Tables.t24HB, $a14e8b54f947e3d4$var$Tables.t24l),\n new $a14e8b54f947e3d4$var$HuffCodeTab(5, 31, $a14e8b54f947e3d4$var$Tables.t24HB, $a14e8b54f947e3d4$var$Tables.t24l),\n new $a14e8b54f947e3d4$var$HuffCodeTab(6, 63, $a14e8b54f947e3d4$var$Tables.t24HB, $a14e8b54f947e3d4$var$Tables.t24l),\n new $a14e8b54f947e3d4$var$HuffCodeTab(7, 127, $a14e8b54f947e3d4$var$Tables.t24HB, $a14e8b54f947e3d4$var$Tables.t24l),\n new $a14e8b54f947e3d4$var$HuffCodeTab(8, 255, $a14e8b54f947e3d4$var$Tables.t24HB, $a14e8b54f947e3d4$var$Tables.t24l),\n new $a14e8b54f947e3d4$var$HuffCodeTab(9, 511, $a14e8b54f947e3d4$var$Tables.t24HB, $a14e8b54f947e3d4$var$Tables.t24l),\n new $a14e8b54f947e3d4$var$HuffCodeTab(11, 2047, $a14e8b54f947e3d4$var$Tables.t24HB, $a14e8b54f947e3d4$var$Tables.t24l),\n new $a14e8b54f947e3d4$var$HuffCodeTab(13, 8191, $a14e8b54f947e3d4$var$Tables.t24HB, $a14e8b54f947e3d4$var$Tables.t24l),\n new $a14e8b54f947e3d4$var$HuffCodeTab(0, 0, $a14e8b54f947e3d4$var$Tables.t32HB, $a14e8b54f947e3d4$var$Tables.t32l),\n new $a14e8b54f947e3d4$var$HuffCodeTab(0, 0, $a14e8b54f947e3d4$var$Tables.t33HB, $a14e8b54f947e3d4$var$Tables.t33l)\n];\n/**\n * <CODE>\n * for (i = 0; i < 16*16; i++) [\n * largetbl[i] = ((ht[16].hlen[i]) << 16) + ht[24].hlen[i];\n * ]\n * </CODE>\n *\n */ $a14e8b54f947e3d4$var$Tables.largetbl = [\n 0x010004,\n 0x050005,\n 0x070007,\n 0x090008,\n 0x0a0009,\n 0x0a000a,\n 0x0b000a,\n 0x0b000b,\n 0x0c000b,\n 0x0c000c,\n 0x0c000c,\n 0x0d000c,\n 0x0d000c,\n 0x0d000c,\n 0x0e000d,\n 0x0a000a,\n 0x040005,\n 0x060006,\n 0x080007,\n 0x090008,\n 0x0a0009,\n 0x0b000a,\n 0x0b000a,\n 0x0b000b,\n 0x0c000b,\n 0x0c000b,\n 0x0c000c,\n 0x0d000c,\n 0x0e000c,\n 0x0d000c,\n 0x0e000c,\n 0x0a000a,\n 0x070007,\n 0x080007,\n 0x090008,\n 0x0a0009,\n 0x0b0009,\n 0x0b000a,\n 0x0c000a,\n 0x0c000b,\n 0x0d000b,\n 0x0c000b,\n 0x0d000b,\n 0x0d000c,\n 0x0d000c,\n 0x0e000c,\n 0x0e000d,\n 0x0b0009,\n 0x090008,\n 0x090008,\n 0x0a0009,\n 0x0b0009,\n 0x0b000a,\n 0x0c000a,\n 0x0c000a,\n 0x0c000b,\n 0x0d000b,\n 0x0d000b,\n 0x0e000b,\n 0x0e000c,\n 0x0e000c,\n 0x0f000c,\n 0x0f000c,\n 0x0c0009,\n 0x0a0009,\n 0x0a0009,\n 0x0b0009,\n 0x0b000a,\n 0x0c000a,\n 0x0c000a,\n 0x0d000a,\n 0x0d000b,\n 0x0d000b,\n 0x0e000b,\n 0x0e000c,\n 0x0e000c,\n 0x0f000c,\n 0x0f000c,\n 0x0f000d,\n 0x0b0009,\n 0x0a000a,\n 0x0a0009,\n 0x0b000a,\n 0x0b000a,\n 0x0c000a,\n 0x0d000a,\n 0x0d000b,\n 0x0e000b,\n 0x0d000b,\n 0x0e000b,\n 0x0e000c,\n 0x0f000c,\n 0x0f000c,\n 0x0f000c,\n 0x10000c,\n 0x0c0009,\n 0x0b000a,\n 0x0b000a,\n 0x0b000a,\n 0x0c000a,\n 0x0d000a,\n 0x0d000b,\n 0x0d000b,\n 0x0d000b,\n 0x0e000b,\n 0x0e000c,\n 0x0e000c,\n 0x0e000c,\n 0x0f000c,\n 0x0f000c,\n 0x10000d,\n 0x0c0009,\n 0x0b000b,\n 0x0b000a,\n 0x0c000a,\n 0x0c000a,\n 0x0d000b,\n 0x0d000b,\n 0x0d000b,\n 0x0e000b,\n 0x0e000c,\n 0x0f000c,\n 0x0f000c,\n 0x0f000c,\n 0x0f000c,\n 0x11000d,\n 0x11000d,\n 0x0c000a,\n 0x0b000b,\n 0x0c000b,\n 0x0c000b,\n 0x0d000b,\n 0x0d000b,\n 0x0d000b,\n 0x0e000b,\n 0x0e000b,\n 0x0f000b,\n 0x0f000c,\n 0x0f000c,\n 0x0f000c,\n 0x10000c,\n 0x10000d,\n 0x10000d,\n 0x0c000a,\n 0x0c000b,\n 0x0c000b,\n 0x0c000b,\n 0x0d000b,\n 0x0d000b,\n 0x0e000b,\n 0x0e000b,\n 0x0f000c,\n 0x0f000c,\n 0x0f000c,\n 0x0f000c,\n 0x10000c,\n 0x0f000d,\n 0x10000d,\n 0x0f000d,\n 0x0d000a,\n 0x0c000c,\n 0x0d000b,\n 0x0c000b,\n 0x0d000b,\n 0x0e000b,\n 0x0e000c,\n 0x0e000c,\n 0x0e000c,\n 0x0f000c,\n 0x10000c,\n 0x10000c,\n 0x10000d,\n 0x11000d,\n 0x11000d,\n 0x10000d,\n 0x0c000a,\n 0x0d000c,\n 0x0d000c,\n 0x0d000b,\n 0x0d000b,\n 0x0e000b,\n 0x0e000c,\n 0x0f000c,\n 0x10000c,\n 0x10000c,\n 0x10000c,\n 0x10000c,\n 0x10000d,\n 0x10000d,\n 0x0f000d,\n 0x10000d,\n 0x0d000a,\n 0x0d000c,\n 0x0e000c,\n 0x0e000c,\n 0x0e000c,\n 0x0e000c,\n 0x0f000c,\n 0x0f000c,\n 0x0f000c,\n 0x0f000c,\n 0x11000c,\n 0x10000d,\n 0x10000d,\n 0x10000d,\n 0x10000d,\n 0x12000d,\n 0x0d000a,\n 0x0f000c,\n 0x0e000c,\n 0x0e000c,\n 0x0e000c,\n 0x0f000c,\n 0x0f000c,\n 0x10000c,\n 0x10000c,\n 0x10000d,\n 0x12000d,\n 0x11000d,\n 0x11000d,\n 0x11000d,\n 0x13000d,\n 0x11000d,\n 0x0d000a,\n 0x0e000d,\n 0x0f000c,\n 0x0d000c,\n 0x0e000c,\n 0x10000c,\n 0x10000c,\n 0x0f000c,\n 0x10000d,\n 0x10000d,\n 0x11000d,\n 0x12000d,\n 0x11000d,\n 0x13000d,\n 0x11000d,\n 0x10000d,\n 0x0d000a,\n 0x0a0009,\n 0x0a0009,\n 0x0a0009,\n 0x0b0009,\n 0x0b0009,\n 0x0c0009,\n 0x0c0009,\n 0x0c0009,\n 0x0d0009,\n 0x0d0009,\n 0x0d0009,\n 0x0d000a,\n 0x0d000a,\n 0x0d000a,\n 0x0d000a,\n 0x0a0006\n];\n/**\n * <CODE>\n * for (i = 0; i < 3*3; i++) [\n * table23[i] = ((ht[2].hlen[i]) << 16) + ht[3].hlen[i];\n * ]\n * </CODE>\n *\n */ $a14e8b54f947e3d4$var$Tables.table23 = [\n 0x010002,\n 0x040003,\n 0x070007,\n 0x040004,\n 0x050004,\n 0x070007,\n 0x060006,\n 0x070007,\n 0x080008\n];\n/**\n * <CODE>\n * for (i = 0; i < 4*4; i++) [\n * table56[i] = ((ht[5].hlen[i]) << 16) + ht[6].hlen[i];\n * ]\n * </CODE>\n *\n */ $a14e8b54f947e3d4$var$Tables.table56 = [\n 0x010003,\n 0x040004,\n 0x070006,\n 0x080008,\n 0x040004,\n 0x050004,\n 0x080006,\n 0x090007,\n 0x070005,\n 0x080006,\n 0x090007,\n 0x0a0008,\n 0x080007,\n 0x080007,\n 0x090008,\n 0x0a0009\n];\n$a14e8b54f947e3d4$var$Tables.bitrate_table = [\n [\n 0,\n 8,\n 16,\n 24,\n 32,\n 40,\n 48,\n 56,\n 64,\n 80,\n 96,\n 112,\n 128,\n 144,\n 160,\n -1\n ],\n /* MPEG 2 */ [\n 0,\n 32,\n 40,\n 48,\n 56,\n 64,\n 80,\n 96,\n 112,\n 128,\n 160,\n 192,\n 224,\n 256,\n 320,\n -1\n ],\n /* MPEG 1 */ [\n 0,\n 8,\n 16,\n 24,\n 32,\n 40,\n 48,\n 56,\n 64,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1,\n -1\n ]\n];\n/**\n * MPEG 2, MPEG 1, MPEG 2.5.\n */ $a14e8b54f947e3d4$var$Tables.samplerate_table = [\n [\n 22050,\n 24000,\n 16000,\n -1\n ],\n [\n 44100,\n 48000,\n 32000,\n -1\n ],\n [\n 11025,\n 12000,\n 8000,\n -1\n ]\n];\n/**\n * This is the scfsi_band table from 2.4.2.7 of the IS.\n */ $a14e8b54f947e3d4$var$Tables.scfsi_band = [\n 0,\n 6,\n 11,\n 16,\n 21\n];\nmodule.exports = $a14e8b54f947e3d4$var$Tables;\n\n});\n\nparcelRequire.register(\"84mea\", function(module, exports) {\n/*\n * quantize_pvt source file\n *\n * Copyright (c) 1999-2002 Takehiro Tominaga\n * Copyright (c) 2000-2002 Robert Hegemann\n * Copyright (c) 2001 Naoki Shibata\n * Copyright (c) 2002-2005 Gabriel Bouvigne\n *\n * This library is free software; you can redistribute it and/or\n * modify it under the terms of the GNU Lesser General Public\n * License as published by the Free Software Foundation; either\n * version 2 of the License, or (at your option) any later version.\n *\n * This library is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Library General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this library; if not, write to the\n * Free Software Foundation, Inc., 59 Temple Place - Suite 330,\n * Boston, MA 02111-1307, USA.\n */ /* $Id: QuantizePVT.java,v 1.24 2011/05/24 20:48:06 kenchis Exp $ */ \nvar $7imnH = parcelRequire(\"7imnH\");\n\nvar $3YDN3 = parcelRequire(\"3YDN3\");\nvar $5dfff05939c3cc74$var$System = $3YDN3.System;\nvar $5dfff05939c3cc74$var$VbrMode = $3YDN3.VbrMode;\nvar $5dfff05939c3cc74$var$Float = $3YDN3.Float;\nvar $5dfff05939c3cc74$var$ShortBlock = $3YDN3.ShortBlock;\nvar $5dfff05939c3cc74$var$Util = $3YDN3.Util;\nvar $5dfff05939c3cc74$var$Arrays = $3YDN3.Arrays;\nvar $5dfff05939c3cc74$var$new_array_n = $3YDN3.new_array_n;\nvar $5dfff05939c3cc74$var$new_byte = $3YDN3.new_byte;\nvar $5dfff05939c3cc74$var$new_double = $3YDN3.new_double;\nvar $5dfff05939c3cc74$var$new_float = $3YDN3.new_float;\nvar $5dfff05939c3cc74$var$new_float_n = $3YDN3.new_float_n;\nvar $5dfff05939c3cc74$var$new_int = $3YDN3.new_int;\nvar $5dfff05939c3cc74$var$new_int_n = $3YDN3.new_int_n;\nvar $5dfff05939c3cc74$var$assert = $3YDN3.assert;\n\nvar $cPNKB = parcelRequire(\"cPNKB\");\n\nvar $lL4Le = parcelRequire(\"lL4Le\");\n\nvar $4SDnr = parcelRequire(\"4SDnr\");\n$5dfff05939c3cc74$var$QuantizePVT.Q_MAX = 257;\n$5dfff05939c3cc74$var$QuantizePVT.Q_MAX2 = 116;\n$5dfff05939c3cc74$var$QuantizePVT.LARGE_BITS = 100000;\n$5dfff05939c3cc74$var$QuantizePVT.IXMAX_VAL = 8206;\n\nfunction $5dfff05939c3cc74$var$QuantizePVT() {\n var BitStream = (parcelRequire(\"ctaQC\"));\n var tak = null;\n var rv = null;\n var psy = null;\n this.setModules = function(_tk, _rv, _psy) {\n tak = _tk;\n rv = _rv;\n psy = _psy;\n };\n function POW20(x) {\n $5dfff05939c3cc74$var$assert(0 <= x + $5dfff05939c3cc74$var$QuantizePVT.Q_MAX2 && x < $5dfff05939c3cc74$var$QuantizePVT.Q_MAX);\n return pow20[x + $5dfff05939c3cc74$var$QuantizePVT.Q_MAX2];\n }\n this.IPOW20 = function(x) {\n $5dfff05939c3cc74$var$assert(0 <= x && x < $5dfff05939c3cc74$var$QuantizePVT.Q_MAX);\n return ipow20[x];\n };\n /**\n * smallest such that 1.0+DBL_EPSILON != 1.0\n */ var DBL_EPSILON = 2.2204460492503131e-016;\n /**\n * ix always <= 8191+15. see count_bits()\n */ var IXMAX_VAL = $5dfff05939c3cc74$var$QuantizePVT.IXMAX_VAL;\n var PRECALC_SIZE = IXMAX_VAL + 2;\n var Q_MAX = $5dfff05939c3cc74$var$QuantizePVT.Q_MAX;\n /**\n * <CODE>\n * minimum possible number of\n * -cod_info.global_gain + ((scalefac[] + (cod_info.preflag ? pretab[sfb] : 0))\n * << (cod_info.scalefac_scale + 1)) + cod_info.subblock_gain[cod_info.window[sfb]] * 8;\n *\n * for long block, 0+((15+3)<<2) = 18*4 = 72\n * for short block, 0+(15<<2)+7*8 = 15*4+56 = 116\n * </CODE>\n */ var Q_MAX2 = $5dfff05939c3cc74$var$QuantizePVT.Q_MAX2;\n var LARGE_BITS = $5dfff05939c3cc74$var$QuantizePVT.LARGE_BITS;\n /**\n * Assuming dynamic range=96dB, this value should be 92\n */ var NSATHSCALE = 100;\n /**\n * The following table is used to implement the scalefactor partitioning for\n * MPEG2 as described in section 2.4.3.2 of the IS. The indexing corresponds\n * to the way the tables are presented in the IS:\n *\n * [table_number][row_in_table][column of nr_of_sfb]\n */ this.nr_of_sfb_block = [\n [\n [\n 6,\n 5,\n 5,\n 5\n ],\n [\n 9,\n 9,\n 9,\n 9\n ],\n [\n 6,\n 9,\n 9,\n 9\n ]\n ],\n [\n [\n 6,\n 5,\n 7,\n 3\n ],\n [\n 9,\n 9,\n 12,\n 6\n ],\n [\n 6,\n 9,\n 12,\n 6\n ]\n ],\n [\n [\n 11,\n 10,\n 0,\n 0\n ],\n [\n 18,\n 18,\n 0,\n 0\n ],\n [\n 15,\n 18,\n 0,\n 0\n ]\n ],\n [\n [\n 7,\n 7,\n 7,\n 0\n ],\n [\n 12,\n 12,\n 12,\n 0\n ],\n [\n 6,\n 15,\n 12,\n 0\n ]\n ],\n [\n [\n 6,\n 6,\n 6,\n 3\n ],\n [\n 12,\n 9,\n 9,\n 6\n ],\n [\n 6,\n 12,\n 9,\n 6\n ]\n ],\n [\n [\n 8,\n 8,\n 5,\n 0\n ],\n [\n 15,\n 12,\n 9,\n 0\n ],\n [\n 6,\n 18,\n 9,\n 0\n ]\n ]\n ];\n /**\n * Table B.6: layer3 preemphasis\n */ var pretab = [\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 1,\n 1,\n 1,\n 2,\n 2,\n 3,\n 3,\n 3,\n 2,\n 0\n ];\n this.pretab = pretab;\n /**\n * Here are MPEG1 Table B.8 and MPEG2 Table B.1 -- Layer III scalefactor\n * bands. <BR>\n * Index into this using a method such as:<BR>\n * idx = fr_ps.header.sampling_frequency + (fr_ps.header.version * 3)\n */ this.sfBandIndex = [\n // Table B.2.b: 22.05 kHz\n new $7imnH([\n 0,\n 6,\n 12,\n 18,\n 24,\n 30,\n 36,\n 44,\n 54,\n 66,\n 80,\n 96,\n 116,\n 140,\n 168,\n 200,\n 238,\n 284,\n 336,\n 396,\n 464,\n 522,\n 576\n ], [\n 0,\n 4,\n 8,\n 12,\n 18,\n 24,\n 32,\n 42,\n 56,\n 74,\n 100,\n 132,\n 174,\n 192\n ], [\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0\n ] // sfb21 pseudo sub bands\n , [\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0\n ] // sfb12 pseudo sub bands\n ),\n /* Table B.2.c: 24 kHz */ /* docs: 332. mpg123(broken): 330 */ new $7imnH([\n 0,\n 6,\n 12,\n 18,\n 24,\n 30,\n 36,\n 44,\n 54,\n 66,\n 80,\n 96,\n 114,\n 136,\n 162,\n 194,\n 232,\n 278,\n 332,\n 394,\n 464,\n 540,\n 576\n ], [\n 0,\n 4,\n 8,\n 12,\n 18,\n 26,\n 36,\n 48,\n 62,\n 80,\n 104,\n 136,\n 180,\n 192\n ], [\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0\n ], [\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0\n ]),\n /* Table B.2.a: 16 kHz */ new $7imnH([\n 0,\n 6,\n 12,\n 18,\n 24,\n 30,\n 36,\n 44,\n 54,\n 66,\n 80,\n 96,\n 116,\n 140,\n 168,\n 200,\n 238,\n 284,\n 336,\n 396,\n 464,\n 522,\n 576\n ], [\n 0,\n 4,\n 8,\n 12,\n 18,\n 26,\n 36,\n 48,\n 62,\n 80,\n 104,\n 134,\n 174,\n 192\n ], [\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0\n ], [\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0\n ]),\n /* Table B.8.b: 44.1 kHz */ new $7imnH([\n 0,\n 4,\n 8,\n 12,\n 16,\n 20,\n 24,\n 30,\n 36,\n 44,\n 52,\n 62,\n 74,\n 90,\n 110,\n 134,\n 162,\n 196,\n 238,\n 288,\n 342,\n 418,\n 576\n ], [\n 0,\n 4,\n 8,\n 12,\n 16,\n 22,\n 30,\n 40,\n 52,\n 66,\n 84,\n 106,\n 136,\n 192\n ], [\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0\n ], [\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0\n ]),\n /* Table B.8.c: 48 kHz */ new $7imnH([\n 0,\n 4,\n 8,\n 12,\n 16,\n 20,\n 24,\n 30,\n 36,\n 42,\n 50,\n 60,\n 72,\n 88,\n 106,\n 128,\n 156,\n 190,\n 230,\n 276,\n 330,\n 384,\n 576\n ], [\n 0,\n 4,\n 8,\n 12,\n 16,\n 22,\n 28,\n 38,\n 50,\n 64,\n 80,\n 100,\n 126,\n 192\n ], [\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0\n ], [\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0\n ]),\n /* Table B.8.a: 32 kHz */ new $7imnH([\n 0,\n 4,\n 8,\n 12,\n 16,\n 20,\n 24,\n 30,\n 36,\n 44,\n 54,\n 66,\n 82,\n 102,\n 126,\n 156,\n 194,\n 240,\n 296,\n 364,\n 448,\n 550,\n 576\n ], [\n 0,\n 4,\n 8,\n 12,\n 16,\n 22,\n 30,\n 42,\n 58,\n 78,\n 104,\n 138,\n 180,\n 192\n ], [\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0\n ], [\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0\n ]),\n /* MPEG-2.5 11.025 kHz */ new $7imnH([\n 0,\n 6,\n 12,\n 18,\n 24,\n 30,\n 36,\n 44,\n 54,\n 66,\n 80,\n 96,\n 116,\n 140,\n 168,\n 200,\n 238,\n 284,\n 336,\n 396,\n 464,\n 522,\n 576\n ], [\n 0,\n 4,\n 8,\n 12,\n 18,\n 26,\n 36,\n 48,\n 62,\n 80,\n 104,\n 134,\n 174,\n 192\n ], [\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0\n ], [\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0\n ]),\n /* MPEG-2.5 12 kHz */ new $7imnH([\n 0,\n 6,\n 12,\n 18,\n 24,\n 30,\n 36,\n 44,\n 54,\n 66,\n 80,\n 96,\n 116,\n 140,\n 168,\n 200,\n 238,\n 284,\n 336,\n 396,\n 464,\n 522,\n 576\n ], [\n 0,\n 4,\n 8,\n 12,\n 18,\n 26,\n 36,\n 48,\n 62,\n 80,\n 104,\n 134,\n 174,\n 192\n ], [\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0\n ], [\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0\n ]),\n /* MPEG-2.5 8 kHz */ new $7imnH([\n 0,\n 12,\n 24,\n 36,\n 48,\n 60,\n 72,\n 88,\n 108,\n 132,\n 160,\n 192,\n 232,\n 280,\n 336,\n 400,\n 476,\n 566,\n 568,\n 570,\n 572,\n 574,\n 576\n ], [\n 0,\n 8,\n 16,\n 24,\n 36,\n 52,\n 72,\n 96,\n 124,\n 160,\n 162,\n 164,\n 166,\n 192\n ], [\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0\n ], [\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0\n ])\n ];\n var pow20 = $5dfff05939c3cc74$var$new_float(Q_MAX + Q_MAX2 + 1);\n var ipow20 = $5dfff05939c3cc74$var$new_float(Q_MAX);\n var pow43 = $5dfff05939c3cc74$var$new_float(PRECALC_SIZE);\n var adj43 = $5dfff05939c3cc74$var$new_float(PRECALC_SIZE);\n this.adj43 = adj43;\n /**\n * <PRE>\n * compute the ATH for each scalefactor band cd range: 0..96db\n *\n * Input: 3.3kHz signal 32767 amplitude (3.3kHz is where ATH is smallest =\n * -5db) longblocks: sfb=12 en0/bw=-11db max_en0 = 1.3db shortblocks: sfb=5\n * -9db 0db\n *\n * Input: 1 1 1 1 1 1 1 -1 -1 -1 -1 -1 -1 -1 (repeated) longblocks: amp=1\n * sfb=12 en0/bw=-103 db max_en0 = -92db amp=32767 sfb=12 -12 db -1.4db\n *\n * Input: 1 1 1 1 1 1 1 -1 -1 -1 -1 -1 -1 -1 (repeated) shortblocks: amp=1\n * sfb=5 en0/bw= -99 -86 amp=32767 sfb=5 -9 db 4db\n *\n *\n * MAX energy of largest wave at 3.3kHz = 1db AVE energy of largest wave at\n * 3.3kHz = -11db Let's take AVE: -11db = maximum signal in sfb=12. Dynamic\n * range of CD: 96db. Therefor energy of smallest audible wave in sfb=12 =\n * -11 - 96 = -107db = ATH at 3.3kHz.\n *\n * ATH formula for this wave: -5db. To adjust to LAME scaling, we need ATH =\n * ATH_formula - 103 (db) ATH = ATH * 2.5e-10 (ener)\n * </PRE>\n */ function ATHmdct(gfp, f) {\n var ath = psy.ATHformula(f, gfp);\n ath -= NSATHSCALE;\n /* modify the MDCT scaling for the ATH and convert to energy */ ath = Math.pow(10.0, ath / 10.0 + gfp.ATHlower);\n return ath;\n }\n function compute_ath(gfp) {\n var ATH_l = gfp.internal_flags.ATH.l;\n var ATH_psfb21 = gfp.internal_flags.ATH.psfb21;\n var ATH_s = gfp.internal_flags.ATH.s;\n var ATH_psfb12 = gfp.internal_flags.ATH.psfb12;\n var gfc = gfp.internal_flags;\n var samp_freq = gfp.out_samplerate;\n for(var sfb = 0; sfb < $cPNKB.SBMAX_l; sfb++){\n var start = gfc.scalefac_band.l[sfb];\n var end = gfc.scalefac_band.l[sfb + 1];\n ATH_l[sfb] = $5dfff05939c3cc74$var$Float.MAX_VALUE;\n for(var i = start; i < end; i++){\n var freq = i * samp_freq / 1152;\n var ATH_f = ATHmdct(gfp, freq);\n /* freq in kHz */ ATH_l[sfb] = Math.min(ATH_l[sfb], ATH_f);\n }\n }\n for(var sfb = 0; sfb < $cPNKB.PSFB21; sfb++){\n var start = gfc.scalefac_band.psfb21[sfb];\n var end = gfc.scalefac_band.psfb21[sfb + 1];\n ATH_psfb21[sfb] = $5dfff05939c3cc74$var$Float.MAX_VALUE;\n for(var i = start; i < end; i++){\n var freq = i * samp_freq / 1152;\n var ATH_f = ATHmdct(gfp, freq);\n /* freq in kHz */ ATH_psfb21[sfb] = Math.min(ATH_psfb21[sfb], ATH_f);\n }\n }\n for(var sfb = 0; sfb < $cPNKB.SBMAX_s; sfb++){\n var start = gfc.scalefac_band.s[sfb];\n var end = gfc.scalefac_band.s[sfb + 1];\n ATH_s[sfb] = $5dfff05939c3cc74$var$Float.MAX_VALUE;\n for(var i = start; i < end; i++){\n var freq = i * samp_freq / 384;\n var ATH_f = ATHmdct(gfp, freq);\n /* freq in kHz */ ATH_s[sfb] = Math.min(ATH_s[sfb], ATH_f);\n }\n ATH_s[sfb] *= gfc.scalefac_band.s[sfb + 1] - gfc.scalefac_band.s[sfb];\n }\n for(var sfb = 0; sfb < $cPNKB.PSFB12; sfb++){\n var start = gfc.scalefac_band.psfb12[sfb];\n var end = gfc.scalefac_band.psfb12[sfb + 1];\n ATH_psfb12[sfb] = $5dfff05939c3cc74$var$Float.MAX_VALUE;\n for(var i = start; i < end; i++){\n var freq = i * samp_freq / 384;\n var ATH_f = ATHmdct(gfp, freq);\n /* freq in kHz */ ATH_psfb12[sfb] = Math.min(ATH_psfb12[sfb], ATH_f);\n }\n /* not sure about the following */ ATH_psfb12[sfb] *= gfc.scalefac_band.s[13] - gfc.scalefac_band.s[12];\n }\n /*\n * no-ATH mode: reduce ATH to -200 dB\n */ if (gfp.noATH) {\n for(var sfb = 0; sfb < $cPNKB.SBMAX_l; sfb++)ATH_l[sfb] = 1E-20;\n for(var sfb = 0; sfb < $cPNKB.PSFB21; sfb++)ATH_psfb21[sfb] = 1E-20;\n for(var sfb = 0; sfb < $cPNKB.SBMAX_s; sfb++)ATH_s[sfb] = 1E-20;\n for(var sfb = 0; sfb < $cPNKB.PSFB12; sfb++)ATH_psfb12[sfb] = 1E-20;\n }\n /*\n * work in progress, don't rely on it too much\n */ gfc.ATH.floor = 10. * Math.log10(ATHmdct(gfp, -1));\n }\n /**\n * initialization for iteration_loop\n */ this.iteration_init = function(gfp) {\n var gfc = gfp.internal_flags;\n var l3_side = gfc.l3_side;\n var i;\n if (gfc.iteration_init_init == 0) {\n gfc.iteration_init_init = 1;\n l3_side.main_data_begin = 0;\n compute_ath(gfp);\n pow43[0] = 0.0;\n for(i = 1; i < PRECALC_SIZE; i++)pow43[i] = Math.pow(i, 4.0 / 3.0);\n for(i = 0; i < PRECALC_SIZE - 1; i++)adj43[i] = i + 1 - Math.pow(0.5 * (pow43[i] + pow43[i + 1]), 0.75);\n adj43[i] = 0.5;\n for(i = 0; i < Q_MAX; i++)ipow20[i] = Math.pow(2.0, (i - 210) * -0.1875);\n for(i = 0; i <= Q_MAX + Q_MAX2; i++)pow20[i] = Math.pow(2.0, (i - 210 - Q_MAX2) * 0.25);\n tak.huffman_init(gfc);\n var bass, alto, treble, sfb21;\n i = gfp.exp_nspsytune >> 2 & 63;\n if (i >= 32) i -= 64;\n bass = Math.pow(10, i / 4.0 / 10.0);\n i = gfp.exp_nspsytune >> 8 & 63;\n if (i >= 32) i -= 64;\n alto = Math.pow(10, i / 4.0 / 10.0);\n i = gfp.exp_nspsytune >> 14 & 63;\n if (i >= 32) i -= 64;\n treble = Math.pow(10, i / 4.0 / 10.0);\n /*\n * to be compatible with Naoki's original code, the next 6 bits\n * define only the amount of changing treble for sfb21\n */ i = gfp.exp_nspsytune >> 20 & 63;\n if (i >= 32) i -= 64;\n sfb21 = treble * Math.pow(10, i / 4.0 / 10.0);\n for(i = 0; i < $cPNKB.SBMAX_l; i++){\n var f;\n if (i <= 6) f = bass;\n else if (i <= 13) f = alto;\n else if (i <= 20) f = treble;\n else f = sfb21;\n gfc.nsPsy.longfact[i] = f;\n }\n for(i = 0; i < $cPNKB.SBMAX_s; i++){\n var f;\n if (i <= 5) f = bass;\n else if (i <= 10) f = alto;\n else if (i <= 11) f = treble;\n else f = sfb21;\n gfc.nsPsy.shortfact[i] = f;\n }\n }\n };\n /**\n * allocate bits among 2 channels based on PE<BR>\n * mt 6/99<BR>\n * bugfixes rh 8/01: often allocated more than the allowed 4095 bits\n */ this.on_pe = function(gfp, pe, targ_bits, mean_bits, gr, cbr) {\n var gfc = gfp.internal_flags;\n var tbits = 0, bits;\n var add_bits = $5dfff05939c3cc74$var$new_int(2);\n var ch;\n /* allocate targ_bits for granule */ var mb = new $lL4Le(tbits);\n var extra_bits = rv.ResvMaxBits(gfp, mean_bits, mb, cbr);\n tbits = mb.bits;\n /* maximum allowed bits for this granule */ var max_bits = tbits + extra_bits;\n if (max_bits > $4SDnr.MAX_BITS_PER_GRANULE) // hard limit per granule\n max_bits = $4SDnr.MAX_BITS_PER_GRANULE;\n for(bits = 0, ch = 0; ch < gfc.channels_out; ++ch){\n /******************************************************************\n * allocate bits for each channel\n ******************************************************************/ targ_bits[ch] = Math.min($4SDnr.MAX_BITS_PER_CHANNEL, tbits / gfc.channels_out);\n add_bits[ch] = 0 | targ_bits[ch] * pe[gr][ch] / 700.0 - targ_bits[ch];\n /* at most increase bits by 1.5*average */ if (add_bits[ch] > mean_bits * 3 / 4) add_bits[ch] = mean_bits * 3 / 4;\n if (add_bits[ch] < 0) add_bits[ch] = 0;\n if (add_bits[ch] + targ_bits[ch] > $4SDnr.MAX_BITS_PER_CHANNEL) add_bits[ch] = Math.max(0, $4SDnr.MAX_BITS_PER_CHANNEL - targ_bits[ch]);\n bits += add_bits[ch];\n }\n if (bits > extra_bits) for(ch = 0; ch < gfc.channels_out; ++ch)add_bits[ch] = extra_bits * add_bits[ch] / bits;\n for(ch = 0; ch < gfc.channels_out; ++ch){\n targ_bits[ch] += add_bits[ch];\n extra_bits -= add_bits[ch];\n }\n for(bits = 0, ch = 0; ch < gfc.channels_out; ++ch)bits += targ_bits[ch];\n if (bits > $4SDnr.MAX_BITS_PER_GRANULE) {\n var sum = 0;\n for(ch = 0; ch < gfc.channels_out; ++ch){\n targ_bits[ch] *= $4SDnr.MAX_BITS_PER_GRANULE;\n targ_bits[ch] /= bits;\n sum += targ_bits[ch];\n }\n $5dfff05939c3cc74$var$assert(sum <= $4SDnr.MAX_BITS_PER_GRANULE);\n }\n return max_bits;\n };\n this.reduce_side = function(targ_bits, ms_ener_ratio, mean_bits, max_bits) {\n $5dfff05939c3cc74$var$assert(max_bits <= $4SDnr.MAX_BITS_PER_GRANULE);\n $5dfff05939c3cc74$var$assert(targ_bits[0] + targ_bits[1] <= $4SDnr.MAX_BITS_PER_GRANULE);\n /*\n * ms_ener_ratio = 0: allocate 66/33 mid/side fac=.33 ms_ener_ratio =.5:\n * allocate 50/50 mid/side fac= 0\n */ /* 75/25 split is fac=.5 */ var fac = .33 * (.5 - ms_ener_ratio) / .5;\n if (fac < 0) fac = 0;\n if (fac > .5) fac = .5;\n /* number of bits to move from side channel to mid channel */ /* move_bits = fac*targ_bits[1]; */ var move_bits = 0 | fac * .5 * (targ_bits[0] + targ_bits[1]);\n if (move_bits > $4SDnr.MAX_BITS_PER_CHANNEL - targ_bits[0]) move_bits = $4SDnr.MAX_BITS_PER_CHANNEL - targ_bits[0];\n if (move_bits < 0) move_bits = 0;\n if (targ_bits[1] >= 125) {\n /* dont reduce side channel below 125 bits */ if (targ_bits[1] - move_bits > 125) {\n /* if mid channel already has 2x more than average, dont bother */ /* mean_bits = bits per granule (for both channels) */ if (targ_bits[0] < mean_bits) targ_bits[0] += move_bits;\n targ_bits[1] -= move_bits;\n } else {\n targ_bits[0] += targ_bits[1] - 125;\n targ_bits[1] = 125;\n }\n }\n move_bits = targ_bits[0] + targ_bits[1];\n if (move_bits > max_bits) {\n targ_bits[0] = max_bits * targ_bits[0] / move_bits;\n targ_bits[1] = max_bits * targ_bits[1] / move_bits;\n }\n $5dfff05939c3cc74$var$assert(targ_bits[0] <= $4SDnr.MAX_BITS_PER_CHANNEL);\n $5dfff05939c3cc74$var$assert(targ_bits[1] <= $4SDnr.MAX_BITS_PER_CHANNEL);\n $5dfff05939c3cc74$var$assert(targ_bits[0] + targ_bits[1] <= $4SDnr.MAX_BITS_PER_GRANULE);\n };\n /**\n * Robert Hegemann 2001-04-27:\n * this adjusts the ATH, keeping the original noise floor\n * affects the higher frequencies more than the lower ones\n */ this.athAdjust = function(a, x, athFloor) {\n /*\n * work in progress\n */ var o = 90.30873362;\n var p = 94.82444863;\n var u = $5dfff05939c3cc74$var$Util.FAST_LOG10_X(x, 10.0);\n var v = a * a;\n var w = 0.0;\n u -= athFloor;\n /* undo scaling */ if (v > 1E-20) w = 1. + $5dfff05939c3cc74$var$Util.FAST_LOG10_X(v, 10.0 / o);\n if (w < 0) w = 0.;\n u *= w;\n u += athFloor + o - p;\n /* redo scaling */ return Math.pow(10., 0.1 * u);\n };\n /**\n * Calculate the allowed distortion for each scalefactor band, as determined\n * by the psychoacoustic model. xmin(sb) = ratio(sb) * en(sb) / bw(sb)\n *\n * returns number of sfb's with energy > ATH\n */ this.calc_xmin = function(gfp, ratio, cod_info, pxmin) {\n var pxminPos = 0;\n var gfc = gfp.internal_flags;\n var gsfb, j = 0, ath_over = 0;\n var ATH = gfc.ATH;\n var xr = cod_info.xr;\n var enable_athaa_fix = gfp.VBR == $5dfff05939c3cc74$var$VbrMode.vbr_mtrh ? 1 : 0;\n var masking_lower = gfc.masking_lower;\n if (gfp.VBR == $5dfff05939c3cc74$var$VbrMode.vbr_mtrh || gfp.VBR == $5dfff05939c3cc74$var$VbrMode.vbr_mt) /* was already done in PSY-Model */ masking_lower = 1.0;\n for(gsfb = 0; gsfb < cod_info.psy_lmax; gsfb++){\n var en0, xmin;\n var rh1, rh2;\n var width, l;\n if (gfp.VBR == $5dfff05939c3cc74$var$VbrMode.vbr_rh || gfp.VBR == $5dfff05939c3cc74$var$VbrMode.vbr_mtrh) xmin = athAdjust(ATH.adjust, ATH.l[gsfb], ATH.floor);\n else xmin = ATH.adjust * ATH.l[gsfb];\n width = cod_info.width[gsfb];\n rh1 = xmin / width;\n rh2 = DBL_EPSILON;\n l = width >> 1;\n en0 = 0.0;\n do {\n var xa, xb;\n xa = xr[j] * xr[j];\n en0 += xa;\n rh2 += xa < rh1 ? xa : rh1;\n j++;\n xb = xr[j] * xr[j];\n en0 += xb;\n rh2 += xb < rh1 ? xb : rh1;\n j++;\n }while (--l > 0);\n if (en0 > xmin) ath_over++;\n if (gsfb == $cPNKB.SBPSY_l) {\n var x = xmin * gfc.nsPsy.longfact[gsfb];\n if (rh2 < x) rh2 = x;\n }\n if (enable_athaa_fix != 0) xmin = rh2;\n if (!gfp.ATHonly) {\n var e = ratio.en.l[gsfb];\n if (e > 0.0) {\n var x;\n x = en0 * ratio.thm.l[gsfb] * masking_lower / e;\n if (enable_athaa_fix != 0) x *= gfc.nsPsy.longfact[gsfb];\n if (xmin < x) xmin = x;\n }\n }\n if (enable_athaa_fix != 0) pxmin[pxminPos++] = xmin;\n else pxmin[pxminPos++] = xmin * gfc.nsPsy.longfact[gsfb];\n }\n /* end of long block loop */ /* use this function to determine the highest non-zero coeff */ var max_nonzero = 575;\n if (cod_info.block_type != $cPNKB.SHORT_TYPE) {\n // NORM, START or STOP type, but not SHORT\n var k = 576;\n while(k-- != 0 && BitStream.EQ(xr[k], 0))max_nonzero = k;\n }\n cod_info.max_nonzero_coeff = max_nonzero;\n for(var sfb = cod_info.sfb_smin; gsfb < cod_info.psymax; sfb++, gsfb += 3){\n var width, b;\n var tmpATH;\n if (gfp.VBR == $5dfff05939c3cc74$var$VbrMode.vbr_rh || gfp.VBR == $5dfff05939c3cc74$var$VbrMode.vbr_mtrh) tmpATH = athAdjust(ATH.adjust, ATH.s[sfb], ATH.floor);\n else tmpATH = ATH.adjust * ATH.s[sfb];\n width = cod_info.width[gsfb];\n for(b = 0; b < 3; b++){\n var en0 = 0.0, xmin;\n var rh1, rh2;\n var l = width >> 1;\n rh1 = tmpATH / width;\n rh2 = DBL_EPSILON;\n do {\n var xa, xb;\n xa = xr[j] * xr[j];\n en0 += xa;\n rh2 += xa < rh1 ? xa : rh1;\n j++;\n xb = xr[j] * xr[j];\n en0 += xb;\n rh2 += xb < rh1 ? xb : rh1;\n j++;\n }while (--l > 0);\n if (en0 > tmpATH) ath_over++;\n if (sfb == $cPNKB.SBPSY_s) {\n var x = tmpATH * gfc.nsPsy.shortfact[sfb];\n if (rh2 < x) rh2 = x;\n }\n if (enable_athaa_fix != 0) xmin = rh2;\n else xmin = tmpATH;\n if (!gfp.ATHonly && !gfp.ATHshort) {\n var e = ratio.en.s[sfb][b];\n if (e > 0.0) {\n var x;\n x = en0 * ratio.thm.s[sfb][b] * masking_lower / e;\n if (enable_athaa_fix != 0) x *= gfc.nsPsy.shortfact[sfb];\n if (xmin < x) xmin = x;\n }\n }\n if (enable_athaa_fix != 0) pxmin[pxminPos++] = xmin;\n else pxmin[pxminPos++] = xmin * gfc.nsPsy.shortfact[sfb];\n }\n /* b */ if (gfp.useTemporal) {\n if (pxmin[pxminPos - 3] > pxmin[pxminPos - 3 + 1]) pxmin[pxminPos - 3 + 1] += (pxmin[pxminPos - 3] - pxmin[pxminPos - 3 + 1]) * gfc.decay;\n if (pxmin[pxminPos - 3 + 1] > pxmin[pxminPos - 3 + 2]) pxmin[pxminPos - 3 + 2] += (pxmin[pxminPos - 3 + 1] - pxmin[pxminPos - 3 + 2]) * gfc.decay;\n }\n }\n /* end of short block sfb loop */ return ath_over;\n };\n function StartLine(j) {\n this.s = j;\n }\n this.calc_noise_core = function(cod_info, startline, l, step) {\n var noise = 0;\n var j = startline.s;\n var ix = cod_info.l3_enc;\n if (j > cod_info.count1) while(l-- != 0){\n var temp;\n temp = cod_info.xr[j];\n j++;\n noise += temp * temp;\n temp = cod_info.xr[j];\n j++;\n noise += temp * temp;\n }\n else if (j > cod_info.big_values) {\n var ix01 = $5dfff05939c3cc74$var$new_float(2);\n ix01[0] = 0;\n ix01[1] = step;\n while(l-- != 0){\n var temp;\n temp = Math.abs(cod_info.xr[j]) - ix01[ix[j]];\n j++;\n noise += temp * temp;\n temp = Math.abs(cod_info.xr[j]) - ix01[ix[j]];\n j++;\n noise += temp * temp;\n }\n } else while(l-- != 0){\n var temp;\n temp = Math.abs(cod_info.xr[j]) - pow43[ix[j]] * step;\n j++;\n noise += temp * temp;\n temp = Math.abs(cod_info.xr[j]) - pow43[ix[j]] * step;\n j++;\n noise += temp * temp;\n }\n startline.s = j;\n return noise;\n };\n /**\n * <PRE>\n * -oo dB => -1.00\n * - 6 dB => -0.97\n * - 3 dB => -0.80\n * - 2 dB => -0.64\n * - 1 dB => -0.38\n * 0 dB => 0.00\n * + 1 dB => +0.49\n * + 2 dB => +1.06\n * + 3 dB => +1.68\n * + 6 dB => +3.69\n * +10 dB => +6.45\n * </PRE>\n */ this.calc_noise = function(cod_info, l3_xmin, distort, res, prev_noise) {\n var distortPos = 0;\n var l3_xminPos = 0;\n var sfb, l, over = 0;\n var over_noise_db = 0;\n /* 0 dB relative to masking */ var tot_noise_db = 0;\n /* -200 dB relative to masking */ var max_noise = -20;\n var j = 0;\n var scalefac = cod_info.scalefac;\n var scalefacPos = 0;\n res.over_SSD = 0;\n for(sfb = 0; sfb < cod_info.psymax; sfb++){\n var s = cod_info.global_gain - (scalefac[scalefacPos++] + (cod_info.preflag != 0 ? pretab[sfb] : 0) << cod_info.scalefac_scale + 1) - cod_info.subblock_gain[cod_info.window[sfb]] * 8;\n var noise = 0.0;\n if (prev_noise != null && prev_noise.step[sfb] == s) {\n /* use previously computed values */ noise = prev_noise.noise[sfb];\n j += cod_info.width[sfb];\n distort[distortPos++] = noise / l3_xmin[l3_xminPos++];\n noise = prev_noise.noise_log[sfb];\n } else {\n var step = POW20(s);\n l = cod_info.width[sfb] >> 1;\n if (j + cod_info.width[sfb] > cod_info.max_nonzero_coeff) {\n var usefullsize;\n usefullsize = cod_info.max_nonzero_coeff - j + 1;\n if (usefullsize > 0) l = usefullsize >> 1;\n else l = 0;\n }\n var sl = new StartLine(j);\n noise = this.calc_noise_core(cod_info, sl, l, step);\n j = sl.s;\n if (prev_noise != null) {\n /* save noise values */ prev_noise.step[sfb] = s;\n prev_noise.noise[sfb] = noise;\n }\n noise = distort[distortPos++] = noise / l3_xmin[l3_xminPos++];\n /* multiplying here is adding in dB, but can overflow */ noise = $5dfff05939c3cc74$var$Util.FAST_LOG10(Math.max(noise, 1E-20));\n if (prev_noise != null) /* save noise values */ prev_noise.noise_log[sfb] = noise;\n }\n if (prev_noise != null) /* save noise values */ prev_noise.global_gain = cod_info.global_gain;\n tot_noise_db += noise;\n if (noise > 0.0) {\n var tmp;\n tmp = Math.max(0 | noise * 10 + .5, 1);\n res.over_SSD += tmp * tmp;\n over++;\n /* multiplying here is adding in dB -but can overflow */ /* over_noise *= noise; */ over_noise_db += noise;\n }\n max_noise = Math.max(max_noise, noise);\n }\n res.over_count = over;\n res.tot_noise = tot_noise_db;\n res.over_noise = over_noise_db;\n res.max_noise = max_noise;\n return over;\n };\n /**\n * updates plotting data\n *\n * Mark Taylor 2000-??-??\n *\n * Robert Hegemann: moved noise/distortion calc into it\n */ this.set_pinfo = function(gfp, cod_info, ratio, gr, ch) {\n var gfc = gfp.internal_flags;\n var sfb, sfb2;\n var l;\n var en0, en1;\n var ifqstep = cod_info.scalefac_scale == 0 ? .5 : 1.0;\n var scalefac = cod_info.scalefac;\n var l3_xmin = $5dfff05939c3cc74$var$new_float(L3Side.SFBMAX);\n var xfsf = $5dfff05939c3cc74$var$new_float(L3Side.SFBMAX);\n var noise = new CalcNoiseResult();\n calc_xmin(gfp, ratio, cod_info, l3_xmin);\n calc_noise(cod_info, l3_xmin, xfsf, noise, null);\n var j = 0;\n sfb2 = cod_info.sfb_lmax;\n if (cod_info.block_type != $cPNKB.SHORT_TYPE && 0 == cod_info.mixed_block_flag) sfb2 = 22;\n for(sfb = 0; sfb < sfb2; sfb++){\n var start = gfc.scalefac_band.l[sfb];\n var end = gfc.scalefac_band.l[sfb + 1];\n var bw = end - start;\n for(en0 = 0.0; j < end; j++)en0 += cod_info.xr[j] * cod_info.xr[j];\n en0 /= bw;\n /* convert to MDCT units */ /* scaling so it shows up on FFT plot */ en1 = 1e15;\n gfc.pinfo.en[gr][ch][sfb] = en1 * en0;\n gfc.pinfo.xfsf[gr][ch][sfb] = en1 * l3_xmin[sfb] * xfsf[sfb] / bw;\n if (ratio.en.l[sfb] > 0 && !gfp.ATHonly) en0 = en0 / ratio.en.l[sfb];\n else en0 = 0.0;\n gfc.pinfo.thr[gr][ch][sfb] = en1 * Math.max(en0 * ratio.thm.l[sfb], gfc.ATH.l[sfb]);\n /* there is no scalefactor bands >= SBPSY_l */ gfc.pinfo.LAMEsfb[gr][ch][sfb] = 0;\n if (cod_info.preflag != 0 && sfb >= 11) gfc.pinfo.LAMEsfb[gr][ch][sfb] = -ifqstep * pretab[sfb];\n if (sfb < $cPNKB.SBPSY_l) {\n /* scfsi should be decoded by caller side */ $5dfff05939c3cc74$var$assert(scalefac[sfb] >= 0);\n gfc.pinfo.LAMEsfb[gr][ch][sfb] -= ifqstep * scalefac[sfb];\n }\n }\n /* for sfb */ if (cod_info.block_type == $cPNKB.SHORT_TYPE) {\n sfb2 = sfb;\n for(sfb = cod_info.sfb_smin; sfb < $cPNKB.SBMAX_s; sfb++){\n var start = gfc.scalefac_band.s[sfb];\n var end = gfc.scalefac_band.s[sfb + 1];\n var bw = end - start;\n for(var i = 0; i < 3; i++){\n for(en0 = 0.0, l = start; l < end; l++){\n en0 += cod_info.xr[j] * cod_info.xr[j];\n j++;\n }\n en0 = Math.max(en0 / bw, 1e-20);\n /* convert to MDCT units */ /* scaling so it shows up on FFT plot */ en1 = 1e15;\n gfc.pinfo.en_s[gr][ch][3 * sfb + i] = en1 * en0;\n gfc.pinfo.xfsf_s[gr][ch][3 * sfb + i] = en1 * l3_xmin[sfb2] * xfsf[sfb2] / bw;\n if (ratio.en.s[sfb][i] > 0) en0 = en0 / ratio.en.s[sfb][i];\n else en0 = 0.0;\n if (gfp.ATHonly || gfp.ATHshort) en0 = 0;\n gfc.pinfo.thr_s[gr][ch][3 * sfb + i] = en1 * Math.max(en0 * ratio.thm.s[sfb][i], gfc.ATH.s[sfb]);\n /* there is no scalefactor bands >= SBPSY_s */ gfc.pinfo.LAMEsfb_s[gr][ch][3 * sfb + i] = -2 * cod_info.subblock_gain[i];\n if (sfb < $cPNKB.SBPSY_s) gfc.pinfo.LAMEsfb_s[gr][ch][3 * sfb + i] -= ifqstep * scalefac[sfb2];\n sfb2++;\n }\n }\n }\n /* block type short */ gfc.pinfo.LAMEqss[gr][ch] = cod_info.global_gain;\n gfc.pinfo.LAMEmainbits[gr][ch] = cod_info.part2_3_length + cod_info.part2_length;\n gfc.pinfo.LAMEsfbits[gr][ch] = cod_info.part2_length;\n gfc.pinfo.over[gr][ch] = noise.over_count;\n gfc.pinfo.max_noise[gr][ch] = noise.max_noise * 10.0;\n gfc.pinfo.over_noise[gr][ch] = noise.over_noise * 10.0;\n gfc.pinfo.tot_noise[gr][ch] = noise.tot_noise * 10.0;\n gfc.pinfo.over_SSD[gr][ch] = noise.over_SSD;\n };\n /**\n * updates plotting data for a whole frame\n *\n * Robert Hegemann 2000-10-21\n */ function set_frame_pinfo(gfp, ratio) {\n var gfc = gfp.internal_flags;\n gfc.masking_lower = 1.0;\n /*\n * for every granule and channel patch l3_enc and set info\n */ for(var gr = 0; gr < gfc.mode_gr; gr++)for(var ch = 0; ch < gfc.channels_out; ch++){\n var cod_info = gfc.l3_side.tt[gr][ch];\n var scalefac_sav = $5dfff05939c3cc74$var$new_int(L3Side.SFBMAX);\n $5dfff05939c3cc74$var$System.arraycopy(cod_info.scalefac, 0, scalefac_sav, 0, scalefac_sav.length);\n /*\n * reconstruct the scalefactors in case SCFSI was used\n */ if (gr == 1) {\n var sfb;\n for(sfb = 0; sfb < cod_info.sfb_lmax; sfb++)if (cod_info.scalefac[sfb] < 0) /* scfsi */ cod_info.scalefac[sfb] = gfc.l3_side.tt[0][ch].scalefac[sfb];\n }\n set_pinfo(gfp, cod_info, ratio[gr][ch], gr, ch);\n $5dfff05939c3cc74$var$System.arraycopy(scalefac_sav, 0, cod_info.scalefac, 0, scalefac_sav.length);\n }\n /* for gr */ }\n}\nmodule.exports = $5dfff05939c3cc74$var$QuantizePVT;\n\n});\n\n\n\n\nvar $dd7ee3788d91dcb8$exports = {};\n\n$parcel$export($dd7ee3788d91dcb8$exports, \"Mp3Encoder\", () => $dd7ee3788d91dcb8$export$9ca5d136ebf61cf2, (v) => $dd7ee3788d91dcb8$export$9ca5d136ebf61cf2 = v);\n$parcel$export($dd7ee3788d91dcb8$exports, \"WavHeader\", () => $dd7ee3788d91dcb8$export$cb948f2d6837f136, (v) => $dd7ee3788d91dcb8$export$cb948f2d6837f136 = v);\nvar $dd7ee3788d91dcb8$export$9ca5d136ebf61cf2;\nvar $dd7ee3788d91dcb8$export$cb948f2d6837f136;\n\nvar $3YDN3 = parcelRequire(\"3YDN3\");\nvar $dd7ee3788d91dcb8$var$System = $3YDN3.System;\nvar $dd7ee3788d91dcb8$var$VbrMode = $3YDN3.VbrMode;\nvar $dd7ee3788d91dcb8$var$Float = $3YDN3.Float;\nvar $dd7ee3788d91dcb8$var$ShortBlock = $3YDN3.ShortBlock;\nvar $dd7ee3788d91dcb8$var$Util = $3YDN3.Util;\nvar $dd7ee3788d91dcb8$var$Arrays = $3YDN3.Arrays;\nvar $dd7ee3788d91dcb8$var$new_array_n = $3YDN3.new_array_n;\nvar $dd7ee3788d91dcb8$var$new_byte = $3YDN3.new_byte;\nvar $dd7ee3788d91dcb8$var$new_double = $3YDN3.new_double;\nvar $dd7ee3788d91dcb8$var$new_float = $3YDN3.new_float;\nvar $dd7ee3788d91dcb8$var$new_float_n = $3YDN3.new_float_n;\nvar $dd7ee3788d91dcb8$var$new_int = $3YDN3.new_int;\nvar $dd7ee3788d91dcb8$var$new_int_n = $3YDN3.new_int_n;\nvar $dd7ee3788d91dcb8$var$assert = $3YDN3.assert;\n\nvar $kk1yk = parcelRequire(\"kk1yk\");\nvar $7960aab77e945546$exports = {};\n\nvar $3YDN3 = parcelRequire(\"3YDN3\");\nvar $7960aab77e945546$var$System = $3YDN3.System;\nvar $7960aab77e945546$var$VbrMode = $3YDN3.VbrMode;\nvar $7960aab77e945546$var$Float = $3YDN3.Float;\nvar $7960aab77e945546$var$ShortBlock = $3YDN3.ShortBlock;\nvar $7960aab77e945546$var$Util = $3YDN3.Util;\nvar $7960aab77e945546$var$Arrays = $3YDN3.Arrays;\nvar $7960aab77e945546$var$new_array_n = $3YDN3.new_array_n;\nvar $7960aab77e945546$var$new_byte = $3YDN3.new_byte;\nvar $7960aab77e945546$var$new_double = $3YDN3.new_double;\nvar $7960aab77e945546$var$new_float = $3YDN3.new_float;\nvar $7960aab77e945546$var$new_float_n = $3YDN3.new_float_n;\nvar $7960aab77e945546$var$new_int = $3YDN3.new_int;\nvar $7960aab77e945546$var$new_int_n = $3YDN3.new_int_n;\nvar $7960aab77e945546$var$assert = $3YDN3.assert;\n\nfunction $7960aab77e945546$var$Presets() {\n var Lame = (parcelRequire(\"kk1yk\"));\n function VBRPresets(qual, comp, compS, y, shThreshold, shThresholdS, adj, adjShort, lower, curve, sens, inter, joint, mod, fix) {\n this.vbr_q = qual;\n this.quant_comp = comp;\n this.quant_comp_s = compS;\n this.expY = y;\n this.st_lrm = shThreshold;\n this.st_s = shThresholdS;\n this.masking_adj = adj;\n this.masking_adj_short = adjShort;\n this.ath_lower = lower;\n this.ath_curve = curve;\n this.ath_sensitivity = sens;\n this.interch = inter;\n this.safejoint = joint;\n this.sfb21mod = mod;\n this.msfix = fix;\n }\n function ABRPresets(kbps, comp, compS, joint, fix, shThreshold, shThresholdS, bass, sc, mask, lower, curve, interCh, sfScale) {\n this.quant_comp = comp;\n this.quant_comp_s = compS;\n this.safejoint = joint;\n this.nsmsfix = fix;\n this.st_lrm = shThreshold;\n this.st_s = shThresholdS;\n this.nsbass = bass;\n this.scale = sc;\n this.masking_adj = mask;\n this.ath_lower = lower;\n this.ath_curve = curve;\n this.interch = interCh;\n this.sfscale = sfScale;\n }\n var lame;\n this.setModules = function(_lame) {\n lame = _lame;\n };\n /**\n * <PRE>\n * Switch mappings for VBR mode VBR_RH\n * vbr_q qcomp_l qcomp_s expY st_lrm st_s mask adj_l adj_s ath_lower ath_curve ath_sens interChR safejoint sfb21mod msfix\n * </PRE>\n */ var vbr_old_switch_map = [\n new VBRPresets(0, 9, 9, 0, 5.20, 125.0, -4.2, -6.3, 4.8, 1, 0, 0, 2, 21, 0.97),\n new VBRPresets(1, 9, 9, 0, 5.30, 125.0, -3.6, -5.6, 4.5, 1.5, 0, 0, 2, 21, 1.35),\n new VBRPresets(2, 9, 9, 0, 5.60, 125.0, -2.2, -3.5, 2.8, 2, 0, 0, 2, 21, 1.49),\n new VBRPresets(3, 9, 9, 1, 5.80, 130.0, -1.8, -2.8, 2.6, 3, -4, 0, 2, 20, 1.64),\n new VBRPresets(4, 9, 9, 1, 6.00, 135.0, -0.7, -1.1, 1.1, 3.5, -8, 0, 2, 0, 1.79),\n new VBRPresets(5, 9, 9, 1, 6.40, 140.0, 0.5, 0.4, -7.5, 4, -12, 0.0002, 0, 0, 1.95),\n new VBRPresets(6, 9, 9, 1, 6.60, 145.0, 0.67, 0.65, -14.7, 6.5, -19, 0.0004, 0, 0, 2.30),\n new VBRPresets(7, 9, 9, 1, 6.60, 145.0, 0.8, 0.75, -19.7, 8, -22, 0.0006, 0, 0, 2.70),\n new VBRPresets(8, 9, 9, 1, 6.60, 145.0, 1.2, 1.15, -27.5, 10, -23, 0.0007, 0, 0, 0),\n new VBRPresets(9, 9, 9, 1, 6.60, 145.0, 1.6, 1.6, -36, 11, -25, 0.0008, 0, 0, 0),\n new VBRPresets(10, 9, 9, 1, 6.60, 145.0, 2.0, 2.0, -36, 12, -25, 0.0008, 0, 0, 0)\n ];\n /**\n * <PRE>\n * vbr_q qcomp_l qcomp_s expY st_lrm st_s mask adj_l adj_s ath_lower ath_curve ath_sens interChR safejoint sfb21mod msfix\n * </PRE>\n */ var vbr_psy_switch_map = [\n new VBRPresets(0, 9, 9, 0, 4.20, 25.0, -7, -4, 7.5, 1, 0, 0, 2, 26, 0.97),\n new VBRPresets(1, 9, 9, 0, 4.20, 25.0, -5.6, -3.6, 4.5, 1.5, 0, 0, 2, 21, 1.35),\n new VBRPresets(2, 9, 9, 0, 4.20, 25.0, -4.4, -1.8, 2, 2, 0, 0, 2, 18, 1.49),\n new VBRPresets(3, 9, 9, 1, 4.20, 25.0, -3.4, -1.25, 1.1, 3, -4, 0, 2, 15, 1.64),\n new VBRPresets(4, 9, 9, 1, 4.20, 25.0, -2.2, 0.1, 0, 3.5, -8, 0, 2, 0, 1.79),\n new VBRPresets(5, 9, 9, 1, 4.20, 25.0, -1, 1.65, -7.7, 4, -12, 0.0002, 0, 0, 1.95),\n new VBRPresets(6, 9, 9, 1, 4.20, 25.0, -0, 2.47, -7.7, 6.5, -19, 0.0004, 0, 0, 2),\n new VBRPresets(7, 9, 9, 1, 4.20, 25.0, 0.5, 2.0, -14.5, 8, -22, 0.0006, 0, 0, 2),\n new VBRPresets(8, 9, 9, 1, 4.20, 25.0, 1.0, 2.4, -22, 10, -23, 0.0007, 0, 0, 2),\n new VBRPresets(9, 9, 9, 1, 4.20, 25.0, 1.5, 2.95, -30, 11, -25, 0.0008, 0, 0, 2),\n new VBRPresets(10, 9, 9, 1, 4.20, 25.0, 2.0, 2.95, -36, 12, -30, 0.0008, 0, 0, 2)\n ];\n function apply_vbr_preset(gfp, a, enforce) {\n var vbr_preset = gfp.VBR == $7960aab77e945546$var$VbrMode.vbr_rh ? vbr_old_switch_map : vbr_psy_switch_map;\n var x = gfp.VBR_q_frac;\n var p = vbr_preset[a];\n var q = vbr_preset[a + 1];\n var set = p;\n // NOOP(vbr_q);\n // NOOP(quant_comp);\n // NOOP(quant_comp_s);\n // NOOP(expY);\n p.st_lrm = p.st_lrm + x * (q.st_lrm - p.st_lrm);\n // LERP(st_lrm);\n p.st_s = p.st_s + x * (q.st_s - p.st_s);\n // LERP(st_s);\n p.masking_adj = p.masking_adj + x * (q.masking_adj - p.masking_adj);\n // LERP(masking_adj);\n p.masking_adj_short = p.masking_adj_short + x * (q.masking_adj_short - p.masking_adj_short);\n // LERP(masking_adj_short);\n p.ath_lower = p.ath_lower + x * (q.ath_lower - p.ath_lower);\n // LERP(ath_lower);\n p.ath_curve = p.ath_curve + x * (q.ath_curve - p.ath_curve);\n // LERP(ath_curve);\n p.ath_sensitivity = p.ath_sensitivity + x * (q.ath_sensitivity - p.ath_sensitivity);\n // LERP(ath_sensitivity);\n p.interch = p.interch + x * (q.interch - p.interch);\n // LERP(interch);\n // NOOP(safejoint);\n // NOOP(sfb21mod);\n p.msfix = p.msfix + x * (q.msfix - p.msfix);\n // LERP(msfix);\n lame_set_VBR_q(gfp, set.vbr_q);\n if (enforce != 0) gfp.quant_comp = set.quant_comp;\n else if (!(Math.abs(gfp.quant_comp - -1) > 0)) gfp.quant_comp = set.quant_comp;\n // SET_OPTION(quant_comp, set.quant_comp, -1);\n if (enforce != 0) gfp.quant_comp_short = set.quant_comp_s;\n else if (!(Math.abs(gfp.quant_comp_short - -1) > 0)) gfp.quant_comp_short = set.quant_comp_s;\n // SET_OPTION(quant_comp_short, set.quant_comp_s, -1);\n if (set.expY != 0) gfp.experimentalY = set.expY != 0;\n if (enforce != 0) gfp.internal_flags.nsPsy.attackthre = set.st_lrm;\n else if (!(Math.abs(gfp.internal_flags.nsPsy.attackthre - -1) > 0)) gfp.internal_flags.nsPsy.attackthre = set.st_lrm;\n // SET_OPTION(short_threshold_lrm, set.st_lrm, -1);\n if (enforce != 0) gfp.internal_flags.nsPsy.attackthre_s = set.st_s;\n else if (!(Math.abs(gfp.internal_flags.nsPsy.attackthre_s - -1) > 0)) gfp.internal_flags.nsPsy.attackthre_s = set.st_s;\n // SET_OPTION(short_threshold_s, set.st_s, -1);\n if (enforce != 0) gfp.maskingadjust = set.masking_adj;\n else if (!(Math.abs(gfp.maskingadjust - 0) > 0)) gfp.maskingadjust = set.masking_adj;\n // SET_OPTION(maskingadjust, set.masking_adj, 0);\n if (enforce != 0) gfp.maskingadjust_short = set.masking_adj_short;\n else if (!(Math.abs(gfp.maskingadjust_short - 0) > 0)) gfp.maskingadjust_short = set.masking_adj_short;\n // SET_OPTION(maskingadjust_short, set.masking_adj_short, 0);\n if (enforce != 0) gfp.ATHlower = -set.ath_lower / 10.0;\n else if (!(Math.abs(-gfp.ATHlower * 10.0 - 0) > 0)) gfp.ATHlower = -set.ath_lower / 10.0;\n // SET_OPTION(ATHlower, set.ath_lower, 0);\n if (enforce != 0) gfp.ATHcurve = set.ath_curve;\n else if (!(Math.abs(gfp.ATHcurve - -1) > 0)) gfp.ATHcurve = set.ath_curve;\n // SET_OPTION(ATHcurve, set.ath_curve, -1);\n if (enforce != 0) gfp.athaa_sensitivity = set.ath_sensitivity;\n else if (!(Math.abs(gfp.athaa_sensitivity - -1) > 0)) gfp.athaa_sensitivity = set.ath_sensitivity;\n // SET_OPTION(athaa_sensitivity, set.ath_sensitivity, 0);\n if (set.interch > 0) {\n if (enforce != 0) gfp.interChRatio = set.interch;\n else if (!(Math.abs(gfp.interChRatio - -1) > 0)) gfp.interChRatio = set.interch;\n // SET_OPTION(interChRatio, set.interch, -1);\n }\n /* parameters for which there is no proper set/get interface */ if (set.safejoint > 0) gfp.exp_nspsytune = gfp.exp_nspsytune | set.safejoint;\n if (set.sfb21mod > 0) gfp.exp_nspsytune = gfp.exp_nspsytune | set.sfb21mod << 20;\n if (enforce != 0) gfp.msfix = set.msfix;\n else if (!(Math.abs(gfp.msfix - -1) > 0)) gfp.msfix = set.msfix;\n // SET_OPTION(msfix, set.msfix, -1);\n if (enforce == 0) {\n gfp.VBR_q = a;\n gfp.VBR_q_frac = x;\n }\n }\n /**\n * <PRE>\n * Switch mappings for ABR mode\n *\n * kbps quant q_s safejoint nsmsfix st_lrm st_s ns-bass scale msk ath_lwr ath_curve interch , sfscale\n * </PRE>\n */ var abr_switch_map = [\n new ABRPresets(8, 9, 9, 0, 0, 6.60, 145, 0, 0.95, 0, -30, 11, 0.0012, 1),\n /* 8, impossible to use in stereo */ new ABRPresets(16, 9, 9, 0, 0, 6.60, 145, 0, 0.95, 0, -25, 11, 0.0010, 1),\n /* 16 */ new ABRPresets(24, 9, 9, 0, 0, 6.60, 145, 0, 0.95, 0, -20, 11, 0.0010, 1),\n /* 24 */ new ABRPresets(32, 9, 9, 0, 0, 6.60, 145, 0, 0.95, 0, -15, 11, 0.0010, 1),\n /* 32 */ new ABRPresets(40, 9, 9, 0, 0, 6.60, 145, 0, 0.95, 0, -10, 11, 0.0009, 1),\n /* 40 */ new ABRPresets(48, 9, 9, 0, 0, 6.60, 145, 0, 0.95, 0, -10, 11, 0.0009, 1),\n /* 48 */ new ABRPresets(56, 9, 9, 0, 0, 6.60, 145, 0, 0.95, 0, -6, 11, 0.0008, 1),\n /* 56 */ new ABRPresets(64, 9, 9, 0, 0, 6.60, 145, 0, 0.95, 0, -2, 11, 0.0008, 1),\n /* 64 */ new ABRPresets(80, 9, 9, 0, 0, 6.60, 145, 0, 0.95, 0, .0, 8, 0.0007, 1),\n /* 80 */ new ABRPresets(96, 9, 9, 0, 2.50, 6.60, 145, 0, 0.95, 0, 1.0, 5.5, 0.0006, 1),\n /* 96 */ new ABRPresets(112, 9, 9, 0, 2.25, 6.60, 145, 0, 0.95, 0, 2.0, 4.5, 0.0005, 1),\n /* 112 */ new ABRPresets(128, 9, 9, 0, 1.95, 6.40, 140, 0, 0.95, 0, 3.0, 4, 0.0002, 1),\n /* 128 */ new ABRPresets(160, 9, 9, 1, 1.79, 6.00, 135, 0, 0.95, -2, 5.0, 3.5, 0, 1),\n /* 160 */ new ABRPresets(192, 9, 9, 1, 1.49, 5.60, 125, 0, 0.97, -4, 7.0, 3, 0, 0),\n /* 192 */ new ABRPresets(224, 9, 9, 1, 1.25, 5.20, 125, 0, 0.98, -6, 9.0, 2, 0, 0),\n /* 224 */ new ABRPresets(256, 9, 9, 1, 0.97, 5.20, 125, 0, 1.00, -8, 10.0, 1, 0, 0),\n /* 256 */ new ABRPresets(320, 9, 9, 1, 0.90, 5.20, 125, 0, 1.00, -10, 12.0, 0, 0, 0)\n ];\n function apply_abr_preset(gfp, preset, enforce) {\n /* Variables for the ABR stuff */ var actual_bitrate = preset;\n var r = lame.nearestBitrateFullIndex(preset);\n gfp.VBR = $7960aab77e945546$var$VbrMode.vbr_abr;\n gfp.VBR_mean_bitrate_kbps = actual_bitrate;\n gfp.VBR_mean_bitrate_kbps = Math.min(gfp.VBR_mean_bitrate_kbps, 320);\n gfp.VBR_mean_bitrate_kbps = Math.max(gfp.VBR_mean_bitrate_kbps, 8);\n gfp.brate = gfp.VBR_mean_bitrate_kbps;\n if (gfp.VBR_mean_bitrate_kbps > 320) gfp.disable_reservoir = true;\n /* parameters for which there is no proper set/get interface */ if (abr_switch_map[r].safejoint > 0) gfp.exp_nspsytune = gfp.exp_nspsytune | 2;\n /* safejoint */ if (abr_switch_map[r].sfscale > 0) gfp.internal_flags.noise_shaping = 2;\n /* ns-bass tweaks */ if (Math.abs(abr_switch_map[r].nsbass) > 0) {\n var k = int(abr_switch_map[r].nsbass * 4);\n if (k < 0) k += 64;\n gfp.exp_nspsytune = gfp.exp_nspsytune | k << 2;\n }\n if (enforce != 0) gfp.quant_comp = abr_switch_map[r].quant_comp;\n else if (!(Math.abs(gfp.quant_comp - -1) > 0)) gfp.quant_comp = abr_switch_map[r].quant_comp;\n // SET_OPTION(quant_comp, abr_switch_map[r].quant_comp, -1);\n if (enforce != 0) gfp.quant_comp_short = abr_switch_map[r].quant_comp_s;\n else if (!(Math.abs(gfp.quant_comp_short - -1) > 0)) gfp.quant_comp_short = abr_switch_map[r].quant_comp_s;\n // SET_OPTION(quant_comp_short, abr_switch_map[r].quant_comp_s, -1);\n if (enforce != 0) gfp.msfix = abr_switch_map[r].nsmsfix;\n else if (!(Math.abs(gfp.msfix - -1) > 0)) gfp.msfix = abr_switch_map[r].nsmsfix;\n // SET_OPTION(msfix, abr_switch_map[r].nsmsfix, -1);\n if (enforce != 0) gfp.internal_flags.nsPsy.attackthre = abr_switch_map[r].st_lrm;\n else if (!(Math.abs(gfp.internal_flags.nsPsy.attackthre - -1) > 0)) gfp.internal_flags.nsPsy.attackthre = abr_switch_map[r].st_lrm;\n // SET_OPTION(short_threshold_lrm, abr_switch_map[r].st_lrm, -1);\n if (enforce != 0) gfp.internal_flags.nsPsy.attackthre_s = abr_switch_map[r].st_s;\n else if (!(Math.abs(gfp.internal_flags.nsPsy.attackthre_s - -1) > 0)) gfp.internal_flags.nsPsy.attackthre_s = abr_switch_map[r].st_s;\n // SET_OPTION(short_threshold_s, abr_switch_map[r].st_s, -1);\n /*\n * ABR seems to have big problems with clipping, especially at low\n * bitrates\n */ /*\n * so we compensate for that here by using a scale value depending on\n * bitrate\n */ if (enforce != 0) gfp.scale = abr_switch_map[r].scale;\n else if (!(Math.abs(gfp.scale - -1) > 0)) gfp.scale = abr_switch_map[r].scale;\n // SET_OPTION(scale, abr_switch_map[r].scale, -1);\n if (enforce != 0) gfp.maskingadjust = abr_switch_map[r].masking_adj;\n else if (!(Math.abs(gfp.maskingadjust - 0) > 0)) gfp.maskingadjust = abr_switch_map[r].masking_adj;\n // SET_OPTION(maskingadjust, abr_switch_map[r].masking_adj, 0);\n if (abr_switch_map[r].masking_adj > 0) {\n if (enforce != 0) gfp.maskingadjust_short = abr_switch_map[r].masking_adj * .9;\n else if (!(Math.abs(gfp.maskingadjust_short - 0) > 0)) gfp.maskingadjust_short = abr_switch_map[r].masking_adj * .9;\n // SET_OPTION(maskingadjust_short, abr_switch_map[r].masking_adj *\n // .9, 0);\n } else {\n if (enforce != 0) gfp.maskingadjust_short = abr_switch_map[r].masking_adj * 1.1;\n else if (!(Math.abs(gfp.maskingadjust_short - 0) > 0)) gfp.maskingadjust_short = abr_switch_map[r].masking_adj * 1.1;\n // SET_OPTION(maskingadjust_short, abr_switch_map[r].masking_adj *\n // 1.1, 0);\n }\n if (enforce != 0) gfp.ATHlower = -abr_switch_map[r].ath_lower / 10.;\n else if (!(Math.abs(-gfp.ATHlower * 10. - 0) > 0)) gfp.ATHlower = -abr_switch_map[r].ath_lower / 10.;\n // SET_OPTION(ATHlower, abr_switch_map[r].ath_lower, 0);\n if (enforce != 0) gfp.ATHcurve = abr_switch_map[r].ath_curve;\n else if (!(Math.abs(gfp.ATHcurve - -1) > 0)) gfp.ATHcurve = abr_switch_map[r].ath_curve;\n // SET_OPTION(ATHcurve, abr_switch_map[r].ath_curve, -1);\n if (enforce != 0) gfp.interChRatio = abr_switch_map[r].interch;\n else if (!(Math.abs(gfp.interChRatio - -1) > 0)) gfp.interChRatio = abr_switch_map[r].interch;\n // SET_OPTION(interChRatio, abr_switch_map[r].interch, -1);\n return preset;\n }\n this.apply_preset = function(gfp, preset, enforce) {\n /* translate legacy presets */ switch(preset){\n case Lame.R3MIX:\n preset = Lame.V3;\n gfp.VBR = $7960aab77e945546$var$VbrMode.vbr_mtrh;\n break;\n case Lame.MEDIUM:\n preset = Lame.V4;\n gfp.VBR = $7960aab77e945546$var$VbrMode.vbr_rh;\n break;\n case Lame.MEDIUM_FAST:\n preset = Lame.V4;\n gfp.VBR = $7960aab77e945546$var$VbrMode.vbr_mtrh;\n break;\n case Lame.STANDARD:\n preset = Lame.V2;\n gfp.VBR = $7960aab77e945546$var$VbrMode.vbr_rh;\n break;\n case Lame.STANDARD_FAST:\n preset = Lame.V2;\n gfp.VBR = $7960aab77e945546$var$VbrMode.vbr_mtrh;\n break;\n case Lame.EXTREME:\n preset = Lame.V0;\n gfp.VBR = $7960aab77e945546$var$VbrMode.vbr_rh;\n break;\n case Lame.EXTREME_FAST:\n preset = Lame.V0;\n gfp.VBR = $7960aab77e945546$var$VbrMode.vbr_mtrh;\n break;\n case Lame.INSANE:\n preset = 320;\n gfp.preset = preset;\n apply_abr_preset(gfp, preset, enforce);\n gfp.VBR = $7960aab77e945546$var$VbrMode.vbr_off;\n return preset;\n }\n gfp.preset = preset;\n switch(preset){\n case Lame.V9:\n apply_vbr_preset(gfp, 9, enforce);\n return preset;\n case Lame.V8:\n apply_vbr_preset(gfp, 8, enforce);\n return preset;\n case Lame.V7:\n apply_vbr_preset(gfp, 7, enforce);\n return preset;\n case Lame.V6:\n apply_vbr_preset(gfp, 6, enforce);\n return preset;\n case Lame.V5:\n apply_vbr_preset(gfp, 5, enforce);\n return preset;\n case Lame.V4:\n apply_vbr_preset(gfp, 4, enforce);\n return preset;\n case Lame.V3:\n apply_vbr_preset(gfp, 3, enforce);\n return preset;\n case Lame.V2:\n apply_vbr_preset(gfp, 2, enforce);\n return preset;\n case Lame.V1:\n apply_vbr_preset(gfp, 1, enforce);\n return preset;\n case Lame.V0:\n apply_vbr_preset(gfp, 0, enforce);\n return preset;\n default:\n break;\n }\n if (8 <= preset && preset <= 320) return apply_abr_preset(gfp, preset, enforce);\n /* no corresponding preset found */ gfp.preset = 0;\n return preset;\n };\n // Rest from getset.c:\n /**\n * VBR quality level.<BR>\n * 0 = highest<BR>\n * 9 = lowest\n */ function lame_set_VBR_q(gfp, VBR_q) {\n var ret = 0;\n if (0 > VBR_q) {\n /* Unknown VBR quality level! */ ret = -1;\n VBR_q = 0;\n }\n if (9 < VBR_q) {\n ret = -1;\n VBR_q = 9;\n }\n gfp.VBR_q = VBR_q;\n gfp.VBR_q_frac = 0;\n return ret;\n }\n}\n$7960aab77e945546$exports = $7960aab77e945546$var$Presets;\n\n\n\nvar $b8dhq = parcelRequire(\"b8dhq\");\n\nvar $84mea = parcelRequire(\"84mea\");\nvar $df08f3a0d41b7a78$exports = {};\n/*\n * MP3 quantization\n *\n * Copyright (c) 1999-2000 Mark Taylor\n * Copyright (c) 1999-2003 Takehiro Tominaga\n * Copyright (c) 2000-2007 Robert Hegemann\n * Copyright (c) 2001-2005 Gabriel Bouvigne\n *\n * This library is free software; you can redistribute it and/or\n * modify it under the terms of the GNU Lesser General Public\n * License as published by the Free Software Foundation; either\n * version 2 of the License, or (at your option) any later version.\n *\n * This library is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Library General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this library; if not, write to the\n * Free Software Foundation, Inc., 59 Temple Place - Suite 330,\n * Boston, MA 02111-1307, USA.\n */ /* $Id: Quantize.java,v 1.24 2011/05/24 20:48:06 kenchis Exp $ */ //package mp3;\n//import java.util.Arrays;\n\nvar $3YDN3 = parcelRequire(\"3YDN3\");\nvar $df08f3a0d41b7a78$var$System = $3YDN3.System;\nvar $df08f3a0d41b7a78$var$VbrMode = $3YDN3.VbrMode;\nvar $df08f3a0d41b7a78$var$Float = $3YDN3.Float;\nvar $df08f3a0d41b7a78$var$ShortBlock = $3YDN3.ShortBlock;\nvar $df08f3a0d41b7a78$var$Util = $3YDN3.Util;\nvar $df08f3a0d41b7a78$var$Arrays = $3YDN3.Arrays;\nvar $df08f3a0d41b7a78$var$new_array_n = $3YDN3.new_array_n;\nvar $df08f3a0d41b7a78$var$new_byte = $3YDN3.new_byte;\nvar $df08f3a0d41b7a78$var$new_double = $3YDN3.new_double;\nvar $df08f3a0d41b7a78$var$new_float = $3YDN3.new_float;\nvar $df08f3a0d41b7a78$var$new_float_n = $3YDN3.new_float_n;\nvar $df08f3a0d41b7a78$var$new_int = $3YDN3.new_int;\nvar $df08f3a0d41b7a78$var$new_int_n = $3YDN3.new_int_n;\nvar $df08f3a0d41b7a78$var$assert = $3YDN3.assert;\nvar $225800021a714f05$exports = {};\nfunction $225800021a714f05$var$VBRQuantize() {\n var qupvt;\n var tak;\n this.setModules = function(_qupvt, _tk) {\n qupvt = _qupvt;\n tak = _tk;\n };\n//TODO\n}\n$225800021a714f05$exports = $225800021a714f05$var$VBRQuantize;\n\n\nvar $3afa85f14aff627b$exports = {};\n//package mp3;\nfunction $3afa85f14aff627b$var$CalcNoiseResult() {\n /**\n * sum of quantization noise > masking\n */ this.over_noise = 0.;\n /**\n * sum of all quantization noise\n */ this.tot_noise = 0.;\n /**\n * max quantization noise\n */ this.max_noise = 0.;\n /**\n * number of quantization noise > masking\n */ this.over_count = 0;\n /**\n * SSD-like cost of distorted bands\n */ this.over_SSD = 0;\n this.bits = 0;\n}\n$3afa85f14aff627b$exports = $3afa85f14aff627b$var$CalcNoiseResult;\n\n\nvar $4fc41bdea3aedc83$exports = {};\n\nvar $3YDN3 = parcelRequire(\"3YDN3\");\nvar $4fc41bdea3aedc83$var$new_float = $3YDN3.new_float;\nvar $4fc41bdea3aedc83$var$new_int = $3YDN3.new_int;\nvar $4fc41bdea3aedc83$var$assert = $3YDN3.assert;\nfunction $4fc41bdea3aedc83$var$CalcNoiseData() {\n this.global_gain = 0;\n this.sfb_count1 = 0;\n this.step = $4fc41bdea3aedc83$var$new_int(39);\n this.noise = $4fc41bdea3aedc83$var$new_float(39);\n this.noise_log = $4fc41bdea3aedc83$var$new_float(39);\n}\n$4fc41bdea3aedc83$exports = $4fc41bdea3aedc83$var$CalcNoiseData;\n\n\n\nvar $cPNKB = parcelRequire(\"cPNKB\");\n\nvar $7weBo = parcelRequire(\"7weBo\");\n\nvar $arIi9 = parcelRequire(\"arIi9\");\nfunction $df08f3a0d41b7a78$var$Quantize() {\n var bs;\n this.rv = null;\n var rv;\n this.qupvt = null;\n var qupvt;\n var vbr = new $225800021a714f05$exports();\n var tk;\n this.setModules = function(_bs, _rv, _qupvt, _tk) {\n bs = _bs;\n rv = _rv;\n this.rv = _rv;\n qupvt = _qupvt;\n this.qupvt = _qupvt;\n tk = _tk;\n vbr.setModules(qupvt, tk);\n };\n /**\n * convert from L/R <. Mid/Side\n */ this.ms_convert = function(l3_side, gr) {\n for(var i = 0; i < 576; ++i){\n var l = l3_side.tt[gr][0].xr[i];\n var r = l3_side.tt[gr][1].xr[i];\n l3_side.tt[gr][0].xr[i] = (l + r) * ($df08f3a0d41b7a78$var$Util.SQRT2 * 0.5);\n l3_side.tt[gr][1].xr[i] = (l - r) * ($df08f3a0d41b7a78$var$Util.SQRT2 * 0.5);\n }\n };\n /**\n * mt 6/99\n *\n * initializes cod_info, scalefac and xrpow\n *\n * returns 0 if all energies in xr are zero, else 1\n */ function init_xrpow_core(cod_info, xrpow, upper, sum) {\n sum = 0;\n for(var i = 0; i <= upper; ++i){\n var tmp = Math.abs(cod_info.xr[i]);\n sum += tmp;\n xrpow[i] = Math.sqrt(tmp * Math.sqrt(tmp));\n if (xrpow[i] > cod_info.xrpow_max) cod_info.xrpow_max = xrpow[i];\n }\n return sum;\n }\n this.init_xrpow = function(gfc, cod_info, xrpow) {\n var sum = 0;\n var upper = 0 | cod_info.max_nonzero_coeff;\n $df08f3a0d41b7a78$var$assert(xrpow != null);\n cod_info.xrpow_max = 0;\n /*\n * check if there is some energy we have to quantize and calculate xrpow\n * matching our fresh scalefactors\n */ $df08f3a0d41b7a78$var$assert(0 <= upper && upper <= 575);\n $df08f3a0d41b7a78$var$Arrays.fill(xrpow, upper, 576, 0);\n sum = init_xrpow_core(cod_info, xrpow, upper, sum);\n /*\n * return 1 if we have something to quantize, else 0\n */ if (sum > 1E-20) {\n var j = 0;\n if ((gfc.substep_shaping & 2) != 0) j = 1;\n for(var i = 0; i < cod_info.psymax; i++)gfc.pseudohalf[i] = j;\n return true;\n }\n $df08f3a0d41b7a78$var$Arrays.fill(cod_info.l3_enc, 0, 576, 0);\n return false;\n };\n /**\n * Gabriel Bouvigne feb/apr 2003<BR>\n * Analog silence detection in partitionned sfb21 or sfb12 for short blocks\n *\n * From top to bottom of sfb, changes to 0 coeffs which are below ath. It\n * stops on the first coeff higher than ath.\n */ function psfb21_analogsilence(gfc, cod_info) {\n var ath = gfc.ATH;\n var xr = cod_info.xr;\n if (cod_info.block_type != $cPNKB.SHORT_TYPE) {\n /* NORM, START or STOP type, but not SHORT blocks */ var stop = false;\n for(var gsfb = $cPNKB.PSFB21 - 1; gsfb >= 0 && !stop; gsfb--){\n var start = gfc.scalefac_band.psfb21[gsfb];\n var end = gfc.scalefac_band.psfb21[gsfb + 1];\n var ath21 = qupvt.athAdjust(ath.adjust, ath.psfb21[gsfb], ath.floor);\n if (gfc.nsPsy.longfact[21] > 1e-12) ath21 *= gfc.nsPsy.longfact[21];\n for(var j = end - 1; j >= start; j--)if (Math.abs(xr[j]) < ath21) xr[j] = 0;\n else {\n stop = true;\n break;\n }\n }\n } else /* note: short blocks coeffs are reordered */ for(var block = 0; block < 3; block++){\n var stop = false;\n for(var gsfb = $cPNKB.PSFB12 - 1; gsfb >= 0 && !stop; gsfb--){\n var start = gfc.scalefac_band.s[12] * 3 + (gfc.scalefac_band.s[13] - gfc.scalefac_band.s[12]) * block + (gfc.scalefac_band.psfb12[gsfb] - gfc.scalefac_band.psfb12[0]);\n var end = start + (gfc.scalefac_band.psfb12[gsfb + 1] - gfc.scalefac_band.psfb12[gsfb]);\n var ath12 = qupvt.athAdjust(ath.adjust, ath.psfb12[gsfb], ath.floor);\n if (gfc.nsPsy.shortfact[12] > 1e-12) ath12 *= gfc.nsPsy.shortfact[12];\n for(var j = end - 1; j >= start; j--)if (Math.abs(xr[j]) < ath12) xr[j] = 0;\n else {\n stop = true;\n break;\n }\n }\n }\n }\n this.init_outer_loop = function(gfc, cod_info) {\n /*\n * initialize fresh cod_info\n */ cod_info.part2_3_length = 0;\n cod_info.big_values = 0;\n cod_info.count1 = 0;\n cod_info.global_gain = 210;\n cod_info.scalefac_compress = 0;\n /* mixed_block_flag, block_type was set in psymodel.c */ cod_info.table_select[0] = 0;\n cod_info.table_select[1] = 0;\n cod_info.table_select[2] = 0;\n cod_info.subblock_gain[0] = 0;\n cod_info.subblock_gain[1] = 0;\n cod_info.subblock_gain[2] = 0;\n cod_info.subblock_gain[3] = 0;\n /* this one is always 0 */ cod_info.region0_count = 0;\n cod_info.region1_count = 0;\n cod_info.preflag = 0;\n cod_info.scalefac_scale = 0;\n cod_info.count1table_select = 0;\n cod_info.part2_length = 0;\n cod_info.sfb_lmax = $cPNKB.SBPSY_l;\n cod_info.sfb_smin = $cPNKB.SBPSY_s;\n cod_info.psy_lmax = gfc.sfb21_extra ? $cPNKB.SBMAX_l : $cPNKB.SBPSY_l;\n cod_info.psymax = cod_info.psy_lmax;\n cod_info.sfbmax = cod_info.sfb_lmax;\n cod_info.sfbdivide = 11;\n for(var sfb = 0; sfb < $cPNKB.SBMAX_l; sfb++){\n cod_info.width[sfb] = gfc.scalefac_band.l[sfb + 1] - gfc.scalefac_band.l[sfb];\n /* which is always 0. */ cod_info.window[sfb] = 3;\n }\n if (cod_info.block_type == $cPNKB.SHORT_TYPE) {\n var ixwork = $df08f3a0d41b7a78$var$new_float(576);\n cod_info.sfb_smin = 0;\n cod_info.sfb_lmax = 0;\n if (cod_info.mixed_block_flag != 0) {\n /*\n * MPEG-1: sfbs 0-7 long block, 3-12 short blocks MPEG-2(.5):\n * sfbs 0-5 long block, 3-12 short blocks\n */ cod_info.sfb_smin = 3;\n cod_info.sfb_lmax = gfc.mode_gr * 2 + 4;\n }\n cod_info.psymax = cod_info.sfb_lmax + 3 * ((gfc.sfb21_extra ? $cPNKB.SBMAX_s : $cPNKB.SBPSY_s) - cod_info.sfb_smin);\n cod_info.sfbmax = cod_info.sfb_lmax + 3 * ($cPNKB.SBPSY_s - cod_info.sfb_smin);\n cod_info.sfbdivide = cod_info.sfbmax - 18;\n cod_info.psy_lmax = cod_info.sfb_lmax;\n /* re-order the short blocks, for more efficient encoding below */ /* By Takehiro TOMINAGA */ /*\n * Within each scalefactor band, data is given for successive time\n * windows, beginning with window 0 and ending with window 2. Within\n * each window, the quantized values are then arranged in order of\n * increasing frequency...\n */ var ix = gfc.scalefac_band.l[cod_info.sfb_lmax];\n $df08f3a0d41b7a78$var$System.arraycopy(cod_info.xr, 0, ixwork, 0, 576);\n for(var sfb = cod_info.sfb_smin; sfb < $cPNKB.SBMAX_s; sfb++){\n var start = gfc.scalefac_band.s[sfb];\n var end = gfc.scalefac_band.s[sfb + 1];\n for(var window = 0; window < 3; window++)for(var l = start; l < end; l++)cod_info.xr[ix++] = ixwork[3 * l + window];\n }\n var j = cod_info.sfb_lmax;\n for(var sfb = cod_info.sfb_smin; sfb < $cPNKB.SBMAX_s; sfb++){\n cod_info.width[j] = cod_info.width[j + 1] = cod_info.width[j + 2] = gfc.scalefac_band.s[sfb + 1] - gfc.scalefac_band.s[sfb];\n cod_info.window[j] = 0;\n cod_info.window[j + 1] = 1;\n cod_info.window[j + 2] = 2;\n j += 3;\n }\n }\n cod_info.count1bits = 0;\n cod_info.sfb_partition_table = qupvt.nr_of_sfb_block[0][0];\n cod_info.slen[0] = 0;\n cod_info.slen[1] = 0;\n cod_info.slen[2] = 0;\n cod_info.slen[3] = 0;\n cod_info.max_nonzero_coeff = 575;\n /*\n * fresh scalefactors are all zero\n */ $df08f3a0d41b7a78$var$Arrays.fill(cod_info.scalefac, 0);\n psfb21_analogsilence(gfc, cod_info);\n };\n function BinSearchDirection(ordinal) {\n this.ordinal = ordinal;\n }\n BinSearchDirection.BINSEARCH_NONE = new BinSearchDirection(0);\n BinSearchDirection.BINSEARCH_UP = new BinSearchDirection(1);\n BinSearchDirection.BINSEARCH_DOWN = new BinSearchDirection(2);\n /**\n * author/date??\n *\n * binary step size search used by outer_loop to get a quantizer step size\n * to start with\n */ function bin_search_StepSize(gfc, cod_info, desired_rate, ch, xrpow) {\n var nBits;\n var CurrentStep = gfc.CurrentStep[ch];\n var flagGoneOver = false;\n var start = gfc.OldValue[ch];\n var Direction = BinSearchDirection.BINSEARCH_NONE;\n cod_info.global_gain = start;\n desired_rate -= cod_info.part2_length;\n $df08f3a0d41b7a78$var$assert(CurrentStep != 0);\n for(;;){\n var step;\n nBits = tk.count_bits(gfc, xrpow, cod_info, null);\n if (CurrentStep == 1 || nBits == desired_rate) break;\n /* nothing to adjust anymore */ if (nBits > desired_rate) {\n /* increase Quantize_StepSize */ if (Direction == BinSearchDirection.BINSEARCH_DOWN) flagGoneOver = true;\n if (flagGoneOver) CurrentStep /= 2;\n Direction = BinSearchDirection.BINSEARCH_UP;\n step = CurrentStep;\n } else {\n /* decrease Quantize_StepSize */ if (Direction == BinSearchDirection.BINSEARCH_UP) flagGoneOver = true;\n if (flagGoneOver) CurrentStep /= 2;\n Direction = BinSearchDirection.BINSEARCH_DOWN;\n step = -CurrentStep;\n }\n cod_info.global_gain += step;\n if (cod_info.global_gain < 0) {\n cod_info.global_gain = 0;\n flagGoneOver = true;\n }\n if (cod_info.global_gain > 255) {\n cod_info.global_gain = 255;\n flagGoneOver = true;\n }\n }\n $df08f3a0d41b7a78$var$assert(cod_info.global_gain >= 0);\n $df08f3a0d41b7a78$var$assert(cod_info.global_gain < 256);\n while(nBits > desired_rate && cod_info.global_gain < 255){\n cod_info.global_gain++;\n nBits = tk.count_bits(gfc, xrpow, cod_info, null);\n }\n gfc.CurrentStep[ch] = start - cod_info.global_gain >= 4 ? 4 : 2;\n gfc.OldValue[ch] = cod_info.global_gain;\n cod_info.part2_3_length = nBits;\n return nBits;\n }\n this.trancate_smallspectrums = function(gfc, gi, l3_xmin, work) {\n var distort = $df08f3a0d41b7a78$var$new_float($arIi9.SFBMAX);\n if (0 == (gfc.substep_shaping & 4) && gi.block_type == $cPNKB.SHORT_TYPE || (gfc.substep_shaping & 0x80) != 0) return;\n qupvt.calc_noise(gi, l3_xmin, distort, new $3afa85f14aff627b$exports(), null);\n for(var j = 0; j < 576; j++){\n var xr = 0.0;\n if (gi.l3_enc[j] != 0) xr = Math.abs(gi.xr[j]);\n work[j] = xr;\n }\n var j = 0;\n var sfb = 8;\n if (gi.block_type == $cPNKB.SHORT_TYPE) sfb = 6;\n do {\n var allowedNoise, trancateThreshold;\n var nsame, start;\n var width = gi.width[sfb];\n j += width;\n if (distort[sfb] >= 1.0) continue;\n $df08f3a0d41b7a78$var$Arrays.sort(work, j - width, width);\n if (BitStream.EQ(work[j - 1], 0.0)) continue;\n /* all zero sfb */ allowedNoise = (1.0 - distort[sfb]) * l3_xmin[sfb];\n trancateThreshold = 0.0;\n start = 0;\n do {\n var noise;\n for(nsame = 1; start + nsame < width; nsame++)if (BitStream.NEQ(work[start + j - width], work[start + j + nsame - width])) break;\n noise = work[start + j - width] * work[start + j - width] * nsame;\n if (allowedNoise < noise) {\n if (start != 0) trancateThreshold = work[start + j - width - 1];\n break;\n }\n allowedNoise -= noise;\n start += nsame;\n }while (start < width);\n if (BitStream.EQ(trancateThreshold, 0.0)) continue;\n do if (Math.abs(gi.xr[j - width]) <= trancateThreshold) gi.l3_enc[j - width] = 0;\n while (--width > 0);\n }while (++sfb < gi.psymax);\n gi.part2_3_length = tk.noquant_count_bits(gfc, gi, null);\n };\n /**\n * author/date??\n *\n * Function: Returns zero if there is a scalefac which has not been\n * amplified. Otherwise it returns one.\n */ function loop_break(cod_info) {\n for(var sfb = 0; sfb < cod_info.sfbmax; sfb++)if (cod_info.scalefac[sfb] + cod_info.subblock_gain[cod_info.window[sfb]] == 0) return false;\n return true;\n }\n /* mt 5/99: Function: Improved calc_noise for a single channel */ function penalties(noise) {\n return $df08f3a0d41b7a78$var$Util.FAST_LOG10(0.368 + 0.632 * noise * noise * noise);\n }\n /**\n * author/date??\n *\n * several different codes to decide which quantization is better\n */ function get_klemm_noise(distort, gi) {\n var klemm_noise = 1E-37;\n for(var sfb = 0; sfb < gi.psymax; sfb++)klemm_noise += penalties(distort[sfb]);\n return Math.max(1e-20, klemm_noise);\n }\n function quant_compare(quant_comp, best, calc, gi, distort) {\n /**\n * noise is given in decibels (dB) relative to masking thesholds.<BR>\n *\n * over_noise: ??? (the previous comment is fully wrong)<BR>\n * tot_noise: ??? (the previous comment is fully wrong)<BR>\n * max_noise: max quantization noise\n */ var better;\n switch(quant_comp){\n default:\n case 9:\n if (best.over_count > 0) {\n /* there are distorted sfb */ better = calc.over_SSD <= best.over_SSD;\n if (calc.over_SSD == best.over_SSD) better = calc.bits < best.bits;\n } else /* no distorted sfb */ better = calc.max_noise < 0 && calc.max_noise * 10 + calc.bits <= best.max_noise * 10 + best.bits;\n break;\n case 0:\n better = calc.over_count < best.over_count || calc.over_count == best.over_count && calc.over_noise < best.over_noise || calc.over_count == best.over_count && BitStream.EQ(calc.over_noise, best.over_noise) && calc.tot_noise < best.tot_noise;\n break;\n case 8:\n calc.max_noise = get_klemm_noise(distort, gi);\n //$FALL-THROUGH$\n case 1:\n better = calc.max_noise < best.max_noise;\n break;\n case 2:\n better = calc.tot_noise < best.tot_noise;\n break;\n case 3:\n better = calc.tot_noise < best.tot_noise && calc.max_noise < best.max_noise;\n break;\n case 4:\n better = calc.max_noise <= 0.0 && best.max_noise > 0.2 || calc.max_noise <= 0.0 && best.max_noise < 0.0 && best.max_noise > calc.max_noise - 0.2 && calc.tot_noise < best.tot_noise || calc.max_noise <= 0.0 && best.max_noise > 0.0 && best.max_noise > calc.max_noise - 0.2 && calc.tot_noise < best.tot_noise + best.over_noise || calc.max_noise > 0.0 && best.max_noise > -0.05 && best.max_noise > calc.max_noise - 0.1 && calc.tot_noise + calc.over_noise < best.tot_noise + best.over_noise || calc.max_noise > 0.0 && best.max_noise > -0.1 && best.max_noise > calc.max_noise - 0.15 && calc.tot_noise + calc.over_noise + calc.over_noise < best.tot_noise + best.over_noise + best.over_noise;\n break;\n case 5:\n better = calc.over_noise < best.over_noise || BitStream.EQ(calc.over_noise, best.over_noise) && calc.tot_noise < best.tot_noise;\n break;\n case 6:\n better = calc.over_noise < best.over_noise || BitStream.EQ(calc.over_noise, best.over_noise) && (calc.max_noise < best.max_noise || BitStream.EQ(calc.max_noise, best.max_noise) && calc.tot_noise <= best.tot_noise);\n break;\n case 7:\n better = calc.over_count < best.over_count || calc.over_noise < best.over_noise;\n break;\n }\n if (best.over_count == 0) /*\n * If no distorted bands, only use this quantization if it is\n * better, and if it uses less bits. Unfortunately, part2_3_length\n * is sometimes a poor estimator of the final size at low bitrates.\n */ better = better && calc.bits < best.bits;\n return better;\n }\n /**\n * author/date??\n *\n * <PRE>\n * Amplify the scalefactor bands that violate the masking threshold.\n * See ISO 11172-3 Section C.1.5.4.3.5\n *\n * distort[] = noise/masking\n * distort[] > 1 ==> noise is not masked\n * distort[] < 1 ==> noise is masked\n * max_dist = maximum value of distort[]\n *\n * Three algorithms:\n * noise_shaping_amp\n * 0 Amplify all bands with distort[]>1.\n *\n * 1 Amplify all bands with distort[] >= max_dist^(.5);\n * ( 50% in the db scale)\n *\n * 2 Amplify first band with distort[] >= max_dist;\n *\n *\n * For algorithms 0 and 1, if max_dist < 1, then amplify all bands\n * with distort[] >= .95*max_dist. This is to make sure we always\n * amplify at least one band.\n * </PRE>\n */ function amp_scalefac_bands(gfp, cod_info, distort, xrpow, bRefine) {\n var gfc = gfp.internal_flags;\n var ifqstep34;\n if (cod_info.scalefac_scale == 0) ifqstep34 = 1.29683955465100964055;\n else ifqstep34 = 1.68179283050742922612;\n /* compute maximum value of distort[] */ var trigger = 0;\n for(var sfb = 0; sfb < cod_info.sfbmax; sfb++)if (trigger < distort[sfb]) trigger = distort[sfb];\n var noise_shaping_amp = gfc.noise_shaping_amp;\n if (noise_shaping_amp == 3) {\n if (bRefine) noise_shaping_amp = 2;\n else noise_shaping_amp = 1;\n }\n switch(noise_shaping_amp){\n case 2:\n break;\n case 1:\n /* amplify bands within 50% of max (on db scale) */ if (trigger > 1.0) trigger = Math.pow(trigger, .5);\n else trigger *= .95;\n break;\n case 0:\n default:\n /* ISO algorithm. amplify all bands with distort>1 */ if (trigger > 1.0) trigger = 1.0;\n else trigger *= .95;\n break;\n }\n var j = 0;\n for(var sfb = 0; sfb < cod_info.sfbmax; sfb++){\n var width = cod_info.width[sfb];\n var l;\n j += width;\n if (distort[sfb] < trigger) continue;\n if ((gfc.substep_shaping & 2) != 0) {\n gfc.pseudohalf[sfb] = 0 == gfc.pseudohalf[sfb] ? 1 : 0;\n if (0 == gfc.pseudohalf[sfb] && gfc.noise_shaping_amp == 2) return;\n }\n cod_info.scalefac[sfb]++;\n for(l = -width; l < 0; l++){\n xrpow[j + l] *= ifqstep34;\n if (xrpow[j + l] > cod_info.xrpow_max) cod_info.xrpow_max = xrpow[j + l];\n }\n if (gfc.noise_shaping_amp == 2) return;\n }\n }\n /**\n * Takehiro Tominaga 2000-xx-xx\n *\n * turns on scalefac scale and adjusts scalefactors\n */ function inc_scalefac_scale(cod_info, xrpow) {\n var ifqstep34 = 1.29683955465100964055;\n var j = 0;\n for(var sfb = 0; sfb < cod_info.sfbmax; sfb++){\n var width = cod_info.width[sfb];\n var s = cod_info.scalefac[sfb];\n if (cod_info.preflag != 0) s += qupvt.pretab[sfb];\n j += width;\n if ((s & 1) != 0) {\n s++;\n for(var l = -width; l < 0; l++){\n xrpow[j + l] *= ifqstep34;\n if (xrpow[j + l] > cod_info.xrpow_max) cod_info.xrpow_max = xrpow[j + l];\n }\n }\n cod_info.scalefac[sfb] = s >> 1;\n }\n cod_info.preflag = 0;\n cod_info.scalefac_scale = 1;\n }\n /**\n * Takehiro Tominaga 2000-xx-xx\n *\n * increases the subblock gain and adjusts scalefactors\n */ function inc_subblock_gain(gfc, cod_info, xrpow) {\n var sfb;\n var scalefac = cod_info.scalefac;\n /* subbloc_gain can't do anything in the long block region */ for(sfb = 0; sfb < cod_info.sfb_lmax; sfb++){\n if (scalefac[sfb] >= 16) return true;\n }\n for(var window = 0; window < 3; window++){\n var s1 = 0;\n var s2 = 0;\n for(sfb = cod_info.sfb_lmax + window; sfb < cod_info.sfbdivide; sfb += 3)if (s1 < scalefac[sfb]) s1 = scalefac[sfb];\n for(; sfb < cod_info.sfbmax; sfb += 3)if (s2 < scalefac[sfb]) s2 = scalefac[sfb];\n if (s1 < 16 && s2 < 8) continue;\n if (cod_info.subblock_gain[window] >= 7) return true;\n /*\n * even though there is no scalefactor for sfb12 subblock gain\n * affects upper frequencies too, that's why we have to go up to\n * SBMAX_s\n */ cod_info.subblock_gain[window]++;\n var j = gfc.scalefac_band.l[cod_info.sfb_lmax];\n for(sfb = cod_info.sfb_lmax + window; sfb < cod_info.sfbmax; sfb += 3){\n var amp;\n var width = cod_info.width[sfb];\n var s = scalefac[sfb];\n $df08f3a0d41b7a78$var$assert(s >= 0);\n s = s - (4 >> cod_info.scalefac_scale);\n if (s >= 0) {\n scalefac[sfb] = s;\n j += width * 3;\n continue;\n }\n scalefac[sfb] = 0;\n var gain = 210 + (s << cod_info.scalefac_scale + 1);\n amp = qupvt.IPOW20(gain);\n j += width * (window + 1);\n for(var l = -width; l < 0; l++){\n xrpow[j + l] *= amp;\n if (xrpow[j + l] > cod_info.xrpow_max) cod_info.xrpow_max = xrpow[j + l];\n }\n j += width * (3 - window - 1);\n }\n var amp = qupvt.IPOW20(202);\n j += cod_info.width[sfb] * (window + 1);\n for(var l = -cod_info.width[sfb]; l < 0; l++){\n xrpow[j + l] *= amp;\n if (xrpow[j + l] > cod_info.xrpow_max) cod_info.xrpow_max = xrpow[j + l];\n }\n }\n return false;\n }\n /**\n * <PRE>\n * Takehiro Tominaga /date??\n * Robert Hegemann 2000-09-06: made a function of it\n *\n * amplifies scalefactor bands,\n * - if all are already amplified returns 0\n * - if some bands are amplified too much:\n * * try to increase scalefac_scale\n * * if already scalefac_scale was set\n * try on short blocks to increase subblock gain\n * </PRE>\n */ function balance_noise(gfp, cod_info, distort, xrpow, bRefine) {\n var gfc = gfp.internal_flags;\n amp_scalefac_bands(gfp, cod_info, distort, xrpow, bRefine);\n /*\n * check to make sure we have not amplified too much loop_break returns\n * 0 if there is an unamplified scalefac scale_bitcount returns 0 if no\n * scalefactors are too large\n */ var status = loop_break(cod_info);\n if (status) return false;\n /* all bands amplified */ /*\n * not all scalefactors have been amplified. so these scalefacs are\n * possibly valid. encode them:\n */ if (gfc.mode_gr == 2) status = tk.scale_bitcount(cod_info);\n else status = tk.scale_bitcount_lsf(gfc, cod_info);\n if (!status) return true;\n /* amplified some bands not exceeding limits */ /*\n * some scalefactors are too large. lets try setting scalefac_scale=1\n */ if (gfc.noise_shaping > 1) {\n $df08f3a0d41b7a78$var$Arrays.fill(gfc.pseudohalf, 0);\n if (0 == cod_info.scalefac_scale) {\n inc_scalefac_scale(cod_info, xrpow);\n status = false;\n } else if (cod_info.block_type == $cPNKB.SHORT_TYPE && gfc.subblock_gain > 0) status = inc_subblock_gain(gfc, cod_info, xrpow) || loop_break(cod_info);\n }\n if (!status) {\n if (gfc.mode_gr == 2) status = tk.scale_bitcount(cod_info);\n else status = tk.scale_bitcount_lsf(gfc, cod_info);\n }\n return !status;\n }\n /**\n * <PRE>\n * Function: The outer iteration loop controls the masking conditions\n * of all scalefactorbands. It computes the best scalefac and\n * global gain. This module calls the inner iteration loop\n *\n * mt 5/99 completely rewritten to allow for bit reservoir control,\n * mid/side channels with L/R or mid/side masking thresholds,\n * and chooses best quantization instead of last quantization when\n * no distortion free quantization can be found.\n *\n * added VBR support mt 5/99\n *\n * some code shuffle rh 9/00\n * </PRE>\n *\n * @param l3_xmin\n * allowed distortion\n * @param xrpow\n * coloured magnitudes of spectral\n * @param targ_bits\n * maximum allowed bits\n */ this.outer_loop = function(gfp, cod_info, l3_xmin, xrpow, ch, targ_bits) {\n var gfc = gfp.internal_flags;\n var cod_info_w = new $7weBo();\n var save_xrpow = $df08f3a0d41b7a78$var$new_float(576);\n var distort = $df08f3a0d41b7a78$var$new_float($arIi9.SFBMAX);\n var best_noise_info = new $3afa85f14aff627b$exports();\n var better;\n var prev_noise = new $4fc41bdea3aedc83$exports();\n var best_part2_3_length = 9999999;\n var bEndOfSearch = false;\n var bRefine = false;\n var best_ggain_pass1 = 0;\n bin_search_StepSize(gfc, cod_info, targ_bits, ch, xrpow);\n if (0 == gfc.noise_shaping) /* fast mode, no noise shaping, we are ready */ return 100;\n /* default noise_info.over_count */ /* compute the distortion in this quantization */ /* coefficients and thresholds both l/r (or both mid/side) */ qupvt.calc_noise(cod_info, l3_xmin, distort, best_noise_info, prev_noise);\n best_noise_info.bits = cod_info.part2_3_length;\n cod_info_w.assign(cod_info);\n var age = 0;\n $df08f3a0d41b7a78$var$System.arraycopy(xrpow, 0, save_xrpow, 0, 576);\n while(!bEndOfSearch){\n /* BEGIN MAIN LOOP */ do {\n var noise_info = new $3afa85f14aff627b$exports();\n var search_limit;\n var maxggain = 255;\n /*\n * When quantization with no distorted bands is found, allow up\n * to X new unsuccesful tries in serial. This gives us more\n * possibilities for different quant_compare modes. Much more\n * than 3 makes not a big difference, it is only slower.\n */ if ((gfc.substep_shaping & 2) != 0) search_limit = 20;\n else search_limit = 3;\n /*\n * Check if the last scalefactor band is distorted. in VBR mode\n * we can't get rid of the distortion, so quit now and VBR mode\n * will try again with more bits. (makes a 10% speed increase,\n * the files I tested were binary identical, 2000/05/20 Robert\n * Hegemann) distort[] > 1 means noise > allowed noise\n */ if (gfc.sfb21_extra) {\n if (distort[cod_info_w.sfbmax] > 1.0) break;\n if (cod_info_w.block_type == $cPNKB.SHORT_TYPE && (distort[cod_info_w.sfbmax + 1] > 1.0 || distort[cod_info_w.sfbmax + 2] > 1.0)) break;\n }\n /* try a new scalefactor conbination on cod_info_w */ if (!balance_noise(gfp, cod_info_w, distort, xrpow, bRefine)) break;\n if (cod_info_w.scalefac_scale != 0) maxggain = 254;\n /*\n * inner_loop starts with the initial quantization step computed\n * above and slowly increases until the bits < huff_bits. Thus\n * it is important not to start with too large of an inital\n * quantization step. Too small is ok, but inner_loop will take\n * longer\n */ var huff_bits = targ_bits - cod_info_w.part2_length;\n if (huff_bits <= 0) break;\n /*\n * increase quantizer stepsize until needed bits are below\n * maximum\n */ while((cod_info_w.part2_3_length = tk.count_bits(gfc, xrpow, cod_info_w, prev_noise)) > huff_bits && cod_info_w.global_gain <= maxggain)cod_info_w.global_gain++;\n if (cod_info_w.global_gain > maxggain) break;\n if (best_noise_info.over_count == 0) {\n while((cod_info_w.part2_3_length = tk.count_bits(gfc, xrpow, cod_info_w, prev_noise)) > best_part2_3_length && cod_info_w.global_gain <= maxggain)cod_info_w.global_gain++;\n if (cod_info_w.global_gain > maxggain) break;\n }\n /* compute the distortion in this quantization */ qupvt.calc_noise(cod_info_w, l3_xmin, distort, noise_info, prev_noise);\n noise_info.bits = cod_info_w.part2_3_length;\n /*\n * check if this quantization is better than our saved\n * quantization\n */ if (cod_info.block_type != $cPNKB.SHORT_TYPE) // NORM, START or STOP type\n better = gfp.quant_comp;\n else better = gfp.quant_comp_short;\n better = quant_compare(better, best_noise_info, noise_info, cod_info_w, distort) ? 1 : 0;\n /* save data so we can restore this quantization later */ if (better != 0) {\n best_part2_3_length = cod_info.part2_3_length;\n best_noise_info = noise_info;\n cod_info.assign(cod_info_w);\n age = 0;\n /* save data so we can restore this quantization later */ /* store for later reuse */ $df08f3a0d41b7a78$var$System.arraycopy(xrpow, 0, save_xrpow, 0, 576);\n } else /* early stop? */ if (gfc.full_outer_loop == 0) {\n if (++age > search_limit && best_noise_info.over_count == 0) break;\n if (gfc.noise_shaping_amp == 3 && bRefine && age > 30) break;\n if (gfc.noise_shaping_amp == 3 && bRefine && cod_info_w.global_gain - best_ggain_pass1 > 15) break;\n }\n }while (cod_info_w.global_gain + cod_info_w.scalefac_scale < 255);\n if (gfc.noise_shaping_amp == 3) {\n if (!bRefine) {\n /* refine search */ cod_info_w.assign(cod_info);\n $df08f3a0d41b7a78$var$System.arraycopy(save_xrpow, 0, xrpow, 0, 576);\n age = 0;\n best_ggain_pass1 = cod_info_w.global_gain;\n bRefine = true;\n } else /* search already refined, stop */ bEndOfSearch = true;\n } else bEndOfSearch = true;\n }\n $df08f3a0d41b7a78$var$assert(cod_info.global_gain + cod_info.scalefac_scale <= 255);\n /*\n * finish up\n */ if (gfp.VBR == $df08f3a0d41b7a78$var$VbrMode.vbr_rh || gfp.VBR == $df08f3a0d41b7a78$var$VbrMode.vbr_mtrh) /* restore for reuse on next try */ $df08f3a0d41b7a78$var$System.arraycopy(save_xrpow, 0, xrpow, 0, 576);\n else if ((gfc.substep_shaping & 1) != 0) trancate_smallspectrums(gfc, cod_info, l3_xmin, xrpow);\n return best_noise_info.over_count;\n };\n /**\n * Robert Hegemann 2000-09-06\n *\n * update reservoir status after FINAL quantization/bitrate\n */ this.iteration_finish_one = function(gfc, gr, ch) {\n var l3_side = gfc.l3_side;\n var cod_info = l3_side.tt[gr][ch];\n /*\n * try some better scalefac storage\n */ tk.best_scalefac_store(gfc, gr, ch, l3_side);\n /*\n * best huffman_divide may save some bits too\n */ if (gfc.use_best_huffman == 1) tk.best_huffman_divide(gfc, cod_info);\n /*\n * update reservoir status after FINAL quantization/bitrate\n */ rv.ResvAdjust(gfc, cod_info);\n };\n /**\n *\n * 2000-09-04 Robert Hegemann\n *\n * @param l3_xmin\n * allowed distortion of the scalefactor\n * @param xrpow\n * coloured magnitudes of spectral values\n */ this.VBR_encode_granule = function(gfp, cod_info, l3_xmin, xrpow, ch, min_bits, max_bits) {\n var gfc = gfp.internal_flags;\n var bst_cod_info = new $7weBo();\n var bst_xrpow = $df08f3a0d41b7a78$var$new_float(576);\n var Max_bits = max_bits;\n var real_bits = max_bits + 1;\n var this_bits = (max_bits + min_bits) / 2;\n var dbits, over, found = 0;\n var sfb21_extra = gfc.sfb21_extra;\n $df08f3a0d41b7a78$var$assert(Max_bits <= LameInternalFlags.MAX_BITS_PER_CHANNEL);\n $df08f3a0d41b7a78$var$Arrays.fill(bst_cod_info.l3_enc, 0);\n /*\n * search within round about 40 bits of optimal\n */ do {\n $df08f3a0d41b7a78$var$assert(this_bits >= min_bits);\n $df08f3a0d41b7a78$var$assert(this_bits <= max_bits);\n $df08f3a0d41b7a78$var$assert(min_bits <= max_bits);\n if (this_bits > Max_bits - 42) gfc.sfb21_extra = false;\n else gfc.sfb21_extra = sfb21_extra;\n over = outer_loop(gfp, cod_info, l3_xmin, xrpow, ch, this_bits);\n /*\n * is quantization as good as we are looking for ? in this case: is\n * no scalefactor band distorted?\n */ if (over <= 0) {\n found = 1;\n /*\n * now we know it can be done with \"real_bits\" and maybe we can\n * skip some iterations\n */ real_bits = cod_info.part2_3_length;\n /*\n * store best quantization so far\n */ bst_cod_info.assign(cod_info);\n $df08f3a0d41b7a78$var$System.arraycopy(xrpow, 0, bst_xrpow, 0, 576);\n /*\n * try with fewer bits\n */ max_bits = real_bits - 32;\n dbits = max_bits - min_bits;\n this_bits = (max_bits + min_bits) / 2;\n } else {\n /*\n * try with more bits\n */ min_bits = this_bits + 32;\n dbits = max_bits - min_bits;\n this_bits = (max_bits + min_bits) / 2;\n if (found != 0) {\n found = 2;\n /*\n * start again with best quantization so far\n */ cod_info.assign(bst_cod_info);\n $df08f3a0d41b7a78$var$System.arraycopy(bst_xrpow, 0, xrpow, 0, 576);\n }\n }\n }while (dbits > 12);\n gfc.sfb21_extra = sfb21_extra;\n /*\n * found=0 => nothing found, use last one found=1 => we just found the\n * best and left the loop found=2 => we restored a good one and have now\n * l3_enc to restore too\n */ if (found == 2) $df08f3a0d41b7a78$var$System.arraycopy(bst_cod_info.l3_enc, 0, cod_info.l3_enc, 0, 576);\n $df08f3a0d41b7a78$var$assert(cod_info.part2_3_length <= Max_bits);\n };\n /**\n * Robert Hegemann 2000-09-05\n *\n * calculates * how many bits are available for analog silent granules * how\n * many bits to use for the lowest allowed bitrate * how many bits each\n * bitrate would provide\n */ this.get_framebits = function(gfp, frameBits) {\n var gfc = gfp.internal_flags;\n /*\n * always use at least this many bits per granule per channel unless we\n * detect analog silence, see below\n */ gfc.bitrate_index = gfc.VBR_min_bitrate;\n var bitsPerFrame = bs.getframebits(gfp);\n /*\n * bits for analog silence\n */ gfc.bitrate_index = 1;\n bitsPerFrame = bs.getframebits(gfp);\n for(var i = 1; i <= gfc.VBR_max_bitrate; i++){\n gfc.bitrate_index = i;\n var mb = new MeanBits(bitsPerFrame);\n frameBits[i] = rv.ResvFrameBegin(gfp, mb);\n bitsPerFrame = mb.bits;\n }\n };\n /* RH: this one needs to be overhauled sometime */ /**\n * <PRE>\n * 2000-09-04 Robert Hegemann\n *\n * * converts LR to MS coding when necessary\n * * calculates allowed/adjusted quantization noise amounts\n * * detects analog silent frames\n *\n * some remarks:\n * - lower masking depending on Quality setting\n * - quality control together with adjusted ATH MDCT scaling\n * on lower quality setting allocate more noise from\n * ATH masking, and on higher quality setting allocate\n * less noise from ATH masking.\n * - experiments show that going more than 2dB over GPSYCHO's\n * limits ends up in very annoying artefacts\n * </PRE>\n */ this.VBR_old_prepare = function(gfp, pe, ms_ener_ratio, ratio, l3_xmin, frameBits, min_bits, max_bits, bands) {\n var gfc = gfp.internal_flags;\n var masking_lower_db, adjust = 0.0;\n var analog_silence = 1;\n var bits = 0;\n gfc.bitrate_index = gfc.VBR_max_bitrate;\n var avg = rv.ResvFrameBegin(gfp, new MeanBits(0)) / gfc.mode_gr;\n get_framebits(gfp, frameBits);\n for(var gr = 0; gr < gfc.mode_gr; gr++){\n var mxb = qupvt.on_pe(gfp, pe, max_bits[gr], avg, gr, 0);\n if (gfc.mode_ext == $cPNKB.MPG_MD_MS_LR) {\n ms_convert(gfc.l3_side, gr);\n qupvt.reduce_side(max_bits[gr], ms_ener_ratio[gr], avg, mxb);\n }\n for(var ch = 0; ch < gfc.channels_out; ++ch){\n var cod_info = gfc.l3_side.tt[gr][ch];\n if (cod_info.block_type != $cPNKB.SHORT_TYPE) {\n // NORM, START or STOP type\n adjust = 1.28 / (1 + Math.exp(3.5 - pe[gr][ch] / 300.)) - 0.05;\n masking_lower_db = gfc.PSY.mask_adjust - adjust;\n } else {\n adjust = 2.56 / (1 + Math.exp(3.5 - pe[gr][ch] / 300.)) - 0.14;\n masking_lower_db = gfc.PSY.mask_adjust_short - adjust;\n }\n gfc.masking_lower = Math.pow(10.0, masking_lower_db * 0.1);\n init_outer_loop(gfc, cod_info);\n bands[gr][ch] = qupvt.calc_xmin(gfp, ratio[gr][ch], cod_info, l3_xmin[gr][ch]);\n if (bands[gr][ch] != 0) analog_silence = 0;\n min_bits[gr][ch] = 126;\n bits += max_bits[gr][ch];\n }\n }\n for(var gr = 0; gr < gfc.mode_gr; gr++)for(var ch = 0; ch < gfc.channels_out; ch++){\n if (bits > frameBits[gfc.VBR_max_bitrate]) {\n max_bits[gr][ch] *= frameBits[gfc.VBR_max_bitrate];\n max_bits[gr][ch] /= bits;\n }\n if (min_bits[gr][ch] > max_bits[gr][ch]) min_bits[gr][ch] = max_bits[gr][ch];\n }\n /* for gr */ return analog_silence;\n };\n this.bitpressure_strategy = function(gfc, l3_xmin, min_bits, max_bits) {\n for(var gr = 0; gr < gfc.mode_gr; gr++)for(var ch = 0; ch < gfc.channels_out; ch++){\n var gi = gfc.l3_side.tt[gr][ch];\n var pxmin = l3_xmin[gr][ch];\n var pxminPos = 0;\n for(var sfb = 0; sfb < gi.psy_lmax; sfb++)pxmin[pxminPos++] *= 1. + .029 * sfb * sfb / $cPNKB.SBMAX_l / $cPNKB.SBMAX_l;\n if (gi.block_type == $cPNKB.SHORT_TYPE) for(var sfb = gi.sfb_smin; sfb < $cPNKB.SBMAX_s; sfb++){\n pxmin[pxminPos++] *= 1. + .029 * sfb * sfb / $cPNKB.SBMAX_s / $cPNKB.SBMAX_s;\n pxmin[pxminPos++] *= 1. + .029 * sfb * sfb / $cPNKB.SBMAX_s / $cPNKB.SBMAX_s;\n pxmin[pxminPos++] *= 1. + .029 * sfb * sfb / $cPNKB.SBMAX_s / $cPNKB.SBMAX_s;\n }\n max_bits[gr][ch] = 0 | Math.max(min_bits[gr][ch], 0.9 * max_bits[gr][ch]);\n }\n };\n this.VBR_new_prepare = function(gfp, pe, ratio, l3_xmin, frameBits, max_bits) {\n var gfc = gfp.internal_flags;\n var analog_silence = 1;\n var avg = 0, bits = 0;\n var maximum_framebits;\n if (!gfp.free_format) {\n gfc.bitrate_index = gfc.VBR_max_bitrate;\n var mb = new MeanBits(avg);\n rv.ResvFrameBegin(gfp, mb);\n avg = mb.bits;\n get_framebits(gfp, frameBits);\n maximum_framebits = frameBits[gfc.VBR_max_bitrate];\n } else {\n gfc.bitrate_index = 0;\n var mb = new MeanBits(avg);\n maximum_framebits = rv.ResvFrameBegin(gfp, mb);\n avg = mb.bits;\n frameBits[0] = maximum_framebits;\n }\n for(var gr = 0; gr < gfc.mode_gr; gr++){\n qupvt.on_pe(gfp, pe, max_bits[gr], avg, gr, 0);\n if (gfc.mode_ext == $cPNKB.MPG_MD_MS_LR) ms_convert(gfc.l3_side, gr);\n for(var ch = 0; ch < gfc.channels_out; ++ch){\n var cod_info = gfc.l3_side.tt[gr][ch];\n gfc.masking_lower = Math.pow(10.0, gfc.PSY.mask_adjust * 0.1);\n init_outer_loop(gfc, cod_info);\n if (0 != qupvt.calc_xmin(gfp, ratio[gr][ch], cod_info, l3_xmin[gr][ch])) analog_silence = 0;\n bits += max_bits[gr][ch];\n }\n }\n for(var gr = 0; gr < gfc.mode_gr; gr++){\n for(var ch = 0; ch < gfc.channels_out; ch++)if (bits > maximum_framebits) {\n max_bits[gr][ch] *= maximum_framebits;\n max_bits[gr][ch] /= bits;\n }\n /* for ch */ }\n /* for gr */ return analog_silence;\n };\n /**\n * calculates target bits for ABR encoding\n *\n * mt 2000/05/31\n */ this.calc_target_bits = function(gfp, pe, ms_ener_ratio, targ_bits, analog_silence_bits, max_frame_bits) {\n var gfc = gfp.internal_flags;\n var l3_side = gfc.l3_side;\n var res_factor;\n var gr, ch, totbits, mean_bits = 0;\n gfc.bitrate_index = gfc.VBR_max_bitrate;\n var mb = new MeanBits(mean_bits);\n max_frame_bits[0] = rv.ResvFrameBegin(gfp, mb);\n mean_bits = mb.bits;\n gfc.bitrate_index = 1;\n mean_bits = bs.getframebits(gfp) - gfc.sideinfo_len * 8;\n analog_silence_bits[0] = mean_bits / (gfc.mode_gr * gfc.channels_out);\n mean_bits = gfp.VBR_mean_bitrate_kbps * gfp.framesize * 1000;\n if ((gfc.substep_shaping & 1) != 0) mean_bits *= 1.09;\n mean_bits /= gfp.out_samplerate;\n mean_bits -= gfc.sideinfo_len * 8;\n mean_bits /= gfc.mode_gr * gfc.channels_out;\n /**\n * <PRE>\n * res_factor is the percentage of the target bitrate that should\n * be used on average. the remaining bits are added to the\n * bitreservoir and used for difficult to encode frames.\n *\n * Since we are tracking the average bitrate, we should adjust\n * res_factor \"on the fly\", increasing it if the average bitrate\n * is greater than the requested bitrate, and decreasing it\n * otherwise. Reasonable ranges are from .9 to 1.0\n *\n * Until we get the above suggestion working, we use the following\n * tuning:\n * compression ratio res_factor\n * 5.5 (256kbps) 1.0 no need for bitreservoir\n * 11 (128kbps) .93 7% held for reservoir\n *\n * with linear interpolation for other values.\n * </PRE>\n */ res_factor = .93 + .07 * (11.0 - gfp.compression_ratio) / 5.5;\n if (res_factor < .90) res_factor = .90;\n if (res_factor > 1.00) res_factor = 1.00;\n for(gr = 0; gr < gfc.mode_gr; gr++){\n var sum = 0;\n for(ch = 0; ch < gfc.channels_out; ch++){\n targ_bits[gr][ch] = int(res_factor * mean_bits);\n if (pe[gr][ch] > 700) {\n var add_bits = int((pe[gr][ch] - 700) / 1.4);\n var cod_info = l3_side.tt[gr][ch];\n targ_bits[gr][ch] = int(res_factor * mean_bits);\n /* short blocks use a little extra, no matter what the pe */ if (cod_info.block_type == $cPNKB.SHORT_TYPE) {\n if (add_bits < mean_bits / 2) add_bits = mean_bits / 2;\n }\n /* at most increase bits by 1.5*average */ if (add_bits > mean_bits * 3 / 2) add_bits = mean_bits * 3 / 2;\n else if (add_bits < 0) add_bits = 0;\n targ_bits[gr][ch] += add_bits;\n }\n if (targ_bits[gr][ch] > LameInternalFlags.MAX_BITS_PER_CHANNEL) targ_bits[gr][ch] = LameInternalFlags.MAX_BITS_PER_CHANNEL;\n sum += targ_bits[gr][ch];\n }\n /* for ch */ if (sum > LameInternalFlags.MAX_BITS_PER_GRANULE) for(ch = 0; ch < gfc.channels_out; ++ch){\n targ_bits[gr][ch] *= LameInternalFlags.MAX_BITS_PER_GRANULE;\n targ_bits[gr][ch] /= sum;\n }\n }\n /* for gr */ if (gfc.mode_ext == $cPNKB.MPG_MD_MS_LR) for(gr = 0; gr < gfc.mode_gr; gr++)qupvt.reduce_side(targ_bits[gr], ms_ener_ratio[gr], mean_bits * gfc.channels_out, LameInternalFlags.MAX_BITS_PER_GRANULE);\n /*\n * sum target bits\n */ totbits = 0;\n for(gr = 0; gr < gfc.mode_gr; gr++)for(ch = 0; ch < gfc.channels_out; ch++){\n if (targ_bits[gr][ch] > LameInternalFlags.MAX_BITS_PER_CHANNEL) targ_bits[gr][ch] = LameInternalFlags.MAX_BITS_PER_CHANNEL;\n totbits += targ_bits[gr][ch];\n }\n /*\n * repartion target bits if needed\n */ if (totbits > max_frame_bits[0]) {\n for(gr = 0; gr < gfc.mode_gr; gr++)for(ch = 0; ch < gfc.channels_out; ch++){\n targ_bits[gr][ch] *= max_frame_bits[0];\n targ_bits[gr][ch] /= totbits;\n }\n }\n };\n}\n$df08f3a0d41b7a78$exports = $df08f3a0d41b7a78$var$Quantize;\n\n\n\nvar $65Sx2 = parcelRequire(\"65Sx2\");\nvar $b5a7ab7c590f5d1e$exports = {};\n/*\n * bit reservoir source file\n *\n * Copyright (c) 1999-2000 Mark Taylor\n *\n * This library is free software; you can redistribute it and/or\n * modify it under the terms of the GNU Lesser General Public\n * License as published by the Free Software Foundation; either\n * version 2 of the License, or (at your option) any later version.\n *\n * This library is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n * Library General Public License for more details.\n *\n * You should have received a copy of the GNU Lesser General Public\n * License along with this library; if not, write to the\n * Free Software Foundation, Inc., 59 Temple Place - Suite 330,\n * Boston, MA 02111-1307, USA.\n */ /* $Id: Reservoir.java,v 1.9 2011/05/24 20:48:06 kenchis Exp $ */ //package mp3;\n/**\n * ResvFrameBegin:<BR>\n * Called (repeatedly) at the beginning of a frame. Updates the maximum size of\n * the reservoir, and checks to make sure main_data_begin was set properly by\n * the formatter<BR>\n * Background information:\n * \n * This is the original text from the ISO standard. Because of sooo many bugs\n * and irritations correcting comments are added in brackets []. A '^W' means\n * you should remove the last word.\n * \n * <PRE>\n * 1. The following rule can be used to calculate the maximum\n * number of bits used for one granule [^W frame]:<BR>\n * At the highest possible bitrate of Layer III (320 kbps\n * per stereo signal [^W^W^W], 48 kHz) the frames must be of\n * [^W^W^W are designed to have] constant length, i.e.\n * one buffer [^W^W the frame] length is:<BR>\n * \n * 320 kbps * 1152/48 kHz = 7680 bit = 960 byte\n * \n * This value is used as the maximum buffer per channel [^W^W] at\n * lower bitrates [than 320 kbps]. At 64 kbps mono or 128 kbps\n * stereo the main granule length is 64 kbps * 576/48 kHz = 768 bit\n * [per granule and channel] at 48 kHz sampling frequency.\n * This means that there is a maximum deviation (short time buffer\n * [= reservoir]) of 7680 - 2*2*768 = 4608 bits is allowed at 64 kbps.\n * The actual deviation is equal to the number of bytes [with the\n * meaning of octets] denoted by the main_data_end offset pointer.\n * The actual maximum deviation is (2^9-1)*8 bit = 4088 bits\n * [for MPEG-1 and (2^8-1)*8 bit for MPEG-2, both are hard limits].\n * ... The xchange of buffer bits between the left and right channel\n * is allowed without restrictions [exception: dual channel].\n * Because of the [constructed] constraint on the buffer size\n * main_data_end is always set to 0 in the case of bit_rate_index==14,\n * i.e. data rate 320 kbps per stereo signal [^W^W^W]. In this case\n * all data are allocated between adjacent header [^W sync] words\n * [, i.e. there is no buffering at all].\n * </PRE>\n */ \nvar $3YDN3 = parcelRequire(\"3YDN3\");\nvar $b5a7ab7c590f5d1e$var$assert = $3YDN3.assert;\nfunction $b5a7ab7c590f5d1e$var$Reservoir() {\n var bs;\n this.setModules = function(_bs) {\n bs = _bs;\n };\n this.ResvFrameBegin = function(gfp, mean_bits) {\n var gfc = gfp.internal_flags;\n var maxmp3buf;\n var l3_side = gfc.l3_side;\n var frameLength = bs.getframebits(gfp);\n mean_bits.bits = (frameLength - gfc.sideinfo_len * 8) / gfc.mode_gr;\n /**\n\t\t * <PRE>\n\t\t * Meaning of the variables:\n\t\t * resvLimit: (0, 8, ..., 8*255 (MPEG-2), 8*511 (MPEG-1))\n\t\t * Number of bits can be stored in previous frame(s) due to\n\t\t * counter size constaints\n\t\t * maxmp3buf: ( ??? ... 8*1951 (MPEG-1 and 2), 8*2047 (MPEG-2.5))\n\t\t * Number of bits allowed to encode one frame (you can take 8*511 bit\n\t\t * from the bit reservoir and at most 8*1440 bit from the current\n\t\t * frame (320 kbps, 32 kHz), so 8*1951 bit is the largest possible\n\t\t * value for MPEG-1 and -2)\n\t\t * \n\t\t * maximum allowed granule/channel size times 4 = 8*2047 bits.,\n\t\t * so this is the absolute maximum supported by the format.\n\t\t * \n\t\t * \n\t\t * fullFrameBits: maximum number of bits available for encoding\n\t\t * the current frame.\n\t\t * \n\t\t * mean_bits: target number of bits per granule.\n\t\t * \n\t\t * frameLength:\n\t\t * \n\t\t * gfc.ResvMax: maximum allowed reservoir\n\t\t * \n\t\t * gfc.ResvSize: current reservoir size\n\t\t * \n\t\t * l3_side.resvDrain_pre:\n\t\t * ancillary data to be added to previous frame:\n\t\t * (only usefull in VBR modes if it is possible to have\n\t\t * maxmp3buf < fullFrameBits)). Currently disabled,\n\t\t * see #define NEW_DRAIN\n\t\t * 2010-02-13: RH now enabled, it seems to be needed for CBR too,\n\t\t * as there exists one example, where the FhG decoder\n\t\t * can't decode a -b320 CBR file anymore.\n\t\t * \n\t\t * l3_side.resvDrain_post:\n\t\t * ancillary data to be added to this frame:\n\t\t * \n\t\t * </PRE>\n\t\t */ /* main_data_begin has 9 bits in MPEG-1, 8 bits MPEG-2 */ var resvLimit = 2048 * gfc.mode_gr - 8;\n /*\n\t\t * maximum allowed frame size. dont use more than this number of bits,\n\t\t * even if the frame has the space for them:\n\t\t */ if (gfp.brate > 320) /* in freeformat the buffer is constant */ maxmp3buf = 8 * int(gfp.brate * 1000 / (gfp.out_samplerate / 1152) / 8 + .5);\n else {\n /*\n\t\t\t * all mp3 decoders should have enough buffer to handle this value:\n\t\t\t * size of a 320kbps 32kHz frame\n\t\t\t */ maxmp3buf = 11520;\n /*\n\t\t\t * Bouvigne suggests this more lax interpretation of the ISO doc\n\t\t\t * instead of using 8*960.\n\t\t\t */ if (gfp.strict_ISO) maxmp3buf = 8 * int(320000 / (gfp.out_samplerate / 1152) / 8 + .5);\n }\n gfc.ResvMax = maxmp3buf - frameLength;\n if (gfc.ResvMax > resvLimit) gfc.ResvMax = resvLimit;\n if (gfc.ResvMax < 0 || gfp.disable_reservoir) gfc.ResvMax = 0;\n var fullFrameBits = mean_bits.bits * gfc.mode_gr + Math.min(gfc.ResvSize, gfc.ResvMax);\n if (fullFrameBits > maxmp3buf) fullFrameBits = maxmp3buf;\n $b5a7ab7c590f5d1e$var$assert(0 == gfc.ResvMax % 8);\n $b5a7ab7c590f5d1e$var$assert(gfc.ResvMax >= 0);\n l3_side.resvDrain_pre = 0;\n // frame analyzer code\n if (gfc.pinfo != null) {\n /*\n\t\t\t * expected bits per channel per granule [is this also right for\n\t\t\t * mono/stereo, MPEG-1/2 ?]\n\t\t\t */ gfc.pinfo.mean_bits = mean_bits.bits / 2;\n gfc.pinfo.resvsize = gfc.ResvSize;\n }\n return fullFrameBits;\n };\n /**\n\t * returns targ_bits: target number of bits to use for 1 granule<BR>\n\t * extra_bits: amount extra available from reservoir<BR>\n\t * Mark Taylor 4/99\n\t */ this.ResvMaxBits = function(gfp, mean_bits, targ_bits, cbr) {\n var gfc = gfp.internal_flags;\n var add_bits;\n var ResvSize = gfc.ResvSize, ResvMax = gfc.ResvMax;\n /* compensate the saved bits used in the 1st granule */ if (cbr != 0) ResvSize += mean_bits;\n if ((gfc.substep_shaping & 1) != 0) ResvMax *= 0.9;\n targ_bits.bits = mean_bits;\n /* extra bits if the reservoir is almost full */ if (ResvSize * 10 > ResvMax * 9) {\n add_bits = ResvSize - ResvMax * 9 / 10;\n targ_bits.bits += add_bits;\n gfc.substep_shaping |= 0x80;\n } else {\n add_bits = 0;\n gfc.substep_shaping &= 0x7f;\n /*\n\t\t\t * build up reservoir. this builds the reservoir a little slower\n\t\t\t * than FhG. It could simple be mean_bits/15, but this was rigged to\n\t\t\t * always produce 100 (the old value) at 128kbs\n\t\t\t */ if (!gfp.disable_reservoir && 0 == (gfc.substep_shaping & 1)) targ_bits.bits -= .1 * mean_bits;\n }\n /* amount from the reservoir we are allowed to use. ISO says 6/10 */ var extra_bits = ResvSize < gfc.ResvMax * 6 / 10 ? ResvSize : gfc.ResvMax * 6 / 10;\n extra_bits -= add_bits;\n if (extra_bits < 0) extra_bits = 0;\n return extra_bits;\n };\n /**\n\t * Called after a granule's bit allocation. Readjusts the size of the\n\t * reservoir to reflect the granule's usage.\n\t */ this.ResvAdjust = function(gfc, gi) {\n gfc.ResvSize -= gi.part2_3_length + gi.part2_length;\n };\n /**\n\t * Called after all granules in a frame have been allocated. Makes sure that\n\t * the reservoir size is within limits, possibly by adding stuffing bits.\n\t */ this.ResvFrameEnd = function(gfc, mean_bits) {\n var over_bits;\n var l3_side = gfc.l3_side;\n gfc.ResvSize += mean_bits * gfc.mode_gr;\n var stuffingBits = 0;\n l3_side.resvDrain_post = 0;\n l3_side.resvDrain_pre = 0;\n /* we must be byte aligned */ if ((over_bits = gfc.ResvSize % 8) != 0) stuffingBits += over_bits;\n over_bits = gfc.ResvSize - stuffingBits - gfc.ResvMax;\n if (over_bits > 0) {\n $b5a7ab7c590f5d1e$var$assert(0 == over_bits % 8);\n $b5a7ab7c590f5d1e$var$assert(over_bits >= 0);\n stuffingBits += over_bits;\n }\n var mdb_bytes = Math.min(l3_side.main_data_begin * 8, stuffingBits) / 8;\n l3_side.resvDrain_pre += 8 * mdb_bytes;\n stuffingBits -= 8 * mdb_bytes;\n gfc.ResvSize -= 8 * mdb_bytes;\n l3_side.main_data_begin -= mdb_bytes;\n /* drain the rest into this frames ancillary data */ l3_side.resvDrain_post += stuffingBits;\n gfc.ResvSize -= stuffingBits;\n };\n}\n$b5a7ab7c590f5d1e$exports = $b5a7ab7c590f5d1e$var$Reservoir;\n\n\n\nvar $jL6I1 = parcelRequire(\"jL6I1\");\n\nvar $ctaQC = parcelRequire(\"ctaQC\");\nparcelRequire(\"cPNKB\");\nvar $34609aeb1df0c2af$exports = {};\nfunction $34609aeb1df0c2af$var$Version() {\n /**\n * URL for the LAME website.\n */ var LAME_URL = \"http://www.mp3dev.org/\";\n /**\n * Major version number.\n */ var LAME_MAJOR_VERSION = 3;\n /**\n * Minor version number.\n */ var LAME_MINOR_VERSION = 98;\n /**\n * Patch level.\n */ var LAME_PATCH_VERSION = 4;\n /**\n * Major version number.\n */ var PSY_MAJOR_VERSION = 0;\n /**\n * Minor version number.\n */ var PSY_MINOR_VERSION = 93;\n /**\n * A string which describes the version of LAME.\n *\n * @return string which describes the version of LAME\n */ this.getLameVersion = function() {\n // primary to write screen reports\n return LAME_MAJOR_VERSION + \".\" + LAME_MINOR_VERSION + \".\" + LAME_PATCH_VERSION;\n };\n /**\n * The short version of the LAME version string.\n *\n * @return short version of the LAME version string\n */ this.getLameShortVersion = function() {\n // Adding date and time to version string makes it harder for output\n // validation\n return LAME_MAJOR_VERSION + \".\" + LAME_MINOR_VERSION + \".\" + LAME_PATCH_VERSION;\n };\n /**\n * The shortest version of the LAME version string.\n *\n * @return shortest version of the LAME version string\n */ this.getLameVeryShortVersion = function() {\n // Adding date and time to version string makes it harder for output\n return \"LAME\" + LAME_MAJOR_VERSION + \".\" + LAME_MINOR_VERSION + \"r\";\n };\n /**\n * String which describes the version of GPSYCHO\n *\n * @return string which describes the version of GPSYCHO\n */ this.getPsyVersion = function() {\n return PSY_MAJOR_VERSION + \".\" + PSY_MINOR_VERSION;\n };\n /**\n * String which is a URL for the LAME website.\n *\n * @return string which is a URL for the LAME website\n */ this.getLameUrl = function() {\n return LAME_URL;\n };\n /**\n * Quite useless for a java version, however we are compatible ;-)\n *\n * @return \"32bits\"\n */ this.getLameOsBitness = function() {\n return \"32bits\";\n };\n}\n$34609aeb1df0c2af$exports = $34609aeb1df0c2af$var$Version;\n\n\nvar $e674985ea62d27cf$exports = {};\n\nvar $3YDN3 = parcelRequire(\"3YDN3\");\nvar $e674985ea62d27cf$var$System = $3YDN3.System;\nvar $e674985ea62d27cf$var$VbrMode = $3YDN3.VbrMode;\nvar $e674985ea62d27cf$var$Float = $3YDN3.Float;\nvar $e674985ea62d27cf$var$ShortBlock = $3YDN3.ShortBlock;\nvar $e674985ea62d27cf$var$Util = $3YDN3.Util;\nvar $e674985ea62d27cf$var$Arrays = $3YDN3.Arrays;\nvar $e674985ea62d27cf$var$new_array_n = $3YDN3.new_array_n;\nvar $e674985ea62d27cf$var$new_byte = $3YDN3.new_byte;\nvar $e674985ea62d27cf$var$new_double = $3YDN3.new_double;\nvar $e674985ea62d27cf$var$new_float = $3YDN3.new_float;\nvar $e674985ea62d27cf$var$new_float_n = $3YDN3.new_float_n;\nvar $e674985ea62d27cf$var$new_int = $3YDN3.new_int;\nvar $e674985ea62d27cf$var$new_int_n = $3YDN3.new_int_n;\nvar $e674985ea62d27cf$var$assert = $3YDN3.assert;\n/**\n * A Vbr header may be present in the ancillary data field of the first frame of\n * an mp3 bitstream<BR>\n * The Vbr header (optionally) contains\n * <UL>\n * <LI>frames total number of audio frames in the bitstream\n * <LI>bytes total number of bytes in the bitstream\n * <LI>toc table of contents\n * </UL>\n *\n * toc (table of contents) gives seek points for random access.<BR>\n * The ith entry determines the seek point for i-percent duration.<BR>\n * seek point in bytes = (toc[i]/256.0) * total_bitstream_bytes<BR>\n * e.g. half duration seek point = (toc[50]/256.0) * total_bitstream_bytes\n */ $e674985ea62d27cf$var$VBRTag.NUMTOCENTRIES = 100;\n$e674985ea62d27cf$var$VBRTag.MAXFRAMESIZE = 2880;\nfunction $e674985ea62d27cf$var$VBRTag() {\n var lame;\n var bs;\n var v;\n this.setModules = function(_lame, _bs, _v) {\n lame = _lame;\n bs = _bs;\n v = _v;\n };\n var FRAMES_FLAG = 0x0001;\n var BYTES_FLAG = 0x0002;\n var TOC_FLAG = 0x0004;\n var VBR_SCALE_FLAG = 0x0008;\n var NUMTOCENTRIES = $e674985ea62d27cf$var$VBRTag.NUMTOCENTRIES;\n /**\n * (0xB40) the max freeformat 640 32kHz framesize.\n */ var MAXFRAMESIZE = $e674985ea62d27cf$var$VBRTag.MAXFRAMESIZE;\n /**\n * <PRE>\n * 4 bytes for Header Tag\n * 4 bytes for Header Flags\n * 100 bytes for entry (toc)\n * 4 bytes for frame size\n * 4 bytes for stream size\n * 4 bytes for VBR scale. a VBR quality indicator: 0=best 100=worst\n * 20 bytes for LAME tag. for example, \"LAME3.12 (beta 6)\"\n * ___________\n * 140 bytes\n * </PRE>\n */ var VBRHEADERSIZE = NUMTOCENTRIES + 4 + 4 + 4 + 4 + 4;\n var LAMEHEADERSIZE = VBRHEADERSIZE + 9 + 1 + 1 + 8 + 1 + 1 + 3 + 1 + 1 + 2 + 4 + 2 + 2;\n /**\n * The size of the Xing header MPEG-1, bit rate in kbps.\n */ var XING_BITRATE1 = 128;\n /**\n * The size of the Xing header MPEG-2, bit rate in kbps.\n */ var XING_BITRATE2 = 64;\n /**\n * The size of the Xing header MPEG-2.5, bit rate in kbps.\n */ var XING_BITRATE25 = 32;\n /**\n * ISO-8859-1 charset for byte to string operations.\n */ var ISO_8859_1 = null; //Charset.forName(\"ISO-8859-1\");\n /**\n * VBR header magic string.\n */ var VBRTag0 = \"Xing\";\n /**\n * VBR header magic string (VBR == VBRMode.vbr_off).\n */ var VBRTag1 = \"Info\";\n /**\n * Lookup table for fast CRC-16 computation. Uses the polynomial\n * x^16+x^15+x^2+1\n */ var crc16Lookup = [\n 0x0000,\n 0xC0C1,\n 0xC181,\n 0x0140,\n 0xC301,\n 0x03C0,\n 0x0280,\n 0xC241,\n 0xC601,\n 0x06C0,\n 0x0780,\n 0xC741,\n 0x0500,\n 0xC5C1,\n 0xC481,\n 0x0440,\n 0xCC01,\n 0x0CC0,\n 0x0D80,\n 0xCD41,\n 0x0F00,\n 0xCFC1,\n 0xCE81,\n 0x0E40,\n 0x0A00,\n 0xCAC1,\n 0xCB81,\n 0x0B40,\n 0xC901,\n 0x09C0,\n 0x0880,\n 0xC841,\n 0xD801,\n 0x18C0,\n 0x1980,\n 0xD941,\n 0x1B00,\n 0xDBC1,\n 0xDA81,\n 0x1A40,\n 0x1E00,\n 0xDEC1,\n 0xDF81,\n 0x1F40,\n 0xDD01,\n 0x1DC0,\n 0x1C80,\n 0xDC41,\n 0x1400,\n 0xD4C1,\n 0xD581,\n 0x1540,\n 0xD701,\n 0x17C0,\n 0x1680,\n 0xD641,\n 0xD201,\n 0x12C0,\n 0x1380,\n 0xD341,\n 0x1100,\n 0xD1C1,\n 0xD081,\n 0x1040,\n 0xF001,\n 0x30C0,\n 0x3180,\n 0xF141,\n 0x3300,\n 0xF3C1,\n 0xF281,\n 0x3240,\n 0x3600,\n 0xF6C1,\n 0xF781,\n 0x3740,\n 0xF501,\n 0x35C0,\n 0x3480,\n 0xF441,\n 0x3C00,\n 0xFCC1,\n 0xFD81,\n 0x3D40,\n 0xFF01,\n 0x3FC0,\n 0x3E80,\n 0xFE41,\n 0xFA01,\n 0x3AC0,\n 0x3B80,\n 0xFB41,\n 0x3900,\n 0xF9C1,\n 0xF881,\n 0x3840,\n 0x2800,\n 0xE8C1,\n 0xE981,\n 0x2940,\n 0xEB01,\n 0x2BC0,\n 0x2A80,\n 0xEA41,\n 0xEE01,\n 0x2EC0,\n 0x2F80,\n 0xEF41,\n 0x2D00,\n 0xEDC1,\n 0xEC81,\n 0x2C40,\n 0xE401,\n 0x24C0,\n 0x2580,\n 0xE541,\n 0x2700,\n 0xE7C1,\n 0xE681,\n 0x2640,\n 0x2200,\n 0xE2C1,\n 0xE381,\n 0x2340,\n 0xE101,\n 0x21C0,\n 0x2080,\n 0xE041,\n 0xA001,\n 0x60C0,\n 0x6180,\n 0xA141,\n 0x6300,\n 0xA3C1,\n 0xA281,\n 0x6240,\n 0x6600,\n 0xA6C1,\n 0xA781,\n 0x6740,\n 0xA501,\n 0x65C0,\n 0x6480,\n 0xA441,\n 0x6C00,\n 0xACC1,\n 0xAD81,\n 0x6D40,\n 0xAF01,\n 0x6FC0,\n 0x6E80,\n 0xAE41,\n 0xAA01,\n 0x6AC0,\n 0x6B80,\n 0xAB41,\n 0x6900,\n 0xA9C1,\n 0xA881,\n 0x6840,\n 0x7800,\n 0xB8C1,\n 0xB981,\n 0x7940,\n 0xBB01,\n 0x7BC0,\n 0x7A80,\n 0xBA41,\n 0xBE01,\n 0x7EC0,\n 0x7F80,\n 0xBF41,\n 0x7D00,\n 0xBDC1,\n 0xBC81,\n 0x7C40,\n 0xB401,\n 0x74C0,\n 0x7580,\n 0xB541,\n 0x7700,\n 0xB7C1,\n 0xB681,\n 0x7640,\n 0x7200,\n 0xB2C1,\n 0xB381,\n 0x7340,\n 0xB101,\n 0x71C0,\n 0x7080,\n 0xB041,\n 0x5000,\n 0x90C1,\n 0x9181,\n 0x5140,\n 0x9301,\n 0x53C0,\n 0x5280,\n 0x9241,\n 0x9601,\n 0x56C0,\n 0x5780,\n 0x9741,\n 0x5500,\n 0x95C1,\n 0x9481,\n 0x5440,\n 0x9C01,\n 0x5CC0,\n 0x5D80,\n 0x9D41,\n 0x5F00,\n 0x9FC1,\n 0x9E81,\n 0x5E40,\n 0x5A00,\n 0x9AC1,\n 0x9B81,\n 0x5B40,\n 0x9901,\n 0x59C0,\n 0x5880,\n 0x9841,\n 0x8801,\n 0x48C0,\n 0x4980,\n 0x8941,\n 0x4B00,\n 0x8BC1,\n 0x8A81,\n 0x4A40,\n 0x4E00,\n 0x8EC1,\n 0x8F81,\n 0x4F40,\n 0x8D01,\n 0x4DC0,\n 0x4C80,\n 0x8C41,\n 0x4400,\n 0x84C1,\n 0x8581,\n 0x4540,\n 0x8701,\n 0x47C0,\n 0x4680,\n 0x8641,\n 0x8201,\n 0x42C0,\n 0x4380,\n 0x8341,\n 0x4100,\n 0x81C1,\n 0x8081,\n 0x4040\n ];\n /***********************************************************************\n * Robert Hegemann 2001-01-17\n ***********************************************************************/ function addVbr(v, bitrate) {\n v.nVbrNumFrames++;\n v.sum += bitrate;\n v.seen++;\n if (v.seen < v.want) return;\n if (v.pos < v.size) {\n v.bag[v.pos] = v.sum;\n v.pos++;\n v.seen = 0;\n }\n if (v.pos == v.size) {\n for(var i = 1; i < v.size; i += 2)v.bag[i / 2] = v.bag[i];\n v.want *= 2;\n v.pos /= 2;\n }\n }\n function xingSeekTable(v, t) {\n if (v.pos <= 0) return;\n for(var i = 1; i < NUMTOCENTRIES; ++i){\n var j = i / NUMTOCENTRIES, act, sum;\n var indx = 0 | Math.floor(j * v.pos);\n if (indx > v.pos - 1) indx = v.pos - 1;\n act = v.bag[indx];\n sum = v.sum;\n var seek_point = 0 | 256. * act / sum;\n if (seek_point > 255) seek_point = 255;\n t[i] = 0xff & seek_point;\n }\n }\n /**\n * Add VBR entry, used to fill the VBR TOC entries.\n *\n * @param gfp\n * global flags\n */ this.addVbrFrame = function(gfp) {\n var gfc = gfp.internal_flags;\n var kbps = Tables.bitrate_table[gfp.version][gfc.bitrate_index];\n $e674985ea62d27cf$var$assert(gfc.VBR_seek_table.bag != null);\n addVbr(gfc.VBR_seek_table, kbps);\n };\n /**\n * Read big endian integer (4-bytes) from header.\n *\n * @param buf\n * header containing the integer\n * @param bufPos\n * offset into the header\n * @return extracted integer\n */ function extractInteger(buf, bufPos) {\n var x = buf[bufPos + 0] & 0xff;\n x <<= 8;\n x |= buf[bufPos + 1] & 0xff;\n x <<= 8;\n x |= buf[bufPos + 2] & 0xff;\n x <<= 8;\n x |= buf[bufPos + 3] & 0xff;\n return x;\n }\n /**\n * Write big endian integer (4-bytes) in the header.\n *\n * @param buf\n * header to write the integer into\n * @param bufPos\n * offset into the header\n * @param value\n * integer value to write\n */ function createInteger(buf, bufPos, value) {\n buf[bufPos + 0] = 0xff & (value >> 24 & 0xff);\n buf[bufPos + 1] = 0xff & (value >> 16 & 0xff);\n buf[bufPos + 2] = 0xff & (value >> 8 & 0xff);\n buf[bufPos + 3] = 0xff & (value & 0xff);\n }\n /**\n * Write big endian short (2-bytes) in the header.\n *\n * @param buf\n * header to write the integer into\n * @param bufPos\n * offset into the header\n * @param value\n * integer value to write\n */ function createShort(buf, bufPos, value) {\n buf[bufPos + 0] = 0xff & (value >> 8 & 0xff);\n buf[bufPos + 1] = 0xff & (value & 0xff);\n }\n /**\n * Check for magic strings (Xing/Info).\n *\n * @param buf\n * header to check\n * @param bufPos\n * header offset to check\n * @return magic string found\n */ function isVbrTag(buf, bufPos) {\n return new String(buf, bufPos, VBRTag0.length(), ISO_8859_1).equals(VBRTag0) || new String(buf, bufPos, VBRTag1.length(), ISO_8859_1).equals(VBRTag1);\n }\n function shiftInBitsValue(x, n, v) {\n return 0xff & (x << n | v & ~(-1 << n));\n }\n /**\n * Construct the MP3 header using the settings of the global flags.\n *\n * <img src=\"1000px-Mp3filestructure.svg.png\">\n *\n * @param gfp\n * global flags\n * @param buffer\n * header\n */ function setLameTagFrameHeader(gfp, buffer) {\n var gfc = gfp.internal_flags;\n // MP3 Sync Word\n buffer[0] = shiftInBitsValue(buffer[0], 8, 0xff);\n buffer[1] = shiftInBitsValue(buffer[1], 3, 7);\n buffer[1] = shiftInBitsValue(buffer[1], 1, gfp.out_samplerate < 16000 ? 0 : 1);\n // Version\n buffer[1] = shiftInBitsValue(buffer[1], 1, gfp.version);\n // 01 == Layer 3\n buffer[1] = shiftInBitsValue(buffer[1], 2, 1);\n // Error protection\n buffer[1] = shiftInBitsValue(buffer[1], 1, !gfp.error_protection ? 1 : 0);\n // Bit rate\n buffer[2] = shiftInBitsValue(buffer[2], 4, gfc.bitrate_index);\n // Frequency\n buffer[2] = shiftInBitsValue(buffer[2], 2, gfc.samplerate_index);\n // Pad. Bit\n buffer[2] = shiftInBitsValue(buffer[2], 1, 0);\n // Priv. Bit\n buffer[2] = shiftInBitsValue(buffer[2], 1, gfp.extension);\n // Mode\n buffer[3] = shiftInBitsValue(buffer[3], 2, gfp.mode.ordinal());\n // Mode extension (Used with Joint Stereo)\n buffer[3] = shiftInBitsValue(buffer[3], 2, gfc.mode_ext);\n // Copy\n buffer[3] = shiftInBitsValue(buffer[3], 1, gfp.copyright);\n // Original\n buffer[3] = shiftInBitsValue(buffer[3], 1, gfp.original);\n // Emphasis\n buffer[3] = shiftInBitsValue(buffer[3], 2, gfp.emphasis);\n /* the default VBR header. 48 kbps layer III, no padding, no crc */ /* but sampling freq, mode and copyright/copy protection taken */ /* from first valid frame */ buffer[0] = 0xff;\n var abyte = 0xff & (buffer[1] & 0xf1);\n var bitrate;\n if (1 == gfp.version) bitrate = XING_BITRATE1;\n else if (gfp.out_samplerate < 16000) bitrate = XING_BITRATE25;\n else bitrate = XING_BITRATE2;\n if (gfp.VBR == $e674985ea62d27cf$var$VbrMode.vbr_off) bitrate = gfp.brate;\n var bbyte;\n if (gfp.free_format) bbyte = 0x00;\n else bbyte = 0xff & 16 * lame.BitrateIndex(bitrate, gfp.version, gfp.out_samplerate);\n /*\n * Use as much of the info from the real frames in the Xing header:\n * samplerate, channels, crc, etc...\n */ if (gfp.version == 1) {\n /* MPEG1 */ buffer[1] = 0xff & (abyte | 0x0a);\n /* was 0x0b; */ abyte = 0xff & (buffer[2] & 0x0d);\n /* AF keep also private bit */ buffer[2] = 0xff & (bbyte | abyte);\n /* 64kbs MPEG1 frame */ } else {\n /* MPEG2 */ buffer[1] = 0xff & (abyte | 0x02);\n /* was 0x03; */ abyte = 0xff & (buffer[2] & 0x0d);\n /* AF keep also private bit */ buffer[2] = 0xff & (bbyte | abyte);\n /* 64kbs MPEG2 frame */ }\n }\n /**\n * Get VBR tag information\n *\n * @param buf\n * header to analyze\n * @param bufPos\n * offset into the header\n * @return VBR tag data\n */ this.getVbrTag = function(buf) {\n var pTagData = new VBRTagData();\n var bufPos = 0;\n /* get Vbr header data */ pTagData.flags = 0;\n /* get selected MPEG header data */ var hId = buf[bufPos + 1] >> 3 & 1;\n var hSrIndex = buf[bufPos + 2] >> 2 & 3;\n var hMode = buf[bufPos + 3] >> 6 & 3;\n var hBitrate = buf[bufPos + 2] >> 4 & 0xf;\n hBitrate = Tables.bitrate_table[hId][hBitrate];\n /* check for FFE syncword */ if (buf[bufPos + 1] >> 4 == 0xE) pTagData.samprate = Tables.samplerate_table[2][hSrIndex];\n else pTagData.samprate = Tables.samplerate_table[hId][hSrIndex];\n /* determine offset of header */ if (hId != 0) {\n /* mpeg1 */ if (hMode != 3) bufPos += 36;\n else bufPos += 21;\n } else /* mpeg2 */ if (hMode != 3) bufPos += 21;\n else bufPos += 13;\n if (!isVbrTag(buf, bufPos)) return null;\n bufPos += 4;\n pTagData.hId = hId;\n /* get flags */ var head_flags = pTagData.flags = extractInteger(buf, bufPos);\n bufPos += 4;\n if ((head_flags & FRAMES_FLAG) != 0) {\n pTagData.frames = extractInteger(buf, bufPos);\n bufPos += 4;\n }\n if ((head_flags & BYTES_FLAG) != 0) {\n pTagData.bytes = extractInteger(buf, bufPos);\n bufPos += 4;\n }\n if ((head_flags & TOC_FLAG) != 0) {\n if (pTagData.toc != null) for(var i = 0; i < NUMTOCENTRIES; i++)pTagData.toc[i] = buf[bufPos + i];\n bufPos += NUMTOCENTRIES;\n }\n pTagData.vbrScale = -1;\n if ((head_flags & VBR_SCALE_FLAG) != 0) {\n pTagData.vbrScale = extractInteger(buf, bufPos);\n bufPos += 4;\n }\n pTagData.headersize = (hId + 1) * 72000 * hBitrate / pTagData.samprate;\n bufPos += 21;\n var encDelay = buf[bufPos + 0] << 4;\n encDelay += buf[bufPos + 1] >> 4;\n var encPadding = (buf[bufPos + 1] & 0x0F) << 8;\n encPadding += buf[bufPos + 2] & 0xff;\n /* check for reasonable values (this may be an old Xing header, */ /* not a INFO tag) */ if (encDelay < 0 || encDelay > 3000) encDelay = -1;\n if (encPadding < 0 || encPadding > 3000) encPadding = -1;\n pTagData.encDelay = encDelay;\n pTagData.encPadding = encPadding;\n /* success */ return pTagData;\n };\n /**\n * Initializes the header\n *\n * @param gfp\n * global flags\n */ this.InitVbrTag = function(gfp) {\n var gfc = gfp.internal_flags;\n /**\n * <PRE>\n * Xing VBR pretends to be a 48kbs layer III frame. (at 44.1kHz).\n * (at 48kHz they use 56kbs since 48kbs frame not big enough for\n * table of contents)\n * let's always embed Xing header inside a 64kbs layer III frame.\n * this gives us enough room for a LAME version string too.\n * size determined by sampling frequency (MPEG1)\n * 32kHz: 216 bytes@48kbs 288bytes@ 64kbs\n * 44.1kHz: 156 bytes 208bytes@64kbs (+1 if padding = 1)\n * 48kHz: 144 bytes 192\n *\n * MPEG 2 values are the same since the framesize and samplerate\n * are each reduced by a factor of 2.\n * </PRE>\n */ var kbps_header;\n if (1 == gfp.version) kbps_header = XING_BITRATE1;\n else if (gfp.out_samplerate < 16000) kbps_header = XING_BITRATE25;\n else kbps_header = XING_BITRATE2;\n if (gfp.VBR == $e674985ea62d27cf$var$VbrMode.vbr_off) kbps_header = gfp.brate;\n // make sure LAME Header fits into Frame\n var totalFrameSize = (gfp.version + 1) * 72000 * kbps_header / gfp.out_samplerate;\n var headerSize = gfc.sideinfo_len + LAMEHEADERSIZE;\n gfc.VBR_seek_table.TotalFrameSize = totalFrameSize;\n if (totalFrameSize < headerSize || totalFrameSize > MAXFRAMESIZE) {\n /* disable tag, it wont fit */ gfp.bWriteVbrTag = false;\n return;\n }\n gfc.VBR_seek_table.nVbrNumFrames = 0;\n gfc.VBR_seek_table.nBytesWritten = 0;\n gfc.VBR_seek_table.sum = 0;\n gfc.VBR_seek_table.seen = 0;\n gfc.VBR_seek_table.want = 1;\n gfc.VBR_seek_table.pos = 0;\n if (gfc.VBR_seek_table.bag == null) {\n gfc.VBR_seek_table.bag = new int[400];\n gfc.VBR_seek_table.size = 400;\n }\n // write dummy VBR tag of all 0's into bitstream\n var buffer = $e674985ea62d27cf$var$new_byte(MAXFRAMESIZE);\n setLameTagFrameHeader(gfp, buffer);\n var n = gfc.VBR_seek_table.TotalFrameSize;\n for(var i = 0; i < n; ++i)bs.add_dummy_byte(gfp, buffer[i] & 0xff, 1);\n };\n /**\n * Fast CRC-16 computation (uses table crc16Lookup).\n *\n * @param value\n * @param crc\n * @return\n */ function crcUpdateLookup(value, crc) {\n var tmp = crc ^ value;\n crc = crc >> 8 ^ crc16Lookup[tmp & 0xff];\n return crc;\n }\n this.updateMusicCRC = function(crc, buffer, bufferPos, size) {\n for(var i = 0; i < size; ++i)crc[0] = crcUpdateLookup(buffer[bufferPos + i], crc[0]);\n };\n /**\n * Write LAME info: mini version + info on various switches used (Jonathan\n * Dee 2001/08/31).\n *\n * @param gfp\n * global flags\n * @param musicLength\n * music length\n * @param streamBuffer\n * pointer to output buffer\n * @param streamBufferPos\n * offset into the output buffer\n * @param crc\n * computation of CRC-16 of Lame Tag so far (starting at frame\n * sync)\n * @return number of bytes written to the stream\n */ function putLameVBR(gfp, musicLength, streamBuffer, streamBufferPos, crc) {\n var gfc = gfp.internal_flags;\n var bytesWritten = 0;\n /* encoder delay */ var encDelay = gfp.encoder_delay;\n /* encoder padding */ var encPadding = gfp.encoder_padding;\n /* recall: gfp.VBR_q is for example set by the switch -V */ /* gfp.quality by -q, -h, -f, etc */ var quality = 100 - 10 * gfp.VBR_q - gfp.quality;\n var version = v.getLameVeryShortVersion();\n var vbr;\n var revision = 0x00;\n var revMethod;\n // numbering different in vbr_mode vs. Lame tag\n var vbrTypeTranslator = [\n 1,\n 5,\n 3,\n 2,\n 4,\n 0,\n 3\n ];\n var lowpass = 0 | (gfp.lowpassfreq / 100.0 + .5 > 255 ? 255 : gfp.lowpassfreq / 100.0 + .5);\n var peakSignalAmplitude = 0;\n var radioReplayGain = 0;\n var audiophileReplayGain = 0;\n var noiseShaping = gfp.internal_flags.noise_shaping;\n var stereoMode = 0;\n var nonOptimal = 0;\n var sourceFreq = 0;\n var misc = 0;\n var musicCRC = 0;\n // psy model type: Gpsycho or NsPsytune\n var expNPsyTune = (gfp.exp_nspsytune & 1) != 0;\n var safeJoint = (gfp.exp_nspsytune & 2) != 0;\n var noGapMore = false;\n var noGapPrevious = false;\n var noGapCount = gfp.internal_flags.nogap_total;\n var noGapCurr = gfp.internal_flags.nogap_current;\n // 4 bits\n var athType = gfp.ATHtype;\n var flags = 0;\n // vbr modes\n var abrBitrate;\n switch(gfp.VBR){\n case vbr_abr:\n abrBitrate = gfp.VBR_mean_bitrate_kbps;\n break;\n case vbr_off:\n abrBitrate = gfp.brate;\n break;\n default:\n abrBitrate = gfp.VBR_min_bitrate_kbps;\n }\n // revision and vbr method\n if (gfp.VBR.ordinal() < vbrTypeTranslator.length) vbr = vbrTypeTranslator[gfp.VBR.ordinal()];\n else vbr = 0x00; // unknown\n revMethod = 0x10 * revision + vbr;\n // ReplayGain\n if (gfc.findReplayGain) {\n if (gfc.RadioGain > 0x1FE) gfc.RadioGain = 0x1FE;\n if (gfc.RadioGain < -510) gfc.RadioGain = -510;\n // set name code\n radioReplayGain = 0x2000;\n // set originator code to `determined automatically'\n radioReplayGain |= 0xC00;\n if (gfc.RadioGain >= 0) // set gain adjustment\n radioReplayGain |= gfc.RadioGain;\n else {\n // set the sign bit\n radioReplayGain |= 0x200;\n // set gain adjustment\n radioReplayGain |= -gfc.RadioGain;\n }\n }\n // peak sample\n if (gfc.findPeakSample) peakSignalAmplitude = Math.abs(0 | gfc.PeakSample / 32767.0 * Math.pow(2, 23) + .5);\n // nogap\n if (noGapCount != -1) {\n if (noGapCurr > 0) noGapPrevious = true;\n if (noGapCurr < noGapCount - 1) noGapMore = true;\n }\n // flags\n flags = athType + ((expNPsyTune ? 1 : 0) << 4) + ((safeJoint ? 1 : 0) << 5) + ((noGapMore ? 1 : 0) << 6) + ((noGapPrevious ? 1 : 0) << 7);\n if (quality < 0) quality = 0;\n // stereo mode field (Intensity stereo is not implemented)\n switch(gfp.mode){\n case MONO:\n stereoMode = 0;\n break;\n case STEREO:\n stereoMode = 1;\n break;\n case DUAL_CHANNEL:\n stereoMode = 2;\n break;\n case JOINT_STEREO:\n if (gfp.force_ms) stereoMode = 4;\n else stereoMode = 3;\n break;\n case NOT_SET:\n //$FALL-THROUGH$\n default:\n stereoMode = 7;\n break;\n }\n if (gfp.in_samplerate <= 32000) sourceFreq = 0x00;\n else if (gfp.in_samplerate == 48000) sourceFreq = 0x02;\n else if (gfp.in_samplerate > 48000) sourceFreq = 0x03;\n else // default is 44100Hz\n sourceFreq = 0x01;\n // Check if the user overrided the default LAME behavior with some\n // nasty options\n if (gfp.short_blocks == $e674985ea62d27cf$var$ShortBlock.short_block_forced || gfp.short_blocks == $e674985ea62d27cf$var$ShortBlock.short_block_dispensed || gfp.lowpassfreq == -1 && gfp.highpassfreq == -1 || /* \"-k\" */ gfp.scale_left < gfp.scale_right || gfp.scale_left > gfp.scale_right || gfp.disable_reservoir && gfp.brate < 320 || gfp.noATH || gfp.ATHonly || athType == 0 || gfp.in_samplerate <= 32000) nonOptimal = 1;\n misc = noiseShaping + (stereoMode << 2) + (nonOptimal << 5) + (sourceFreq << 6);\n musicCRC = gfc.nMusicCRC;\n // Write all this information into the stream\n createInteger(streamBuffer, streamBufferPos + bytesWritten, quality);\n bytesWritten += 4;\n for(var j = 0; j < 9; j++)streamBuffer[streamBufferPos + bytesWritten + j] = 0xff & version.charAt(j);\n bytesWritten += 9;\n streamBuffer[streamBufferPos + bytesWritten] = 0xff & revMethod;\n bytesWritten++;\n streamBuffer[streamBufferPos + bytesWritten] = 0xff & lowpass;\n bytesWritten++;\n createInteger(streamBuffer, streamBufferPos + bytesWritten, peakSignalAmplitude);\n bytesWritten += 4;\n createShort(streamBuffer, streamBufferPos + bytesWritten, radioReplayGain);\n bytesWritten += 2;\n createShort(streamBuffer, streamBufferPos + bytesWritten, audiophileReplayGain);\n bytesWritten += 2;\n streamBuffer[streamBufferPos + bytesWritten] = 0xff & flags;\n bytesWritten++;\n if (abrBitrate >= 255) streamBuffer[streamBufferPos + bytesWritten] = 0xFF;\n else streamBuffer[streamBufferPos + bytesWritten] = 0xff & abrBitrate;\n bytesWritten++;\n streamBuffer[streamBufferPos + bytesWritten] = 0xff & encDelay >> 4;\n streamBuffer[streamBufferPos + bytesWritten + 1] = 0xff & (encDelay << 4) + (encPadding >> 8);\n streamBuffer[streamBufferPos + bytesWritten + 2] = 0xff & encPadding;\n bytesWritten += 3;\n streamBuffer[streamBufferPos + bytesWritten] = 0xff & misc;\n bytesWritten++;\n // unused in rev0\n streamBuffer[streamBufferPos + bytesWritten++] = 0;\n createShort(streamBuffer, streamBufferPos + bytesWritten, gfp.preset);\n bytesWritten += 2;\n createInteger(streamBuffer, streamBufferPos + bytesWritten, musicLength);\n bytesWritten += 4;\n createShort(streamBuffer, streamBufferPos + bytesWritten, musicCRC);\n bytesWritten += 2;\n // Calculate tag CRC.... must be done here, since it includes previous\n // information\n for(var i = 0; i < bytesWritten; i++)crc = crcUpdateLookup(streamBuffer[streamBufferPos + i], crc);\n createShort(streamBuffer, streamBufferPos + bytesWritten, crc);\n bytesWritten += 2;\n return bytesWritten;\n }\n function skipId3v2(fpStream) {\n // seek to the beginning of the stream\n fpStream.seek(0);\n // read 10 bytes in case there's an ID3 version 2 header here\n var id3v2Header = $e674985ea62d27cf$var$new_byte(10);\n fpStream.readFully(id3v2Header);\n /* does the stream begin with the ID3 version 2 file identifier? */ var id3v2TagSize;\n if (!new String(id3v2Header, \"ISO-8859-1\").startsWith(\"ID3\")) /*\n * the tag size (minus the 10-byte header) is encoded into four\n * bytes where the most significant bit is clear in each byte\n */ id3v2TagSize = ((id3v2Header[6] & 0x7f) << 21 | (id3v2Header[7] & 0x7f) << 14 | (id3v2Header[8] & 0x7f) << 7 | id3v2Header[9] & 0x7f) + id3v2Header.length;\n else /* no ID3 version 2 tag in this stream */ id3v2TagSize = 0;\n return id3v2TagSize;\n }\n this.getLameTagFrame = function(gfp, buffer) {\n var gfc = gfp.internal_flags;\n if (!gfp.bWriteVbrTag) return 0;\n if (gfc.Class_ID != Lame.LAME_ID) return 0;\n if (gfc.VBR_seek_table.pos <= 0) return 0;\n if (buffer.length < gfc.VBR_seek_table.TotalFrameSize) return gfc.VBR_seek_table.TotalFrameSize;\n $e674985ea62d27cf$var$Arrays.fill(buffer, 0, gfc.VBR_seek_table.TotalFrameSize, 0);\n // 4 bytes frame header\n setLameTagFrameHeader(gfp, buffer);\n // Create TOC entries\n var toc = $e674985ea62d27cf$var$new_byte(NUMTOCENTRIES);\n if (gfp.free_format) for(var i = 1; i < NUMTOCENTRIES; ++i)toc[i] = 0xff & 255 * i / 100;\n else xingSeekTable(gfc.VBR_seek_table, toc);\n // Start writing the tag after the zero frame\n var streamIndex = gfc.sideinfo_len;\n /**\n * Note: Xing header specifies that Xing data goes in the ancillary data\n * with NO ERROR PROTECTION. If error protecton in enabled, the Xing\n * data still starts at the same offset, and now it is in sideinfo data\n * block, and thus will not decode correctly by non-Xing tag aware\n * players\n */ if (gfp.error_protection) streamIndex -= 2;\n // Put Vbr tag\n if (gfp.VBR == $e674985ea62d27cf$var$VbrMode.vbr_off) {\n buffer[streamIndex++] = 0xff & VBRTag1.charAt(0);\n buffer[streamIndex++] = 0xff & VBRTag1.charAt(1);\n buffer[streamIndex++] = 0xff & VBRTag1.charAt(2);\n buffer[streamIndex++] = 0xff & VBRTag1.charAt(3);\n } else {\n buffer[streamIndex++] = 0xff & VBRTag0.charAt(0);\n buffer[streamIndex++] = 0xff & VBRTag0.charAt(1);\n buffer[streamIndex++] = 0xff & VBRTag0.charAt(2);\n buffer[streamIndex++] = 0xff & VBRTag0.charAt(3);\n }\n // Put header flags\n createInteger(buffer, streamIndex, FRAMES_FLAG + BYTES_FLAG + TOC_FLAG + VBR_SCALE_FLAG);\n streamIndex += 4;\n // Put Total Number of frames\n createInteger(buffer, streamIndex, gfc.VBR_seek_table.nVbrNumFrames);\n streamIndex += 4;\n // Put total audio stream size, including Xing/LAME Header\n var streamSize = gfc.VBR_seek_table.nBytesWritten + gfc.VBR_seek_table.TotalFrameSize;\n createInteger(buffer, streamIndex, 0 | streamSize);\n streamIndex += 4;\n /* Put TOC */ $e674985ea62d27cf$var$System.arraycopy(toc, 0, buffer, streamIndex, toc.length);\n streamIndex += toc.length;\n if (gfp.error_protection) // (jo) error_protection: add crc16 information to header\n bs.CRC_writeheader(gfc, buffer);\n // work out CRC so far: initially crc = 0\n var crc = 0x00;\n for(var i = 0; i < streamIndex; i++)crc = crcUpdateLookup(buffer[i], crc);\n // Put LAME VBR info\n streamIndex += putLameVBR(gfp, streamSize, buffer, streamIndex, crc);\n return gfc.VBR_seek_table.TotalFrameSize;\n };\n /**\n * Write final VBR tag to the file.\n *\n * @param gfp\n * global flags\n * @param stream\n * stream to add the VBR tag to\n * @return 0 (OK), -1 else\n * @throws IOException\n * I/O error\n */ this.putVbrTag = function(gfp, stream) {\n var gfc = gfp.internal_flags;\n if (gfc.VBR_seek_table.pos <= 0) return -1;\n // Seek to end of file\n stream.seek(stream.length());\n // Get file size, abort if file has zero length.\n if (stream.length() == 0) return -1;\n // The VBR tag may NOT be located at the beginning of the stream. If an\n // ID3 version 2 tag was added, then it must be skipped to write the VBR\n // tag data.\n var id3v2TagSize = skipId3v2(stream);\n // Seek to the beginning of the stream\n stream.seek(id3v2TagSize);\n var buffer = $e674985ea62d27cf$var$new_byte(MAXFRAMESIZE);\n var bytes = getLameTagFrame(gfp, buffer);\n if (bytes > buffer.length) return -1;\n if (bytes < 1) return 0;\n // Put it all to disk again\n stream.write(buffer, 0, bytes);\n // success\n return 0;\n };\n}\n$e674985ea62d27cf$exports = $e674985ea62d27cf$var$VBRTag;\n\n\nfunction $dd7ee3788d91dcb8$var$GetAudio() {\n var parse;\n var mpg;\n this.setModules = function(parse2, mpg2) {\n parse = parse2;\n mpg = mpg2;\n };\n}\nfunction $dd7ee3788d91dcb8$var$Parse() {\n var ver;\n var id3;\n var pre;\n this.setModules = function(ver2, id32, pre2) {\n ver = ver2;\n id3 = id32;\n pre = pre2;\n };\n}\nfunction $dd7ee3788d91dcb8$var$MPGLib() {}\nfunction $dd7ee3788d91dcb8$var$ID3Tag() {\n var bits;\n var ver;\n this.setModules = function(_bits, _ver) {\n bits = _bits;\n ver = _ver;\n };\n}\nfunction $dd7ee3788d91dcb8$var$Mp3Encoder(channels, samplerate, kbps) {\n if (arguments.length != 3) {\n console.error(\"WARN: Mp3Encoder(channels, samplerate, kbps) not specified\");\n channels = 1;\n samplerate = 44100;\n kbps = 128;\n }\n var lame = new $kk1yk();\n var gaud = new $dd7ee3788d91dcb8$var$GetAudio();\n var ga = new $b8dhq();\n var bs = new $ctaQC();\n var p = new $7960aab77e945546$exports();\n var qupvt = new $84mea();\n var qu = new $df08f3a0d41b7a78$exports();\n var vbr = new $e674985ea62d27cf$exports();\n var ver = new $34609aeb1df0c2af$exports();\n var id3 = new $dd7ee3788d91dcb8$var$ID3Tag();\n var rv = new $b5a7ab7c590f5d1e$exports();\n var tak = new $65Sx2();\n var parse = new $dd7ee3788d91dcb8$var$Parse();\n var mpg = new $dd7ee3788d91dcb8$var$MPGLib();\n lame.setModules(ga, bs, p, qupvt, qu, vbr, ver, id3, mpg);\n bs.setModules(ga, mpg, ver, vbr);\n id3.setModules(bs, ver);\n p.setModules(lame);\n qu.setModules(bs, rv, qupvt, tak);\n qupvt.setModules(tak, rv, lame.enc.psy);\n rv.setModules(bs);\n tak.setModules(qupvt);\n vbr.setModules(lame, bs, ver);\n gaud.setModules(parse, mpg);\n parse.setModules(ver, id3, p);\n var gfp = lame.lame_init();\n gfp.num_channels = channels;\n gfp.in_samplerate = samplerate;\n gfp.brate = kbps;\n gfp.mode = $jL6I1.STEREO;\n gfp.quality = 3;\n gfp.bWriteVbrTag = false;\n gfp.disable_reservoir = true;\n gfp.write_id3tag_automatic = false;\n var retcode = lame.lame_init_params(gfp);\n $dd7ee3788d91dcb8$var$assert(0 == retcode);\n var maxSamples = 1152;\n var mp3buf_size = 0 | 1.25 * maxSamples + 7200;\n var mp3buf = $dd7ee3788d91dcb8$var$new_byte(mp3buf_size);\n this.encodeBuffer = function(left, right) {\n if (channels == 1) right = left;\n $dd7ee3788d91dcb8$var$assert(left.length == right.length);\n if (left.length > maxSamples) {\n maxSamples = left.length;\n mp3buf_size = 0 | 1.25 * maxSamples + 7200;\n mp3buf = $dd7ee3788d91dcb8$var$new_byte(mp3buf_size);\n }\n var _sz = lame.lame_encode_buffer(gfp, left, right, left.length, mp3buf, 0, mp3buf_size);\n return new Int8Array(mp3buf.subarray(0, _sz));\n };\n this.flush = function() {\n var _sz = lame.lame_encode_flush(gfp, mp3buf, 0, mp3buf_size);\n return new Int8Array(mp3buf.subarray(0, _sz));\n };\n}\nfunction $dd7ee3788d91dcb8$var$WavHeader() {\n this.dataOffset = 0;\n this.dataLen = 0;\n this.channels = 0;\n this.sampleRate = 0;\n}\nfunction $dd7ee3788d91dcb8$var$fourccToInt(fourcc) {\n return fourcc.charCodeAt(0) << 24 | fourcc.charCodeAt(1) << 16 | fourcc.charCodeAt(2) << 8 | fourcc.charCodeAt(3);\n}\n$dd7ee3788d91dcb8$var$WavHeader.RIFF = $dd7ee3788d91dcb8$var$fourccToInt(\"RIFF\");\n$dd7ee3788d91dcb8$var$WavHeader.WAVE = $dd7ee3788d91dcb8$var$fourccToInt(\"WAVE\");\n$dd7ee3788d91dcb8$var$WavHeader.fmt_ = $dd7ee3788d91dcb8$var$fourccToInt(\"fmt \");\n$dd7ee3788d91dcb8$var$WavHeader.data = $dd7ee3788d91dcb8$var$fourccToInt(\"data\");\n$dd7ee3788d91dcb8$var$WavHeader.readHeader = function(dataView) {\n var w = new $dd7ee3788d91dcb8$var$WavHeader();\n var header = dataView.getUint32(0, false);\n if ($dd7ee3788d91dcb8$var$WavHeader.RIFF != header) return;\n var fileLen = dataView.getUint32(4, true);\n if ($dd7ee3788d91dcb8$var$WavHeader.WAVE != dataView.getUint32(8, false)) return;\n if ($dd7ee3788d91dcb8$var$WavHeader.fmt_ != dataView.getUint32(12, false)) return;\n var fmtLen = dataView.getUint32(16, true);\n var pos = 20;\n switch(fmtLen){\n case 16:\n case 18:\n w.channels = dataView.getUint16(pos + 2, true);\n w.sampleRate = dataView.getUint32(pos + 4, true);\n break;\n default:\n throw \"extended fmt chunk not implemented\";\n }\n pos += fmtLen;\n var data = $dd7ee3788d91dcb8$var$WavHeader.data;\n var len = 0;\n while(data != header){\n header = dataView.getUint32(pos, false);\n len = dataView.getUint32(pos + 4, true);\n if (data == header) break;\n pos += len + 8;\n }\n w.dataLen = len;\n w.dataOffset = pos + 8;\n return w;\n};\n$dd7ee3788d91dcb8$export$9ca5d136ebf61cf2 = $dd7ee3788d91dcb8$var$Mp3Encoder;\n$dd7ee3788d91dcb8$export$cb948f2d6837f136 = $dd7ee3788d91dcb8$var$WavHeader;\n\n\nexport {$dd7ee3788d91dcb8$export$9ca5d136ebf61cf2 as Mp3Encoder, $dd7ee3788d91dcb8$export$cb948f2d6837f136 as WavHeader, $dd7ee3788d91dcb8$exports as default};\n//# sourceMappingURL=lame.module.js.map\n"],"names":["$parcel$export","e","n","v","s","Object","defineProperty","get","set","enumerable","configurable","$parcel$global","globalThis","self","window","global","$parcel$modules","$parcel$inits","parcelRequire","id","exports","init","module","call","err","Error","code","register","$3YDN3","$ecb6e13812bdc08b$var$System","System","$ecb6e13812bdc08b$var$VbrMode","VbrMode","Float","$ecb6e13812bdc08b$var$ShortBlock","ShortBlock","Util","Arrays","new_array_n","new_byte","new_double","$ecb6e13812bdc08b$var$new_float","new_float","new_float_n","new_int","$ecb6e13812bdc08b$var$new_int_n","new_int_n","$ecb6e13812bdc08b$var$new_short_n","new_short_n","$ecb6e13812bdc08b$var$assert","assert","$d2VP0","$5HJeD","$4SDnr","$cU3Yf","$2qGTD","$e32wu","$ctaQC","$dQDcS","$cPNKB","$ecb6e13812bdc08b$var$Lame","MPEGMode","LAME_MAXALBUMART","V9","V8","V7","V6","V5","V4","V3","V2","V1","V0","R3MIX","STANDARD","EXTREME","INSANE","STANDARD_FAST","EXTREME_FAST","MEDIUM","MEDIUM_FAST","LAME_MAXMP3BUFFER","ga","bs","p","qupvt","qu","psy","vbr","id3","mpglib","enc","setModules","_ga","_bs","_p","_qupvt","_qu","_vbr","_ver","_id3","_mpglib","PSY","mask_adjust","mask_adjust_short","bo_l_weight","SBMAX_l","bo_s_weight","SBMAX_s","LowPassHighPass","lowerlimit","BandPass","bitrate","lPass","lowpass","LAME_ID","lame_init_old","gfp","gfc","class_id","internal_flags","mode","NOT_SET","original","in_samplerate","num_channels","num_samples","bWriteVbrTag","quality","short_blocks","subblock_gain","lowpassfreq","highpassfreq","lowpasswidth","highpasswidth","VBR","vbr_off","VBR_q","ATHcurve","VBR_mean_bitrate_kbps","VBR_min_bitrate_kbps","VBR_max_bitrate_kbps","VBR_hard_min","VBR_min_bitrate","VBR_max_bitrate","quant_comp","quant_comp_short","msfix","resample_ratio","OldValue","CurrentStep","masking_lower","nsPsy","attackthre","attackthre_s","scale","athaa_type","ATHtype","athaa_loudapprox","athaa_sensitivity","useTemporal","interChRatio","mf_samples_to_encode","ENCDELAY","POSTDELAY","encoder_padding","mf_size","MDCTDELAY","findReplayGain","decode_on_the_fly","findPeakSample","RadioGain","AudiophileGain","noclipGainChange","noclipScale","preset","write_id3tag_automatic","lame_init","lame_allocated_gfp","filter_coef","x","Math","cos","PI","nearestBitrateFullIndex","full_bitrate_table","lower_range","lower_range_kbps","upper_range","upper_range_kbps","b","max","optimum_samplefreq","input_samplefreq","suggested_samplefreq","SmpFrqIndex","sample_freq","gpf","version","FindNearestBitrate","bRate","samplerate","bitrate_table","i","abs","BitrateIndex","optimum_bandwidth","lh","freq_map","table_index","lame_init_params_ppflt","lowpass_band","highpass_band","lowpass1","minband","band","freq","lowpass2","min","highpass2","highpass1","println","maxband","fc1","fc2","amp_filter","lame_init_qval","psymodel","noise_shaping","noise_shaping_amp","noise_shaping_stop","use_best_huffman","full_outer_loop","substep_shaping","lame_init_bitstream","frameNum","id3tag_write_v2","bitrate_stereoMode_Hist","bitrate_blockType_Hist","PeakSample","InitVbrTag","lame_init_params","Class_ID","ATH","rgdata","channels_in","MONO","channels_out","mode_ext","MPG_MD_MS_LR","force_ms","brate","vbr_mtrh","vbr_mt","free_format","EQ","compression_ratio","out_samplerate","map2MP3Frequency","int","samplerate_index","vbr_abr","vbr_rh","a","m","VBR_q_frac","linear_int","InitGainAnalysis","GainAnalysis","INIT_GAIN_ANALYSIS_ERROR","decode_only","hip","hip_decode_exit","hip_decode_init","mode_gr","framesize","encoder_delay","cmp","JOINT_STEREO","bitrate_index","analysis","pinfo","init_bit_stream_w","j","scalefac_band","l","sfBandIndex","PSFB21","size","start","psfb21","PSFB12","psfb12","sideinfo_len","error_protection","k","pefirbuf","apply_preset","LAME_DEFAULT_QUALITY","maskingadjust","maskingadjust_short","experimentalY","sfb21_extra","iteration_loop","VBRNewIterationLoop","VBROldIterationLoop","vbrmode","ABRIterationLoop","tune","tune_value_a","useAdjust","aaSensitivityP","pow","short_block_allowed","STEREO","short_block_coupled","exp_nspsytune","NSATTACKTHRE","NSATTACKTHRE_S","slot_lag","frac_SpF","iteration_init","psymodel_init","update_inbuffer_size","nsamples","in_buffer_0","in_buffer_nsamples","in_buffer_1","lame_encode_flush","mp3buffer","mp3bufferPos","mp3buffer_size","buffer","imp3","mp3count","mp3buffer_size_remaining","end_padding","frames_left","samples_to_encode","mf_needed","calcNeeded","bunch","frame_num","lame_encode_buffer","flush_bitstream","copy_buffer","id3tag_write_v1","buffer_l","buffer_r","mp3buf","mp3bufPos","mp3buf_size","in_buffer","lame_encode_buffer_sample","BLKSIZE","FFTOFFSET","MFSIZE","mp3size","ret","ch","mp3out","mfbuf","NEQ","scale_left","scale_right","in_bufferPos","in_buffer_ptr","n_in","n_out","inOut","InOut","fill_buffer","AnalyzeSamples","GAIN_ANALYSIS_ERROR","buf_size","lame_encode_frame","inbuf_l","inbuf_r","lame_encode_mp3_frame","NumUsed","num_used","gcd","blackman","fcn","wcn","x2","bkwn","sin","fill_buffer_resample","outbuf","outbufPos","desired_len","inbuf","len","bpc","BPC","intratio","floor","filter_l","BLACKSIZE","fill_buffer_resample_init","inbuf_old","blackfilt","itime","sum","offset","time0","joff","xvalue","j2","y","n_shift","io","numUsed","$2e55d7364d01815c$var$new_byte","count","Int8Array","$2e55d7364d01815c$var$new_short","Int16Array","$2e55d7364d01815c$var$new_int","Int32Array","$2e55d7364d01815c$var$new_float","Float32Array","$2e55d7364d01815c$var$new_double","Float64Array","$2e55d7364d01815c$var$new_float_n","args","length","sz","slice","A","push","$2e55d7364d01815c$var$new_int_n","$2e55d7364d01815c$var$new_short_n","$2e55d7364d01815c$var$new_array_n","Array","$2e55d7364d01815c$var$Arrays","fill","fromIndex","toIndex","val","arguments","$2e55d7364d01815c$var$System","arraycopy","src","srcPos","dest","destPos","srcEnd","out","message","console","log","printf","apply","$2e55d7364d01815c$var$Util","SQRT2","FAST_LOG10","log10","FAST_LOG10_X","$2e55d7364d01815c$var$ShortBlock","ordinal","short_block_dispensed","short_block_forced","$2e55d7364d01815c$var$Float","MAX_VALUE","$2e55d7364d01815c$var$VbrMode","vbr_default","$2e55d7364d01815c$var$assert","$97f850779472263e$var$VbrMode","$97f850779472263e$var$Float","$97f850779472263e$var$ShortBlock","$97f850779472263e$var$Util","$97f850779472263e$var$Arrays","$97f850779472263e$var$new_float","$97f850779472263e$var$new_float_n","$97f850779472263e$var$new_int","$97f850779472263e$var$assert","$2g11P","$97f850779472263e$var$PsyModel","fft","LOG10","rpelev","rpelev2","rpelev_s","rpelev2_s","DELBARK","VO_SCALE","temporalmask_sustain_sec","NS_PREECHO_ATT0","NS_PREECHO_ATT1","NS_PREECHO_ATT2","NS_MSFIX","NSFIRLEN","LN_TO_LOG10","NON_LINEAR_SCALE_ENERGY","psycho_loudness_approx","energy","loudness_power","eql_w","compute_ffts","fftenergy","fftenergy_s","wsamp_l","wsamp_lPos","wsamp_s","wsamp_sPos","gr_out","chn","bufPos","fft_long","fft_short","r","BLKSIZE_s","re","im","totalenergy","HBLKSIZE","tot_ener","energy_save","pe","loudness_sq","loudness_sq_save","I1LIMIT","I2LIMIT","MLIMIT","ma_max_i1","ma_max_i2","ma_max_m","tab","init_mask_add_max_values","table1","table2","table3","mask_add","m1","m2","kk","shortblock","ratio","cb_s","adjust","cb_l","f","table2_","vbrpsy_mask_add","calc_interchannel_masking","sb","thm","sblock","msfix1","mld","mld_l","en","rmid","rside","mld_s","ns_msfix","athadjust","msfix2","athlower","thmLR","thmM","thmS","ath","bm_l","bm_s","convert_partition2scalefac_s","eb","thr","enn","thmm","bo_s_sb","bo_s","npart_s","b_lim","w_curr","w_next","convert_partition2scalefac_l","bo_l_sb","bo_l","npart_l","compute_masking_s","ebb","numlines_s","el","s3ind_s","ecb","s3_ss","nb_s1","blocktype_old","SHORT_TYPE","nb_s2","CBANDS","block_type_set","uselongblock","blocktype_d","blocktype","NORM_TYPE","START_TYPE","STOP_TYPE","NS_INTERP","regcoef_s","pecalc_s","mr","pe_s","regcoef_l","pecalc_l","pe_l","calc_energy","avg","numlines_l","rnumlines_l","calc_mask_index_l","mask_idx","last_tab_entry","fircoef","L3psycho_anal_ns","masking_ratio","masking_MS_ratio","percep_entropy","percep_MS_entropy","wsamp_L","wsamp_S","eb_l","eb_s","numchn","ns_hpfsmpl","pcfact","mask_idx_l","mask_idx_s","ResvMax","ResvSize","firbuf1","firbufPos","sum1","sum2","assign","en_subshort","en_short","attack_intensity","ns_uselongblock","attackThreshold","ns_attacks","HBLKSIZE_s","last_en_subshort","pf","pfPos","pfe","ers","ers_save","lastAttacks","idx","s3ind","eb2","s3_ll","nb_1","nb_2","ATHlower","ppe","ppePos","type","vbrpsy_compute_fft_l","vbrpsy_compute_fft_s","vbrpsy_compute_loudness_approximation_l","fircoef_","vbrpsy_attack_detection","sub_short_factor","n_chn_out","n_chn_psy","firbuf","factor","u","vbrpsy_skip_masking_s","vbrpsy_skip_masking_l","psyvbr_calc_mask_index_s","vbrpsy_compute_masking_s","float","last","dd","dd_n","avg_mask","minval_s","vbrpsy_compute_masking_l","t","ecb_limit","ecb_limit_2","ecb_limit_1","minval_l","vbrpsy_compute_block_type","vbrpsy_apply_block_type","vbrpsy_compute_MS_thresholds","cb_mld","ath_cb","ebM","ebS","thmL","thmR","mld_m","thmMS","L3psycho_anal_vbr","ch01","mld_cb_l","mld_cb_s","new_thmm","s3_func_x","bark","hf_slope","tempx","tempy","exp","norm_s3_func_x","lim_a","lim_b","h","norm","s3_func","temp","sqrt","freq2bark","atan","init_numline","numlines","bo","bm","bval","bval_width","bo_w","sfreq","blksize","scalepos","deltafreq","sbmax","b_frq","sample_freq_frac","partition","ni","bark1","sfb","i1","i2","end","arg","f_tmp","w","bark2","init_s3_values","npart","use_old_s3","s3","numberOfNoneZero","s3_x_norm","stereo_demask","useOldS3","bvl_a","bvl_b","snr_l_a","snr_l_b","snr_s_a","snr_s_b","experimentalZ","ms_ener_ratio_old","snr","level","ATHformula","init_fft","decay","frame_duration","adjustLimit","freq_inc","eql_balance","ATHformula_GB","value","$1a4ddf9b01454eb6$var$Util","$1a4ddf9b01454eb6$var$new_float","$1a4ddf9b01454eb6$var$FFT","window_s","costab","fht","fz","fzPos","tri","k4","fi","gi","fn","s1","c1","k1","k2","k3","kx","f0","f1","f2","f3","c2","s2","g0","g1","g2","g3","rv_tbl","x_real","jj","$9580d6e047027232$var$System","$9580d6e047027232$var$VbrMode","$9580d6e047027232$var$new_array_n","$9580d6e047027232$var$new_float","$9580d6e047027232$var$new_float_n","$9580d6e047027232$var$new_int","$9580d6e047027232$var$assert","$9580d6e047027232$var$Encoder","DECDELAY","SBLIMIT","SBPSY_l","SBPSY_s","MPG_MD_LR_LR","MPG_MD_LR_I","MPG_MD_MS_I","NewMDCT","III_psy_ratio","_psy","newMDCT","adjust_ATH","gr2_max","max_pow","adj_lim_new","updateStats","gr","bt","l3_side","tt","block_type","mixed_block_flag","lame_encode_frame_init","primebuff0","primebuff1","mdct_sub48","masking_LR","masking_MS","masking","ms_ener_ratio","pe_MS","pe_use","padding","bufp","bufpPos","cod_info","sum_pe_MS","sum_pe_LR","gi0","gi1","ms_ratio","xr","format_bitstream","addVbrFrame","pcmdata","set_frame_pinfo","$9c8c9409243421ca$var$System","$9c8c9409243421ca$var$Util","$9c8c9409243421ca$var$Arrays","$9c8c9409243421ca$var$new_float","$9c8c9409243421ca$var$NewMDCT","enwindow","NS","NL","win","tantab_l","cx","ca","cs","order","window_subband","x1","x1Pos","wp","mdct_short","inout","inoutPos","tc0","tc1","tc2","ts0","ts1","ts2","mdct_long","outPos","_in","ct","st","tc3","tc4","ts5","ts6","ts7","ts8","ts3","ts4","tc5","tc6","tc7","tc8","w0","w1","wk","wkPos","mdct_enc","mdct_encPos","samp","sb_sample","sampPos","band0","band1","work","bu","bd","$51XxS","$cbefc13b27188c2b$var$III_psy_ratio","$3a9b3c3a1c7d1011$var$System","$3a9b3c3a1c7d1011$var$new_float","$3a9b3c3a1c7d1011$var$new_float_n","$3a9b3c3a1c7d1011$var$III_psy_xmin","iii_psy_xmin","$e6279c632d7fdac0$var$MPEGMode","_ordinal","DUAL_CHANNEL","$jL6I1","$42740ea95db3cb8e$var$LameGlobalFlags","copyright","extension","emphasis","strict_ISO","disable_reservoir","ATHonly","ATHshort","noATH","$38dac00579cf6ffc$var$new_byte","$38dac00579cf6ffc$var$new_double","$38dac00579cf6ffc$var$new_float","$38dac00579cf6ffc$var$new_float_n","$38dac00579cf6ffc$var$new_int","$38dac00579cf6ffc$var$new_int_n","$eWXBy","$7imnH","$7yzUB","$jTmCQ","$arIi9","$38dac00579cf6ffc$var$LameInternalFlags","MAX_HEADER_BUF","MAX_BITS_PER_CHANNEL","MAX_BITS_PER_GRANULE","MAX_HEADER_LEN","iteration_init_init","tag_spec","nMusicCRC","bv_scf","pseudohalf","SFBMAX","Header","write_timing","ptr","buf","header","h_ptr","w_ptr","ancillary_flag","numlines_s_num1","numlines_l_num1","ms_ratio_s_old","ms_ratio_l_old","VBR_seek_table","nogap_total","nogap_current","$ae24b7bb56fee1da$var$new_int","$7weBo","$ae24b7bb56fee1da$var$IIISideInfo","main_data_begin","private_bits","resvDrain_pre","resvDrain_post","scfsi","$5796d93ba9162632$var$new_float","$5796d93ba9162632$var$new_int","$5796d93ba9162632$var$GrInfo","l3_enc","scalefac","xrpow_max","part2_3_length","big_values","count1","global_gain","scalefac_compress","table_select","region0_count","region1_count","preflag","scalefac_scale","count1table_select","part2_length","sfb_lmax","sfb_smin","psy_lmax","sfbmax","psymax","sfbdivide","width","count1bits","sfb_partition_table","slen","max_nonzero_coeff","clone_int","array","clone_float","other","$79aec86e829b6e82$var$L3Side","$54fb93475471cb87$var$System","$54fb93475471cb87$var$new_int","$54fb93475471cb87$var$ScaleFac","arrL","arrS","arr21","arr12","$580790bdd94a8b57$var$new_float","$580790bdd94a8b57$var$new_float_n","$580790bdd94a8b57$var$new_int","$580790bdd94a8b57$var$NsPsy","longfact","shortfact","$e7b4b455db8db26b$var$VBRSeekInfo","seen","want","pos","bag","nVbrNumFrames","nBytesWritten","TotalFrameSize","$964dcb8066029e00$var$new_float","$964dcb8066029e00$var$ATH","$1c4f48cc96a3a753$var$new_float","$1c4f48cc96a3a753$var$new_int","$b8dhq","$1c4f48cc96a3a753$var$ReplayGain","linprebuf","MAX_ORDER","linpre","lstepbuf","MAX_SAMPLES_PER_WINDOW","lstep","loutbuf","lout","rinprebuf","rinpre","rstepbuf","rstep","routbuf","rout","sampleWindow","totsamp","lsum","rsum","freqindex","first","STEPS_per_dB","MAX_dB","B","$81aabe360221f821$var$System","$81aabe360221f821$var$Arrays","$81aabe360221f821$var$GainAnalysis","GAIN_NOT_ENOUGH_SAMPLES","GAIN_ANALYSIS_OK","INIT_GAIN_ANALYSIS_OK","YULE_ORDER","MAX_SAMP_FREQ","RMS_WINDOW_TIME_NUMERATOR","RMS_WINDOW_TIME_DENOMINATOR","PINK_REF","RMS_PERCENTILE","ABYule","ABButter","filterYule","input","inputPos","output","outputPos","nSamples","kernel","filterButter","ResetSampleFrequency","rgData","samplefreq","reqindex","ill","fsqr","d","left_samples","left_samplesPos","right_samples","right_samplesPos","curleft","curleftBase","curright","currightBase","batchsamples","cursamples","cursamplepos","ival","analyzeResult","elems","upper","ceil","GetTitleGain","retval","$a3a34d831b8c1682$var$new_float","$a3a34d831b8c1682$var$new_int","$a3a34d831b8c1682$var$assert","$lL4Le","$a3a34d831b8c1682$var$CBRNewIterationLoop","_quantize","quantize","l3_xmin","xrpow","targ_bits","mean_bits","max_bits","mb","rv","ResvFrameBegin","bits","on_pe","ms_convert","reduce_side","masking_lower_db","init_outer_loop","init_xrpow","calc_xmin","outer_loop","iteration_finish_one","ResvFrameEnd","$fd71ae23813c0974$var$MeanBits","meanBits","$91409b9649b00300$var$System","$91409b9649b00300$var$Arrays","$91409b9649b00300$var$new_byte","$91409b9649b00300$var$new_float_n","$91409b9649b00300$var$new_int","$91409b9649b00300$var$assert","$65Sx2","$91409b9649b00300$var$BitStream","Lame","CRC16_POLYNOMIAL","MAX_LENGTH","mpg","ver","_mpg","totbit","bufByteIdx","bufBitIdx","getframebits","bit_rate","bytes","putheader_bits","putbits2","putbits_noheaders","drain_into_ancillary","remainingBits","getLameShortVersion","charAt","writeheader","CRC_update","crc","CRC_writeheader","byte","encodeSideInfo2","bitsPerFrame","old","huffman_coder_count1","ht","ix","huffbits","table","hlen","Huffmancode","tableindex","cbits","xbits","linbits","xlen","ext","linbits_x1","linmax","linbits_x2","ShortHuffmancodebits","region1Start","LongHuffmancodebits","bigvalues","region2Start","writeMainData","data_bits","tot_bits","slen1","slen1_tab","slen2","slen2_tab","sfb_partition","scale_bits","sfbs","TotalBytes","total","compute_flushbits","total_bytes_output","flushbits","remaining_headers","last_ptr","first_ptr","add_dummy_byte","bufferPos","mp3data","minimum","updateMusicCRC","pcm_buf","mp3_in","samples_out","hip_decode1_unclipped","$46fd82963609949b$var$System","$46fd82963609949b$var$Arrays","$46fd82963609949b$var$new_int","$46fd82963609949b$var$assert","$84mea","$46fd82963609949b$var$Takehiro","Bits","subdv_table","quantize_lines_xrpow_01","istep","xrPos","ixPos","compareval0","quantize_lines_xrpow","remaining","x0","x3","rx0","rx1","rx2","rx3","adj43","quantize_xrpow","xp","pi","codInfo","prevNoise","prev_data_use","accumulate","accumulate01","xpPos","iData","iDataPos","acc_iData","acc_iDataPos","acc_xp","acc_xpPos","step","pretab","usefullsize","sfb_count1","ix_max","endPos","max1","max2","count_bit_ESC","t1","t2","largetbl","count_bit_noESC","hlen1","count_bit_noESC_from2","table23","table56","count_bit_noESC_from3","sum3","hlen2","hlen3","huf_tbl_noESC","choose_table","IXMAX_VAL","LARGE_BITS","choice2","choice","noquant_count_bits","prev_noise","a1","a2","t32l","t33l","bi","best_huffman_divide","count_bits","IPOW20","gain","roundfac","recalc_divide_init","r01_bits","r01_div","r0_tbl","r1_tbl","bigv","r0","r0bits","r0t","r1","r1t","recalc_divide_sub","cod_info2","r2","r2t","slen1_n","slen2_n","scfsi_calc","scfsi_band","c","best_scalefac_store","recalc","scale_bitcount","scale_bitcount_lsf","all_scalefactors_not_negative","scale_short","scale_mixed","scale_long","max_slen1","max_slen2","max_range_sfac_tab","table_number","row_in_table","nr_sfb","over","max_sfac","partition_table","nr_of_sfb_block","slen3","slen4","log2tab","huffman_init","scfb_anz","bv_index","$a14e8b54f947e3d4$var$HuffCodeTab","hl","$a14e8b54f947e3d4$var$Tables","t1HB","t2HB","t3HB","t5HB","t6HB","t7HB","t8HB","t9HB","t10HB","t11HB","t12HB","t13HB","t15HB","t16HB","t24HB","t32HB","t33HB","t1l","t2l","t3l","t5l","t6l","t7l","t8l","t9l","t10l","t11l","t12l","t13l","t15l","t16_5l","t16l","t24l","samplerate_table","$5dfff05939c3cc74$var$VbrMode","$5dfff05939c3cc74$var$Float","$5dfff05939c3cc74$var$Util","$5dfff05939c3cc74$var$new_float","$5dfff05939c3cc74$var$new_int","$5dfff05939c3cc74$var$assert","$5dfff05939c3cc74$var$QuantizePVT","Q_MAX","Q_MAX2","BitStream","tak","_tk","_rv","POW20","pow20","ipow20","DBL_EPSILON","PRECALC_SIZE","NSATHSCALE","pow43","ATHmdct","compute_ath","ATH_l","ATH_psfb21","ATH_s","ATH_psfb12","samp_freq","ATH_f","bass","alto","treble","sfb21","cbr","tbits","add_bits","extra_bits","ResvMaxBits","fac","move_bits","athAdjust","athFloor","o","pxmin","pxminPos","gsfb","ath_over","enable_athaa_fix","en0","xmin","rh1","rh2","xa","xb","max_nonzero","tmpATH","StartLine","calc_noise_core","startline","noise","ix01","calc_noise","distort","res","distortPos","l3_xminPos","over_noise_db","tot_noise_db","max_noise","scalefacPos","over_SSD","noise_log","sl","tmp","over_count","tot_noise","over_noise","set_pinfo","sfb2","en1","ifqstep","L3Side","xfsf","CalcNoiseResult","bw","LAMEsfb","en_s","xfsf_s","thr_s","LAMEsfb_s","LAMEqss","LAMEmainbits","LAMEsfbits","$dd7ee3788d91dcb8$exports","$dd7ee3788d91dcb8$export$9ca5d136ebf61cf2","$dd7ee3788d91dcb8$export$cb948f2d6837f136","$dd7ee3788d91dcb8$var$new_byte","$dd7ee3788d91dcb8$var$assert","$kk1yk","$7960aab77e945546$exports","$7960aab77e945546$var$VbrMode","$7960aab77e945546$var$Presets","VBRPresets","qual","comp","compS","shThreshold","shThresholdS","adj","adjShort","lower","curve","sens","inter","joint","mod","fix","vbr_q","quant_comp_s","expY","st_lrm","st_s","masking_adj","masking_adj_short","ath_lower","ath_curve","ath_sensitivity","interch","safejoint","sfb21mod","ABRPresets","kbps","sc","mask","interCh","sfScale","nsmsfix","nsbass","sfscale","lame","_lame","vbr_old_switch_map","vbr_psy_switch_map","apply_vbr_preset","enforce","vbr_preset","q","lame_set_VBR_q","abr_switch_map","apply_abr_preset","actual_bitrate","$df08f3a0d41b7a78$exports","$df08f3a0d41b7a78$var$System","$df08f3a0d41b7a78$var$VbrMode","$df08f3a0d41b7a78$var$Util","$df08f3a0d41b7a78$var$Arrays","$df08f3a0d41b7a78$var$new_float","$df08f3a0d41b7a78$var$assert","$225800021a714f05$exports","$225800021a714f05$var$VBRQuantize","$3afa85f14aff627b$exports","$3afa85f14aff627b$var$CalcNoiseResult","$4fc41bdea3aedc83$exports","$4fc41bdea3aedc83$var$new_float","$4fc41bdea3aedc83$var$new_int","$4fc41bdea3aedc83$var$CalcNoiseData","$df08f3a0d41b7a78$var$Quantize","tk","init_xrpow_core","psfb21_analogsilence","stop","ath21","block","ath12","ixwork","BinSearchDirection","BINSEARCH_NONE","BINSEARCH_UP","BINSEARCH_DOWN","bin_search_StepSize","desired_rate","nBits","flagGoneOver","Direction","trancate_smallspectrums","allowedNoise","trancateThreshold","nsame","sort","loop_break","penalties","get_klemm_noise","klemm_noise","quant_compare","best","calc","better","amp_scalefac_bands","bRefine","ifqstep34","trigger","inc_scalefac_scale","inc_subblock_gain","amp","balance_noise","status","cod_info_w","save_xrpow","best_noise_info","best_part2_3_length","bEndOfSearch","best_ggain_pass1","age","noise_info","search_limit","maxggain","huff_bits","ResvAdjust","VBR_encode_granule","min_bits","bst_cod_info","bst_xrpow","Max_bits","real_bits","this_bits","dbits","found","LameInternalFlags","get_framebits","frameBits","MeanBits","VBR_old_prepare","bands","analog_silence","mxb","bitpressure_strategy","VBR_new_prepare","maximum_framebits","calc_target_bits","analog_silence_bits","max_frame_bits","res_factor","totbits","$b5a7ab7c590f5d1e$exports","$b5a7ab7c590f5d1e$var$assert","$b5a7ab7c590f5d1e$var$Reservoir","maxmp3buf","frameLength","resvLimit","fullFrameBits","resvsize","over_bits","stuffingBits","mdb_bytes","$34609aeb1df0c2af$exports","$34609aeb1df0c2af$var$Version","LAME_URL","LAME_MAJOR_VERSION","LAME_MINOR_VERSION","LAME_PATCH_VERSION","PSY_MAJOR_VERSION","PSY_MINOR_VERSION","getLameVersion","getLameVeryShortVersion","getPsyVersion","getLameUrl","getLameOsBitness","$e674985ea62d27cf$exports","$e674985ea62d27cf$var$System","$e674985ea62d27cf$var$VbrMode","$e674985ea62d27cf$var$ShortBlock","$e674985ea62d27cf$var$Arrays","$e674985ea62d27cf$var$new_byte","$e674985ea62d27cf$var$assert","$e674985ea62d27cf$var$VBRTag","NUMTOCENTRIES","MAXFRAMESIZE","_v","FRAMES_FLAG","BYTES_FLAG","TOC_FLAG","VBR_SCALE_FLAG","VBRHEADERSIZE","LAMEHEADERSIZE","XING_BITRATE1","XING_BITRATE2","XING_BITRATE25","ISO_8859_1","VBRTag0","VBRTag1","crc16Lookup","addVbr","xingSeekTable","act","indx","seek_point","Tables","extractInteger","createInteger","createShort","isVbrTag","String","equals","shiftInBitsValue","setLameTagFrameHeader","abyte","bbyte","getVbrTag","pTagData","VBRTagData","flags","hId","hSrIndex","hMode","hBitrate","samprate","head_flags","frames","toc","vbrScale","headersize","encDelay","encPadding","kbps_header","totalFrameSize","headerSize","crcUpdateLookup","putLameVBR","musicLength","streamBuffer","streamBufferPos","bytesWritten","revision","revMethod","vbrTypeTranslator","peakSignalAmplitude","radioReplayGain","audiophileReplayGain","noiseShaping","stereoMode","nonOptimal","sourceFreq","misc","musicCRC","expNPsyTune","safeJoint","noGapMore","noGapPrevious","noGapCount","noGapCurr","athType","abrBitrate","skipId3v2","fpStream","seek","id3v2Header","readFully","id3v2TagSize","startsWith","getLameTagFrame","streamIndex","streamSize","putVbrTag","stream","write","$dd7ee3788d91dcb8$var$GetAudio","parse2","mpg2","$dd7ee3788d91dcb8$var$Parse","ver2","id32","pre2","$dd7ee3788d91dcb8$var$MPGLib","$dd7ee3788d91dcb8$var$ID3Tag","_bits","$dd7ee3788d91dcb8$var$Mp3Encoder","channels","error","gaud","parse","retcode","maxSamples","encodeBuffer","left","right","_sz","subarray","flush","$dd7ee3788d91dcb8$var$WavHeader","dataOffset","dataLen","sampleRate","$dd7ee3788d91dcb8$var$fourccToInt","fourcc","charCodeAt","RIFF","WAVE","fmt_","data","readHeader","dataView","getUint32","fmtLen","getUint16"],"mappings":"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AEI,iCAAiC,CAChD,SAAS,CAAEN,6BAA6B,CACxC,WAAW,CAAEa,+BAA+B,CAC5C,WAAW,CAAEf,+BAA+B,CAC5C,aAAa,CAAEgB,iCAAiC,CAChD,QAAQ,CAAEmC,4BACd,CAAC,CAED,CAAC,CAAC,CAEFlc,aAAa,CAACS,QAAQ,CAAC,OAAO,CAAE,SAASL,MAAM,CAAEF,OAAO,CAAE;AAE1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,IAAIQ,MAAM,CAAGV,aAAa,CAAC,OAAO,CAAC,CACAU,MAAM,CAACE,OAC1C,IAAIub,6BAA6B,CAAGzb,MAAM,CAACI,OAAO,CAClD,IAAIsb,2BAA2B,CAAG1b,MAAM,CAACK,KAAK,CAC9C,IAAIsb,gCAAgC,CAAG3b,MAAM,CAACO,UAAU,CACxD,IAAIqb,0BAA0B,CAAG5b,MAAM,CAACQ,IAAI,CAC5C,IAAIqb,4BAA4B,CAAG7b,MAAM,CAACS,MAAM,CACRT,MAAM,CAACU,YACVV,MAAM,CAACW,SACLX,MAAM,CAACY,WAC9C,I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CACd,IAAI,CAACC,SAAS,CAAG,CAAC,CAClB,IAAI,CAACC,KAAK,CAAG,CAAC,CACd,IAAI,CAACxnB,CAAC,CAAGkmB,6BAA6B,CAAC,CAAC,CAAGC,MAAM,CAACsB,YAAY,CAAGtB,MAAM,CAACuB,MAAM,CAAC,CAC/E,IAAI,CAACC,CAAC,CAAGzB,6BAA6B,CAAC,CAAC,CAAGC,MAAM,CAACsB,YAAY,CAAGtB,MAAM,CAACuB,MAAM,CAAC,CACnF,CACAlhC,MAAM,CAACF,OAAO,CAAG8/B,gCAAgC,CAEjD,CAAC,CAAC,CACFhgC,aAAa,CAACS,QAAQ,CAAC,OAAO,CAAE,SAASL,MAAM,CAAEF,OAAO,CAAE;AAE1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GACA,IAAIQ,MAAM,CAAGV,aAAa,CAAC,OAAO,CAAC,CACnC,IAAIwhC,4BAA4B,CAAG9gC,MAAM,CAACE,MAAM,CACZF,MAAM,CAACI,QACTJ,MAAM,CAACK,MACFL,MAAM,CAACO,WACbP,MAAM,CAACQ,KACxC,IAAIugC,4BAA4B,CAAG/gC,MAAM,CAACS,MAAM,CACRT,MAAM,CAACU,YACVV,MAAM,CAACW,SACLX,MAAM,CAACY,WACRZ,MAAM,CAACc,UACLd,MAAM,CAACe,YACXf,MAAM,CAACgB,QACLhB,MAAM,CAACkB,UACVlB,MAAM,CAACsB,OAC1C;AACA;AACA,GAAI0/B,kCAAkC,CAACL,YAAY,CAAG,IAAI,CAC1D;AACA;AACA,GAAIK,kCAAkC,CAACJ,MAAM,CAAG,IAAI,CACpDI,kCAAkC,CAACC,uBAAuB,CAAG,CAAC,KAAK,CACnED,kCAAkC,CAACvrB,mBAAmB,CAAG,CAAC,CAC1DurB,kCAAkC,CAACE,gBAAgB,CAAG,CAAC,CACvDF,kCAAkC,CAAC/xB,wBAAwB,CAAG,CAAC,CAC/D+xB,kCAAkC,CAACG,qBAAqB,CAAG,CAAC,CAC5DH,kCAAkC,CAACI,UAAU,CAAG,EAAE,CAClDJ,kCAAkC,CAACxB,SAAS,CAAGwB,kCAAkC,CAACI,UAAU,CAC5FJ,kCAAkC,CAACK,aAAa,CAAG,KAAK,CACxDL,kCAAkC,CAACM,yBAAyB,CAAG,CAAC,CAChEN,kCAAkC,CAACO,2BAA2B,CAAG,EAAE,CACnEP,kCAAkC,CAACrB,sBAAsB,CAAGqB,kCAAkC,CAACK,aAAa,CAAGL,kCAAkC,CAACM,yBAAyB,CAAGN,kCAAkC,CAACO,2BAA2B,CAAG,CAAC,CAChP,SAASP,kCAAkCA,EAAG;AAE9C;AACA,OAAQ,IAAIQ,QAAQ,CAAG,KAAK,CACPR,kCAAkC,CAACI,WACpD;AACJ;AACA,OAAQ,IAAIK,cAAc,CAAG,IAAI,CAC7B;AACJ;AACA,OAA4BT,kCAAkC,CAACK,cAC3D,IAAIC,yBAAyB,CAAGN,kCAAkC,CAACM,yBAAyB,CAC5F;AACJ;AACA,OAAQ,IAAIC,2BAA2B,CAAGP,kCAAkC,CAACO,2BAA2B,CACpG;AACJ;AACA,OAAqCP,kCAAkC,CAACrB,uBACpE,IAAI+B,MAAM,CAAG,CACT,CACI,gBAAgB,CAChB,CAAC,gBAAgB,CACjB,CAAC,gBAAgB,CACjB,gBAAgB,CAChB,CAAC,gBAAgB,CACjB,CAAC,iBAAiB,CAClB,CAAC,gBAAgB,CACjB,iBAAiB,CACjB,CAAC,gBAAgB,CACjB,CAAC,iBAAiB,CAClB,gBAAgB,CAChB,gBAAgB,CAChB,CAAC,gBAAgB,CACjB,CAAC,gBAAgB,CACjB,gBAAgB,CAChB,gBAAgB,CAChB,gBAAgB,CAChB,CAAC,gBAAgB,CACjB,gBAAgB,CAChB,gBAAgB,CAChB,gBAAgB,CACnB,CACD,CACI,gBAAgB,CAChB,CAAC,gBAAgB,CACjB,CAAC,gBAAgB,CACjB,gBAAgB,CAChB,CAAC,gBAAgB,CACjB,CAAC,gBAAgB,CACjB,CAAC,gBAAgB,CACjB,gBAAgB,CAChB,CAAC,gBAAgB,CACjB,CAAC,gBAAgB,CACjB,gBAAgB,CAChB,gBAAgB,CAChB,CAAC,gBAAgB,CACjB,CAAC,gBAAgB,CACjB,gBAAgB,CAChB,gBAAgB,CAChB,CAAC,gBAAgB,CACjB,CAAC,gBAAgB,CACjB,gBAAgB,CAChB,gBAAgB,CAChB,CAAC,gBAAgB,CACpB,CACD,CACI,gBAAgB,CAChB,CAAC,gBAAgB,CACjB,CAAC,gBAAgB,CACjB,gBAAgB,CAChB,CAAC,gBAAgB,CACjB,CAAC,gBAAgB,CACjB,gBAAgB,CAChB,gBAAgB,CAChB,CAAC,gBAAgB,CACjB,CAAC,gBAAgB,CACjB,gBAAgB,CAChB,gBAAgB,CAChB,gBAAgB,CAChB,CAAC,gBAAgB,CACjB,gBAAgB,CAChB,gBAAgB,CAChB,CAAC,gBAAgB,CACjB,CAAC,gBAAgB,CACjB,gBAAgB,CAChB,gBAAgB,CAChB,CAAC,gBAAgB,CACpB,CACD,CACI,gBAAgB,CAChB,CAAC,gBAAgB,CACjB,CAAC,gBAAgB,CACjB,gBAAgB,CAChB,CAAC,gBAAgB,CACjB,CAAC,eAAe,CAChB,gBAAgB,CAChB,CAAC,eAAe,CAChB,CAAC,gBAAgB,CACjB,CAAC,gBAAgB,CACjB,CAAC,gBAAgB,CACjB,gBAAgB,CAChB,CAAC,gBAAgB,CACjB,CAAC,gBAAgB,CACjB,gBAAgB,CAChB,gBAAgB,CAChB,CAAC,gBAAgB,CACjB,gBAAgB,CAChB,gBAAgB,CAChB,gBAAgB,CAChB,CAAC,gBAAgB,CACpB,CACD,CACI,gBAAgB,CAChB,CAAC,gBAAgB,CACjB,CAAC,eAAe,CAChB,gBAAgB,CAChB,CAAC,gBAAgB,CACjB,gBAAgB,CAChB,gBAAgB,CAChB,CAAC,gBAAgB,CACjB,CAAC,gBAAgB,CACjB,gBAAgB,CAChB,CAAC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AAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACJ,CACDL,4BAA4B,CAACM,IAAI,CAAG,CAChC,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,CAAC,CACD,CAAC,CACD,EAAE,CACF,CAAC,CACD,EAAE,CACF,EAAE,CACF,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACJ,CACDN,4BAA4B,CAACO,IAAI,CAAG,CAChC,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,EAAE,CACF,CAAC,CACD,CAAC,CACD,EAAE,CACF,CAAC,CACD,CAAC,CACD,EAAE,CACF,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACJ,CACDP,4BAA4B,CAACQ,IAAI,CAAG,CAChC,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,CAAC,CACD,CAAC,CACD,EAAE,CACF,CAAC,CACD,CAAC,CACD,EAAE,CACF,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACJ,CACDR,4BAA4B,CAACS,KAAK,CAAG,CACjC,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,EAAE,CACF,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACJ,CACDT,4BAA4B,CAACU,KAAK,CAAG,CACjC,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,EAAE,CACF,EAAE,CACF,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACJ,CACDV,4BAA4B,CAACW,KAAK,CAAG,CACjC,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,CAAC,CACD,EAAE,CACF,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACJ,CACDX,4BAA4B,CAACY,KAAK,CAAG,CACjC,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,GAAG,CACH,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,GAAG,CACH,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACJ,CACDZ,4BAA4B,CAACa,KAAK,CAAG,CACjC,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,GAAG,CACH,GAAG,CACH,EAAE,CACF,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,EAAE,CACF,GAAG,CACH,EAAE,CACF,EAAE,CACF,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,GAAG,CACH,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,GAAG,CACH,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,GAAG,CACH,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,GAAG,CACH,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,GAAG,CACH,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,GAAG,CACH,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,CAAC,CACD,CAAC,CACD,GAAG,CACH,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACJ,CACDb,4BAA4B,CAACc,KAAK,CAAG,CACjC,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,GAAG,CACH,EAAE,CACF,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,EAAE,CACF,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,GAAG,CACH,EAAE,CACF,GAAG,CACH,EAAE,CACF,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,GAAG,CACH,EAAE,CACF,EAAE,CACF,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,EAAE,CACF,GAAG,CACH,EAAE,CACF,EAAE,CACF,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,CAAC,CACD,GAAG,CACH,EAAE,CACF,EAAE,CACF,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,EAAE,CACF,GAAG,CACH,GAAG,CACH,EAAE,CACF,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,CAAC,CACD,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,CAAC,CACD,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,IAAI,CACJ,CAAC,CACD,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,IAAI,CACJ,GAAG,CACH,GAAG,CACH,GAAG,CACH,IAAI,CACJ,GAAG,CACH,CAAC,CACD,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,IAAI,CACJ,GAAG,CACH,IAAI,CACJ,GAAG,CACH,GAAG,CACH,CAAC,CACD,EAAE,CACF,EAAE,CACF,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACJ,CACDd,4BAA4B,CAACe,KAAK,CAAG,CACjC,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,IAAI,CACJ,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,EAAE,CACF,GAAG,CACH,EAAE,CACF,EAAE,CACF,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,EAAE,CACF,GAAG,CACH,EAAE,CACF,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,EAAE,CACF,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,EAAE,CACF,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,EAAE,CACF,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,EAAE,CACF,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,EAAE,CACF,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,EAAE,CACF,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,CAAC,CACD,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,CAAC,CACD,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,CAAC,CACD,IAAI,CACJ,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACJ,CACDf,4BAA4B,CAACgB,KAAK,CAAG,CACjC,CAAC,CACD,EAAE,CACF,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACL,CACDhB,4BAA4B,CAACiB,KAAK,CAAG,CACjC,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,CAAC,CACJ,CACDjB,4BAA4B,CAACkB,GAAG,CAAG,CAC/B,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACJ,CACDlB,4BAA4B,CAACmB,GAAG,CAAG,CAC/B,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACJ,CACDnB,4BAA4B,CAACoB,GAAG,CAAG,CAC/B,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACJ,CACDpB,4BAA4B,CAACqB,GAAG,CAAG,CAC/B,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACL,CACDrB,4BAA4B,CAACsB,GAAG,CAAG,CAC/B,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACJ,CACDtB,4BAA4B,CAACuB,GAAG,CAAG,CAC/B,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACL,CACDvB,4BAA4B,CAACwB,GAAG,CAAG,CAC/B,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACL,CACDxB,4BAA4B,CAACyB,GAAG,CAAG,CAC/B,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACL,CACDzB,4BAA4B,CAAC0B,IAAI,CAAG,CAChC,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACL,CACD1B,4BAA4B,CAAC2B,IAAI,CAAG,CAChC,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,CAAC,CACD,EAAE,CACF,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,CAAC,CACD,EAAE,CACF,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACL,CACD3B,4BAA4B,CAAC4B,IAAI,CAAG,CAChC,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,CAAC,CACD,EAAE,CACF,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACL,CACD5B,4BAA4B,CAAC6B,IAAI,CAAG,CAChC,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACL,CACD7B,4BAA4B,CAAC8B,IAAI,CAAG,CAChC,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACL,CACD9B,4BAA4B,CAAC+B,MAAM,CAAG,CAClC,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACL,CACD/B,4BAA4B,CAACgC,IAAI,CAAG,CAChC,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACL,CACDhC,4BAA4B,CAACiC,IAAI,CAAG,CAChC,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,EAAE,CACF,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACJ,CACDjC,4BAA4B,CAACtD,IAAI,CAAG,CAChC,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD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QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,QAAQ,CACR,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ACI,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACJ,CACJ,CACD,CACI,CACI,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACJ,CACD,CACI,CAAC,CACD,CAAC,CACD,EAAE,CACF,CAAC,CACJ,CACD,CACI,CAAC,CACD,CAAC,CACD,EAAE,CACF,CAAC,CACJ,CACJ,CACD,CACI,CACI,EAAE,CACF,EAAE,CACF,CAAC,CACD,CAAC,CACJ,CACD,CACI,EAAE,CACF,EAAE,CACF,CAAC,CACD,CAAC,CACJ,CACD,CACI,EAAE,CACF,EAAE,CACF,CAAC,CACD,CAAC,CACJ,CACJ,CACD,CACI,CACI,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACJ,CACD,CACI,EAAE,CACF,EAAE,CACF,EAAE,CACF,CAAC,CACJ,CACD,CACI,CAAC,CACD,EAAE,CACF,EAAE,CACF,CAAC,CACJ,CACJ,CACD,CACI,CACI,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACJ,CACD,CACI,EAAE,CACF,CAAC,CACD,CAAC,CACD,CAAC,CACJ,CACD,CACI,CAAC,CACD,EAAE,CACF,CAAC,CACD,CAAC,CACJ,CACJ,CACD,CACI,CACI,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACJ,CACD,CACI,EAAE,CACF,EAAE,CACF,CAAC,CACD,CAAC,CACJ,CACD,CACI,CAAC,CACD,EAAE,CACF,CAAC,CACD,CAAC,CACJ,CACJ,CACJ,CACD;AACJ;AACA,OAAQ,IAAI3E,MAAM,CAAG,CACb,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACJ,CACD,IAAI,CAACA,MAAM,CAAGA,MAAM,CACpB;AACJ;AACA;AACA;AACA;AACA,OAAQ,IAAI,CAACh9B,WAAW,CAAG;AAEnB,IAAIkpB,MAAM,CAAC,CACP,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACN,CAAE,CACC,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACN,CAAE,CACC,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACH;AAAA,CACA,CACE,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACH;AAAA,CACD,+DAC8D,IAAIA,MAAM,CAAC,CACtE,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACN,CAAE,CACC,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACN,CAAE,CACC,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACJ,CAAE,CACC,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACJ,CAAC,0BACwB,IAAIA,MAAM,CAAC,CACjC,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACN,CAAE,CACC,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACN,CAAE,CACC,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACJ,CAAE,CACC,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACJ,CAAC,4BAC0B,IAAIA,MAAM,CAAC,CACnC,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACN,CAAE,CACC,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,GAAG,CACH,GAAG,CACH,GAAG,CACN,CAAE,CACC,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACJ,CAAE,CACC,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACJ,CAAC,0BACwB,IAAIA,MAAM,CAAC,CACjC,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACN,CAAE,CACC,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,GAAG,CACH,GAAG,CACH,GAAG,CACN,CAAE,CACC,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACJ,CAAE,CACC,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACJ,CAAC,0BACwB,IAAIA,MAAM,CAAC,CACjC,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACN,CAAE,CACC,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACN,CAAE,CACC,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACJ,CAAE,CACC,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACJ,CAAC,0BACwB,IAAIA,MAAM,CAAC,CACjC,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACN,CAAE,CACC,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACN,CAAE,CACC,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACJ,CAAE,CACC,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACJ,CAAC,sBACoB,IAAIA,MAAM,CAAC,CAC7B,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACN,CAAE,CACC,CAAC,CACD,CAAC,CACD,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACN,CAAE,CACC,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACJ,CAAE,CACC,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACD,CAAC,CACJ,CAAC,qBACmB,IAAIA,MAAM,CAAC,CAC5B,CAAC,CACD,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,EAAE,CACF,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GAAG,CACH,GA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AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GACA,IAAI3jD,MAAM,CAAGV,aAAa,CAAC,OAAO,CAAC,CACnC,IAAIskD,4BAA4B,CAAG5jD,MAAM,CAACsB,MAAM,CAChD,SAASuiD,+BAA+BA,EAAG,CACvC,IAAItgD,EAAE,CACN,IAAI,CAACS,UAAU,CAAG,SAASE,GAAG,CAAE,CAC5BX,EAAE,CAAGW,GAAG,CACZ,CAAC,CACD,IAAI,CAACygC,cAAc,CAAG,SAASl/B,GAAG,CAAE8+B,SAAS,CAAE,CAC3C,IAAI7+B,GAAG,CAAGD,GAAG,CAACG,cAAc,CAC5B,IAAIk+C,SAAS,CACb,IAAI3xB,OAAO,CAAGzsB,GAAG,CAACysB,OAAO,CACzB,IAAI4xB,WAAW,CAAGxgD,EAAE,CAACmjC,YAAY,CAACjhC,GAAG,CAAC,CACtC8+B,SAAS,CAACK,IAAI,CAAG,CAACmf,WAAW,CAAGr+C,GAAG,CAAC+K,YAAY,CAAG,CAAC,EAAI/K,GAAG,CAAC4J,OAAO,CACnE;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAAgE,IAAI00C,SAAS,CAAG,IAAI,CAAGt+C,GAAG,CAAC4J,OAAO,CAAG,CAAC,CAC9F;AACR;AACA;AACA,KAAM,GAAI7J,GAAG,CAACsI,KAAK,CAAG,GAAG,2CAA6C+1C,SAAS,CAAG,CAAC,CAAGv1C,GAAG,CAAC9I,GAAG,CAACsI,KAAK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M,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAAM,CACN,MAA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"}