@onairos/react-native 3.7.0 → 3.7.2

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 (236) hide show
  1. package/lib/commonjs/api/index.js +1 -1
  2. package/lib/commonjs/assets/icons/netflix.png +0 -0
  3. package/lib/commonjs/assets/icons/spotify.png +0 -0
  4. package/lib/commonjs/assets/images/netflix.png +0 -0
  5. package/lib/commonjs/assets/images/spotify.png +0 -0
  6. package/lib/commonjs/components/BodyText.js +1 -1
  7. package/lib/commonjs/components/BrandMark.js +1 -1
  8. package/lib/commonjs/components/CodeInput.js +1 -1
  9. package/lib/commonjs/components/EmailInput.js +1 -1
  10. package/lib/commonjs/components/GoogleButton.js +1 -1
  11. package/lib/commonjs/components/HeadingGroup.js +1 -1
  12. package/lib/commonjs/components/LLMDataInputModal.js +1 -1
  13. package/lib/commonjs/components/ModalHeader.js +1 -1
  14. package/lib/commonjs/components/ModalSheet.js +1 -1
  15. package/lib/commonjs/components/Onairos.js +1 -1
  16. package/lib/commonjs/components/OnairosButton.js +1 -1
  17. package/lib/commonjs/components/OnairosSignInButton.js +1 -1
  18. package/lib/commonjs/components/Overlay.js +1 -1
  19. package/lib/commonjs/components/PersonaImage.js +1 -1
  20. package/lib/commonjs/components/PersonaLoadingScreen.js +1 -1
  21. package/lib/commonjs/components/PersonalizationConsentScreen.js +1 -1
  22. package/lib/commonjs/components/PinCreationScreen.js +1 -1
  23. package/lib/commonjs/components/PinInput.js +1 -1
  24. package/lib/commonjs/components/PlatformConnectorsStep.js +1 -1
  25. package/lib/commonjs/components/PlatformList.js +1 -1
  26. package/lib/commonjs/components/PlatformToggle.js +1 -1
  27. package/lib/commonjs/components/PrimaryButton.js +1 -1
  28. package/lib/commonjs/components/SignInMatchAnimation.js +1 -1
  29. package/lib/commonjs/components/SignInStep.js +1 -1
  30. package/lib/commonjs/components/UniversalOnboarding.js +1 -1
  31. package/lib/commonjs/components/VerificationStep.js +1 -1
  32. package/lib/commonjs/components/WelcomeScreen.js +1 -1
  33. package/lib/commonjs/components/icons/Basicproficon.js +1 -1
  34. package/lib/commonjs/components/icons/Basicprofile.js +1 -1
  35. package/lib/commonjs/components/icons/Checkbox.js +1 -1
  36. package/lib/commonjs/components/icons/Checkmark.js +1 -1
  37. package/lib/commonjs/components/icons/Contentanalysis.js +1 -1
  38. package/lib/commonjs/components/icons/Contenticon.js +1 -1
  39. package/lib/commonjs/components/icons/EnochE.js +1 -1
  40. package/lib/commonjs/components/icons/Personalityicon.js +1 -1
  41. package/lib/commonjs/components/icons/Personalityprofile.js +1 -1
  42. package/lib/commonjs/components/icons/Personalitytraits.js +1 -1
  43. package/lib/commonjs/components/icons/Userpreferences.js +1 -1
  44. package/lib/commonjs/components/icons/index.js +1 -1
  45. package/lib/commonjs/components/onboarding/OAuthWebView.js +1 -1
  46. package/lib/commonjs/components/onboarding/OnboardingHeader.js +1 -1
  47. package/lib/commonjs/components/onboarding/PinInput.js +1 -1
  48. package/lib/commonjs/components/onboarding/PlatformConnector.js +1 -1
  49. package/lib/commonjs/config/api.js +1 -1
  50. package/lib/commonjs/constants/index.js +1 -1
  51. package/lib/commonjs/context/AuthContext.js +1 -1
  52. package/lib/commonjs/hooks/useConnectedAccounts.js +1 -1
  53. package/lib/commonjs/hooks/useConnections.js +1 -1
  54. package/lib/commonjs/hooks/useCredentials.js +1 -1
  55. package/lib/commonjs/hooks/useUserConnections.js +1 -1
  56. package/lib/commonjs/index.js +1 -1
  57. package/lib/commonjs/services/apiClient.js +1 -1
  58. package/lib/commonjs/services/biometricPinService.js +1 -1
  59. package/lib/commonjs/services/chatGPTConversationExtractor.js +1 -1
  60. package/lib/commonjs/services/chatGPTConversationService.js +1 -1
  61. package/lib/commonjs/services/claudeConversationExtractor.js +1 -1
  62. package/lib/commonjs/services/claudeConversationService.js +1 -1
  63. package/lib/commonjs/services/connectedAccountsService.js +1 -1
  64. package/lib/commonjs/services/googleAuthService.js +1 -1
  65. package/lib/commonjs/services/hingeDataExtractor.js +1 -1
  66. package/lib/commonjs/services/hingeDataService.js +1 -1
  67. package/lib/commonjs/services/imageCompressionService.js +1 -1
  68. package/lib/commonjs/services/instagramDataExtractor.js +1 -1
  69. package/lib/commonjs/services/instagramDataService.js +1 -1
  70. package/lib/commonjs/services/jwtStorageService.js +1 -1
  71. package/lib/commonjs/services/linkedinDOMExtractor.js +1 -1
  72. package/lib/commonjs/services/linkedinProfileService.js +1 -1
  73. package/lib/commonjs/services/linkedinScrapingService.js +1 -1
  74. package/lib/commonjs/services/llmDataStorage.js +1 -1
  75. package/lib/commonjs/services/mobileTrainingService.js +1 -1
  76. package/lib/commonjs/services/netflixDataExtractor.js +1 -1
  77. package/lib/commonjs/services/netflixDataService.js +1 -1
  78. package/lib/commonjs/services/pinEncryptionService.js +1 -1
  79. package/lib/commonjs/services/pinStorageUtils.js +1 -1
  80. package/lib/commonjs/services/platformAuthService.js +1 -1
  81. package/lib/commonjs/services/sephoraDataExtractor.js +1 -1
  82. package/lib/commonjs/services/sephoraDataService.js +1 -1
  83. package/lib/commonjs/services/spotifyDataExtractor.js +1 -1
  84. package/lib/commonjs/services/spotifyDataService.js +1 -1
  85. package/lib/commonjs/services/storageService.js +1 -1
  86. package/lib/commonjs/services/telegramDataExtractor.js +1 -1
  87. package/lib/commonjs/services/telegramDataService.js +1 -1
  88. package/lib/commonjs/services/trainingApiHelpers.js +1 -1
  89. package/lib/commonjs/services/userConnectionsService.js +1 -1
  90. package/lib/commonjs/services/youtubeMigrationService.js +1 -1
  91. package/lib/commonjs/theme/index.js +1 -1
  92. package/lib/commonjs/types/index.js +1 -1
  93. package/lib/commonjs/types.js +1 -1
  94. package/lib/commonjs/utils/Portal.js +1 -1
  95. package/lib/commonjs/utils/api.js +1 -1
  96. package/lib/commonjs/utils/assetRegistry.js +1 -1
  97. package/lib/commonjs/utils/auth.js +1 -1
  98. package/lib/commonjs/utils/connectorTests.js +1 -1
  99. package/lib/commonjs/utils/crypto.js +1 -1
  100. package/lib/commonjs/utils/debugHelper.js +1 -1
  101. package/lib/commonjs/utils/encryption.js +1 -1
  102. package/lib/commonjs/utils/eventUtils.js +1 -1
  103. package/lib/commonjs/utils/haptics.js +1 -1
  104. package/lib/commonjs/utils/imagePreloader.js +1 -1
  105. package/lib/commonjs/utils/networkDiagnostics.js +1 -1
  106. package/lib/commonjs/utils/onairosApi.js +1 -1
  107. package/lib/commonjs/utils/programmaticFlow.js +1 -1
  108. package/lib/commonjs/utils/retryHelper.js +1 -1
  109. package/lib/commonjs/utils/secureStorage.js +1 -1
  110. package/lib/commonjs/utils/webviewScripts/chatgpt.js +1 -1
  111. package/lib/commonjs/utils/webviewScripts/claude.js +1 -1
  112. package/lib/commonjs/utils/webviewScripts/hinge.js +1 -1
  113. package/lib/commonjs/utils/webviewScripts/index.js +1 -1
  114. package/lib/commonjs/utils/webviewScripts/instagram.js +1 -1
  115. package/lib/commonjs/utils/webviewScripts/linkedin.js +1 -1
  116. package/lib/commonjs/utils/webviewScripts/netflix.js +1 -1
  117. package/lib/commonjs/utils/webviewScripts/sephora.js +1 -1
  118. package/lib/commonjs/utils/webviewScripts/spotify.js +1 -1
  119. package/lib/commonjs/utils/webviewScripts/telegram.js +1 -1
  120. package/lib/module/api/index.js +1 -1
  121. package/lib/module/assets/icons/netflix.png +0 -0
  122. package/lib/module/assets/icons/spotify.png +0 -0
  123. package/lib/module/assets/images/netflix.png +0 -0
  124. package/lib/module/assets/images/spotify.png +0 -0
  125. package/lib/module/components/BodyText.js +1 -1
  126. package/lib/module/components/BrandMark.js +1 -1
  127. package/lib/module/components/CodeInput.js +1 -1
  128. package/lib/module/components/EmailInput.js +1 -1
  129. package/lib/module/components/GoogleButton.js +1 -1
  130. package/lib/module/components/HeadingGroup.js +1 -1
  131. package/lib/module/components/LLMDataInputModal.js +1 -1
  132. package/lib/module/components/ModalHeader.js +1 -1
  133. package/lib/module/components/ModalSheet.js +1 -1
  134. package/lib/module/components/Onairos.js +1 -1
  135. package/lib/module/components/OnairosButton.js +1 -1
  136. package/lib/module/components/OnairosSignInButton.js +1 -1
  137. package/lib/module/components/Overlay.js +1 -1
  138. package/lib/module/components/PersonaImage.js +1 -1
  139. package/lib/module/components/PersonaLoadingScreen.js +1 -1
  140. package/lib/module/components/PersonalizationConsentScreen.js +1 -1
  141. package/lib/module/components/PinCreationScreen.js +1 -1
  142. package/lib/module/components/PinInput.js +1 -1
  143. package/lib/module/components/PlatformConnectorsStep.js +1 -1
  144. package/lib/module/components/PlatformList.js +1 -1
  145. package/lib/module/components/PlatformToggle.js +1 -1
  146. package/lib/module/components/PrimaryButton.js +1 -1
  147. package/lib/module/components/SignInMatchAnimation.js +1 -1
  148. package/lib/module/components/SignInStep.js +1 -1
  149. package/lib/module/components/UniversalOnboarding.js +1 -1
  150. package/lib/module/components/VerificationStep.js +1 -1
  151. package/lib/module/components/WelcomeScreen.js +1 -1
  152. package/lib/module/components/icons/Basicproficon.js +1 -1
  153. package/lib/module/components/icons/Basicprofile.js +1 -1
  154. package/lib/module/components/icons/Checkbox.js +1 -1
  155. package/lib/module/components/icons/Checkmark.js +1 -1
  156. package/lib/module/components/icons/Contentanalysis.js +1 -1
  157. package/lib/module/components/icons/Contenticon.js +1 -1
  158. package/lib/module/components/icons/EnochE.js +1 -1
  159. package/lib/module/components/icons/Personalityicon.js +1 -1
  160. package/lib/module/components/icons/Personalityprofile.js +1 -1
  161. package/lib/module/components/icons/Personalitytraits.js +1 -1
  162. package/lib/module/components/icons/Userpreferences.js +1 -1
  163. package/lib/module/components/onboarding/OAuthWebView.js +1 -1
  164. package/lib/module/components/onboarding/OnboardingHeader.js +1 -1
  165. package/lib/module/components/onboarding/PinInput.js +1 -1
  166. package/lib/module/components/onboarding/PlatformConnector.js +1 -1
  167. package/lib/module/config/api.js +1 -1
  168. package/lib/module/constants/index.js +1 -1
  169. package/lib/module/context/AuthContext.js +1 -1
  170. package/lib/module/hooks/useConnectedAccounts.js +1 -1
  171. package/lib/module/hooks/useConnections.js +1 -1
  172. package/lib/module/hooks/useCredentials.js +1 -1
  173. package/lib/module/hooks/useUserConnections.js +1 -1
  174. package/lib/module/index.js +1 -1
  175. package/lib/module/services/apiClient.js +1 -1
  176. package/lib/module/services/biometricPinService.js +1 -1
  177. package/lib/module/services/chatGPTConversationExtractor.js +1 -1
  178. package/lib/module/services/chatGPTConversationService.js +1 -1
  179. package/lib/module/services/claudeConversationExtractor.js +1 -1
  180. package/lib/module/services/claudeConversationService.js +1 -1
  181. package/lib/module/services/connectedAccountsService.js +1 -1
  182. package/lib/module/services/googleAuthService.js +1 -1
  183. package/lib/module/services/hingeDataExtractor.js +1 -1
  184. package/lib/module/services/hingeDataService.js +1 -1
  185. package/lib/module/services/imageCompressionService.js +1 -1
  186. package/lib/module/services/instagramDataExtractor.js +1 -1
  187. package/lib/module/services/instagramDataService.js +1 -1
  188. package/lib/module/services/jwtStorageService.js +1 -1
  189. package/lib/module/services/linkedinDOMExtractor.js +1 -1
  190. package/lib/module/services/linkedinProfileService.js +1 -1
  191. package/lib/module/services/linkedinScrapingService.js +1 -1
  192. package/lib/module/services/llmDataStorage.js +1 -1
  193. package/lib/module/services/mobileTrainingService.js +1 -1
  194. package/lib/module/services/netflixDataExtractor.js +1 -1
  195. package/lib/module/services/netflixDataService.js +1 -1
  196. package/lib/module/services/pinEncryptionService.js +1 -1
  197. package/lib/module/services/pinStorageUtils.js +1 -1
  198. package/lib/module/services/platformAuthService.js +1 -1
  199. package/lib/module/services/sephoraDataExtractor.js +1 -1
  200. package/lib/module/services/sephoraDataService.js +1 -1
  201. package/lib/module/services/spotifyDataExtractor.js +1 -1
  202. package/lib/module/services/spotifyDataService.js +1 -1
  203. package/lib/module/services/storageService.js +1 -1
  204. package/lib/module/services/telegramDataExtractor.js +1 -1
  205. package/lib/module/services/telegramDataService.js +1 -1
  206. package/lib/module/services/trainingApiHelpers.js +1 -1
  207. package/lib/module/services/userConnectionsService.js +1 -1
  208. package/lib/module/services/youtubeMigrationService.js +1 -1
  209. package/lib/module/theme/index.js +1 -1
  210. package/lib/module/types.js +1 -1
  211. package/lib/module/utils/Portal.js +1 -1
  212. package/lib/module/utils/api.js +1 -1
  213. package/lib/module/utils/assetRegistry.js +1 -1
  214. package/lib/module/utils/auth.js +1 -1
  215. package/lib/module/utils/connectorTests.js +1 -1
  216. package/lib/module/utils/crypto.js +1 -1
  217. package/lib/module/utils/debugHelper.js +1 -1
  218. package/lib/module/utils/encryption.js +1 -1
  219. package/lib/module/utils/eventUtils.js +1 -1
  220. package/lib/module/utils/haptics.js +1 -1
  221. package/lib/module/utils/networkDiagnostics.js +1 -1
  222. package/lib/module/utils/onairosApi.js +1 -1
  223. package/lib/module/utils/programmaticFlow.js +1 -1
  224. package/lib/module/utils/retryHelper.js +1 -1
  225. package/lib/module/utils/secureStorage.js +1 -1
  226. package/lib/module/utils/webviewScripts/chatgpt.js +1 -1
  227. package/lib/module/utils/webviewScripts/claude.js +1 -1
  228. package/lib/module/utils/webviewScripts/hinge.js +1 -1
  229. package/lib/module/utils/webviewScripts/index.js +1 -1
  230. package/lib/module/utils/webviewScripts/instagram.js +1 -1
  231. package/lib/module/utils/webviewScripts/linkedin.js +1 -1
  232. package/lib/module/utils/webviewScripts/netflix.js +1 -1
  233. package/lib/module/utils/webviewScripts/sephora.js +1 -1
  234. package/lib/module/utils/webviewScripts/spotify.js +1 -1
  235. package/lib/module/utils/webviewScripts/telegram.js +1 -1
  236. package/package.json +1 -1
@@ -1 +1 @@
1
- 'use strict';Object[_0x3eda(0x0)](exports,_0x3eda(0x1),{'value':!![]}),exports[_0x3eda(0x2)]=exports['LINKEDIN_PROFILE_SCRAPER_SCRIPT']=exports['LINKEDIN_PROFILE_EXTRACTOR_SCRIPT']=exports[_0x3eda(0x3)]=exports['LINKEDIN_PROFILE_CONSENT_POPUP_SCRIPT']=exports['LINKEDIN_NAVIGATE_TO_PROFILE_SCRIPT']=exports['LINKEDIN_APP_BLOCKER_SCRIPT']=void 0x0;function _0x3eda(_0x26ae5f,_0x3edabe){_0x26ae5f=_0x26ae5f-0x0;const _0x263b22=_0x26ae();let _0x441e47=_0x263b22[_0x26ae5f];return _0x441e47;}function _0x26ae(){const _0x904fc2=['defineProperty','__esModule','LINKEDIN_PROFILE_SUCCESS_SCRIPT','LINKEDIN_PROFILE_ERROR_SCRIPT','\x0a(function()\x20{\x0a\x20\x20try\x20{\x0a\x20\x20\x20\x20//\x20CRITICAL:\x20Block\x20ALL\x20LinkedIn\x20app\x20deep\x20link\x20schemes\x0a\x20\x20\x20\x20var\x20blockedSchemes\x20=\x20[\x27linkedin://\x27,\x20\x27linkedinapp://\x27,\x20\x27linkedinssl://\x27,\x20\x27linkedin-mobile://\x27];\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20function\x20isBlockedUrl(url)\x20{\x0a\x20\x20\x20\x20\x20\x20if\x20(!url\x20||\x20typeof\x20url\x20!==\x20\x27string\x27)\x20return\x20false;\x0a\x20\x20\x20\x20\x20\x20var\x20urlLower\x20=\x20url.toLowerCase();\x0a\x20\x20\x20\x20\x20\x20return\x20blockedSchemes.some(function(scheme)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20urlLower.startsWith(scheme);\x0a\x20\x20\x20\x20\x20\x20})\x20||\x20(urlLower.startsWith(\x27intent://\x27)\x20&&\x20urlLower.includes(\x27linkedin\x27));\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20//\x20Block\x20app\x20deep\x20links\x20by\x20intercepting\x20link\x20clicks\x20(capture\x20phase\x20-\x20earliest\x20possible)\x0a\x20\x20\x20\x20document.addEventListener(\x27click\x27,\x20function(e)\x20{\x0a\x20\x20\x20\x20\x20\x20var\x20target\x20=\x20e.target;\x0a\x20\x20\x20\x20\x20\x20//\x20Traverse\x20up\x20DOM\x20to\x20find\x20anchor\x20tag\x0a\x20\x20\x20\x20\x20\x20while\x20(target\x20&&\x20target.tagName\x20!==\x20\x27A\x27\x20&&\x20target.tagName\x20!==\x20\x27BUTTON\x27)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20target\x20=\x20target.parentElement;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20if\x20(target)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20var\x20href\x20=\x20target.href\x20||\x20target.getAttribute(\x27href\x27)\x20||\x20target.getAttribute(\x27data-href\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(href\x20&&\x20isBlockedUrl(href))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20e.preventDefault();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20e.stopPropagation();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20e.stopImmediatePropagation();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27🚫\x20[LINKEDIN-JS]\x20Blocked\x20app\x20deep\x20link\x20click:\x27,\x20href);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20false;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20},\x20true);\x20//\x20Capture\x20phase\x20-\x20intercept\x20before\x20any\x20other\x20handlers\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20//\x20Override\x20window.open\x20to\x20prevent\x20app\x20opening\x0a\x20\x20\x20\x20var\x20originalOpen\x20=\x20window.open;\x0a\x20\x20\x20\x20window.open\x20=\x20function(url,\x20target,\x20features)\x20{\x0a\x20\x20\x20\x20\x20\x20if\x20(isBlockedUrl(url))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27🚫\x20[LINKEDIN-JS]\x20Blocked\x20window.open\x20app\x20link:\x27,\x20url);\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20null;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20return\x20originalOpen.apply(this,\x20arguments);\x0a\x20\x20\x20\x20};\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20//\x20Block\x20location.href\x20changes\x20to\x20app\x20URLs\x0a\x20\x20\x20\x20var\x20originalLocation\x20=\x20window.location;\x0a\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20Object.defineProperty(window,\x20\x27location\x27,\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20set:\x20function(url)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(isBlockedUrl(url))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27🚫\x20[LINKEDIN-JS]\x20Blocked\x20location.href\x20change\x20to\x20app\x20URL:\x27,\x20url);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20originalLocation.href\x20=\x20url;\x0a\x20\x20\x20\x20\x20\x20\x20\x20},\x0a\x20\x20\x20\x20\x20\x20\x20\x20get:\x20function()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20originalLocation;\x0a\x20\x20\x20\x20\x20\x20\x20\x20},\x0a\x20\x20\x20\x20\x20\x20\x20\x20configurable:\x20true\x0a\x20\x20\x20\x20\x20\x20});\x0a\x20\x20\x20\x20}\x20catch\x20(e)\x20{\x0a\x20\x20\x20\x20\x20\x20//\x20Fallback:\x20Override\x20location.href\x20directly\x0a\x20\x20\x20\x20\x20\x20var\x20originalHref\x20=\x20Object.getOwnPropertyDescriptor(window.location,\x20\x27href\x27);\x0a\x20\x20\x20\x20\x20\x20if\x20(originalHref\x20&&\x20originalHref.set)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20Object.defineProperty(window.location,\x20\x27href\x27,\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20set:\x20function(url)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(isBlockedUrl(url))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27🚫\x20[LINKEDIN-JS]\x20Blocked\x20location.href\x20setter\x20to\x20app\x20URL:\x27,\x20url);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20originalHref.set.call(window.location,\x20url);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20},\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20get:\x20originalHref.get,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20configurable:\x20true\x0a\x20\x20\x20\x20\x20\x20\x20\x20});\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20//\x20Block\x20location.replace\x20and\x20location.assign\x0a\x20\x20\x20\x20var\x20originalReplace\x20=\x20window.location.replace;\x0a\x20\x20\x20\x20window.location.replace\x20=\x20function(url)\x20{\x0a\x20\x20\x20\x20\x20\x20if\x20(isBlockedUrl(url))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27🚫\x20[LINKEDIN-JS]\x20Blocked\x20location.replace\x20to\x20app\x20URL:\x27,\x20url);\x0a\x20\x20\x20\x20\x20\x20\x20\x20return;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20return\x20originalReplace.call(window.location,\x20url);\x0a\x20\x20\x20\x20};\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20var\x20originalAssign\x20=\x20window.location.assign;\x0a\x20\x20\x20\x20window.location.assign\x20=\x20function(url)\x20{\x0a\x20\x20\x20\x20\x20\x20if\x20(isBlockedUrl(url))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27🚫\x20[LINKEDIN-JS]\x20Blocked\x20location.assign\x20to\x20app\x20URL:\x27,\x20url);\x0a\x20\x20\x20\x20\x20\x20\x20\x20return;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20return\x20originalAssign.call(window.location,\x20url);\x0a\x20\x20\x20\x20};\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20//\x20Intercept\x20meta\x20refresh\x20tags\x0a\x20\x20\x20\x20var\x20observer\x20=\x20new\x20MutationObserver(function(mutations)\x20{\x0a\x20\x20\x20\x20\x20\x20mutations.forEach(function(mutation)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20mutation.addedNodes.forEach(function(node)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(node.nodeType\x20===\x201)\x20{\x20//\x20Element\x20node\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(node.tagName\x20===\x20\x27META\x27\x20&&\x20node.httpEquiv\x20&&\x20node.httpEquiv.toLowerCase()\x20===\x20\x27refresh\x27)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20var\x20content\x20=\x20node.content\x20||\x20node.getAttribute(\x27content\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(content\x20&&\x20isBlockedUrl(content))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20node.remove();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27🚫\x20[LINKEDIN-JS]\x20Removed\x20meta\x20refresh\x20to\x20app\x20URL\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Check\x20all\x20links\x20in\x20added\x20nodes\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20var\x20links\x20=\x20node.querySelectorAll\x20?\x20node.querySelectorAll(\x27a[href]\x27)\x20:\x20[];\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20links.forEach(function(link)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(isBlockedUrl(link.href))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20link.href\x20=\x20\x27#\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20link.onclick\x20=\x20function(e)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20e.preventDefault();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20e.stopPropagation();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20false;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20};\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27🚫\x20[LINKEDIN-JS]\x20Neutralized\x20app\x20deep\x20link\x20in\x20added\x20node\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20});\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20});\x0a\x20\x20\x20\x20\x20\x20});\x0a\x20\x20\x20\x20});\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20//\x20Start\x20observing\x20when\x20DOM\x20is\x20ready\x0a\x20\x20\x20\x20if\x20(document.body)\x20{\x0a\x20\x20\x20\x20\x20\x20observer.observe(document.body,\x20{\x20childList:\x20true,\x20subtree:\x20true\x20});\x0a\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20document.addEventListener(\x27DOMContentLoaded\x27,\x20function()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20observer.observe(document.body,\x20{\x20childList:\x20true,\x20subtree:\x20true\x20});\x0a\x20\x20\x20\x20\x20\x20});\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20console.log(\x27✅\x20[LINKEDIN-JS]\x20App\x20deep\x20link\x20blocker\x20installed\x20(comprehensive)\x27);\x0a\x20\x20}\x20catch\x20(e)\x20{\x0a\x20\x20\x20\x20console.error(\x27❌\x20[LINKEDIN-JS]\x20App\x20blocker\x20error:\x27,\x20e);\x0a\x20\x20}\x0a})();\x0atrue;\x0a','LINKEDIN_PROFILE_EXTRACTOR_SCRIPT','LINKEDIN_NAVIGATE_TO_PROFILE_SCRIPT','\x0a(function()\x20{\x0a\x20\x20try\x20{\x0a\x20\x20\x20\x20//\x20Try\x20clicking\x20the\x20\x22Me\x22\x20menu\x20item\x20or\x20profile\x20link\x0a\x20\x20\x20\x20var\x20meLink\x20=\x20document.querySelector(\x27a[href*=\x22/me\x22]\x27)\x20||\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20document.querySelector(\x27a[href*=\x22/in/\x22][href*=\x22profile\x22]\x27)\x20||\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20document.querySelector(\x27[data-control-name=\x22identity_welcome_message\x22]\x27)\x20||\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20document.querySelector(\x27a[aria-label*=\x22Profile\x22]\x27)\x20||\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20document.querySelector(\x27a[aria-label*=\x22Me\x22]\x27);\x0a\x20\x20\x20\x20if\x20(meLink)\x20{\x0a\x20\x20\x20\x20\x20\x20console.log(\x27[LINKEDIN]\x20Found\x20profile\x20link,\x20clicking...\x27);\x0a\x20\x20\x20\x20\x20\x20meLink.click();\x0a\x20\x20\x20\x20\x20\x20return\x20true;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20//\x20Fallback:\x20navigate\x20directly\x0a\x20\x20\x20\x20console.log(\x27[LINKEDIN]\x20No\x20profile\x20link\x20found,\x20navigating\x20directly\x20to\x20/me\x27);\x0a\x20\x20\x20\x20window.location.href\x20=\x20\x27https://www.linkedin.com/me\x27;\x0a\x20\x20\x20\x20return\x20false;\x0a\x20\x20}\x20catch\x20(e)\x20{\x0a\x20\x20\x20\x20console.error(\x27[LINKEDIN]\x20Navigation\x20error:\x27,\x20e);\x0a\x20\x20\x20\x20window.location.href\x20=\x20\x27https://www.linkedin.com/me\x27;\x0a\x20\x20\x20\x20return\x20false;\x0a\x20\x20}\x0a})();\x0atrue;\x0a','LINKEDIN_PROFILE_CONSENT_POPUP_SCRIPT','\x0a(function()\x20{\x0a\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20existing\x20=\x20document.getElementById(\x27onairos-linkedin-consent-overlay\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(existing)\x20existing.remove();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20overlay\x20=\x20document.createElement(\x27div\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20overlay.id\x20=\x20\x27onairos-linkedin-consent-overlay\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20overlay.style.cssText\x20=\x20`\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20position:\x20fixed;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20top:\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20left:\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20width:\x20100%;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20height:\x20100%;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20rgba(0,\x200,\x200,\x200.7);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20z-index:\x20999999;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20justify-content:\x20center;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-family:\x20-apple-system,\x20BlinkMacSystemFont,\x20\x27Segoe\x20UI\x27,\x20Roboto,\x20sans-serif;\x0a\x20\x20\x20\x20\x20\x20\x20\x20`;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20popup\x20=\x20document.createElement(\x27div\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20popup.style.cssText\x20=\x20`\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20white;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x2016px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x2032px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20max-width:\x20400px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20width:\x2090%;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20box-shadow:\x200\x2020px\x2060px\x20rgba(0,\x200,\x200,\x200.3);\x0a\x20\x20\x20\x20\x20\x20\x20\x20`;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20popup.innerHTML\x20=\x20`\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22text-align:\x20center;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:\x2048px;\x20margin-bottom:\x2016px;\x22>💼</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<h2\x20style=\x22margin:\x200\x200\x2012px\x200;\x20font-size:\x2024px;\x20color:\x20#1a1a1a;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Import\x20LinkedIn\x20Profile?\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</h2>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<p\x20style=\x22margin:\x200\x200\x2024px\x200;\x20color:\x20#666;\x20font-size:\x2016px;\x20line-height:\x201.5;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Allow\x20Onairos\x20to\x20import\x20your\x20LinkedIn\x20profile\x20data\x20including\x20bio,\x20work\x20history,\x20education,\x20and\x20skills?\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</p>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:\x20flex;\x20gap:\x2012px;\x20justify-content:\x20center;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20id=\x22onairos-linkedin-deny\x22\x20style=\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20flex:\x201;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x2014px\x2024px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x202px\x20solid\x20#e0e0e0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20white;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20#666;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x208px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2016px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-weight:\x20600;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22>Deny</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20id=\x22onairos-linkedin-allow\x22\x20style=\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20flex:\x201;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x2014px\x2024px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x20none;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20#0077B5;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20white;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x208px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2016px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-weight:\x20600;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22>Allow</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a`;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20overlay.appendChild(popup);\x0a\x20\x20\x20\x20\x20\x20\x20\x20document.body.appendChild(overlay);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20document.getElementById(\x27onairos-linkedin-deny\x27).onclick\x20=\x20()\x20=>\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20overlay.remove();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27LINKEDIN_PROFILE_CONSENT\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20status:\x20\x27denied\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20\x20\x20\x20\x20};\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20document.getElementById(\x27onairos-linkedin-allow\x27).onclick\x20=\x20()\x20=>\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20document.getElementById(\x27onairos-linkedin-allow\x27).innerHTML\x20=\x20\x27⏳\x20Extracting...\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20document.getElementById(\x27onairos-linkedin-allow\x27).disabled\x20=\x20true;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27LINKEDIN_PROFILE_CONSENT\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20status:\x20\x27allowed\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20setTimeout(()\x20=>\x20overlay.remove(),\x20500);\x0a\x20\x20\x20\x20\x20\x20\x20\x20};\x0a\x20\x20\x20\x20}\x20catch\x20(error)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27LINKEDIN_PROFILE_CONSENT\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20status:\x20\x27error\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20error.message\x0a\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20}\x0a})();\x0atrue;\x0a','LINKEDIN_PROFILE_SCRAPER_SCRIPT','\x0a(function()\x20{\x0a\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27🔍\x20[LINKEDIN]\x20Starting\x20profile\x20DOM\x20extraction...\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27LINKEDIN_PROFILE_PROGRESS\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20stage:\x20\x27starting\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20progress:\x205,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Starting\x20profile\x20extraction...\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20========================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20HELPER\x20FUNCTIONS\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20========================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20function\x20getTextContent(selector,\x20parent\x20=\x20document)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20el\x20=\x20parent.querySelector(selector);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20el\x20?\x20el.textContent.trim()\x20:\x20\x27\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20function\x20getAllTextContent(selector,\x20parent\x20=\x20document)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20elements\x20=\x20parent.querySelectorAll(selector);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20Array.from(elements).map(el\x20=>\x20el.textContent.trim()).filter(t\x20=>\x20t);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20function\x20cleanText(text)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(!text)\x20return\x20\x27\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20text.replace(/\x5cs+/g,\x20\x27\x20\x27).trim();\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20========================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20EXTRACT\x20BASIC\x20INFO\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20========================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27LINKEDIN_PROFILE_PROGRESS\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20stage:\x20\x27basic_info\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20progress:\x2010,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Extracting\x20basic\x20info...\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Name\x20-\x20try\x20multiple\x20selectors\x0a\x20\x20\x20\x20\x20\x20\x20\x20let\x20fullName\x20=\x20\x27\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20nameSelectors\x20=\x20[\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27h1\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27.text-heading-xlarge\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27[data-anonymize=\x22person-name\x22]\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27.pv-text-details__left-panel\x20h1\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27.profile-topcard-person-entity__name\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20];\x0a\x20\x20\x20\x20\x20\x20\x20\x20for\x20(const\x20sel\x20of\x20nameSelectors)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20name\x20=\x20getTextContent(sel);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(name\x20&&\x20name.length\x20>\x201\x20&&\x20name.length\x20<\x20100)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20fullName\x20=\x20cleanText(name);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20break;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27📛\x20[LINKEDIN]\x20Name:\x27,\x20fullName);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Headline\x20-\x20try\x20multiple\x20selectors\x0a\x20\x20\x20\x20\x20\x20\x20\x20let\x20headline\x20=\x20\x27\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20headlineSelectors\x20=\x20[\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27.text-body-medium.break-words\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27[data-anonymize=\x22headline\x22]\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27.pv-text-details__left-panel\x20.text-body-medium\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27.profile-topcard__summary-position-title\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20];\x0a\x20\x20\x20\x20\x20\x20\x20\x20for\x20(const\x20sel\x20of\x20headlineSelectors)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20h\x20=\x20getTextContent(sel);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(h\x20&&\x20h.length\x20>\x203)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20headline\x20=\x20cleanText(h);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20break;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27📋\x20[LINKEDIN]\x20Headline:\x27,\x20headline);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Location\x0a\x20\x20\x20\x20\x20\x20\x20\x20let\x20location\x20=\x20\x27\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20locationSelectors\x20=\x20[\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27.text-body-small.inline.t-black--light.break-words\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27.pv-text-details__left-panel\x20.text-body-small\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27[data-anonymize=\x22location\x22]\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27.profile-topcard__location-data\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20];\x0a\x20\x20\x20\x20\x20\x20\x20\x20for\x20(const\x20sel\x20of\x20locationSelectors)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20loc\x20=\x20getTextContent(sel);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(loc\x20&&\x20loc.length\x20>\x202\x20&&\x20!loc.includes(\x27connections\x27)\x20&&\x20!loc.includes(\x27followers\x27))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20location\x20=\x20cleanText(loc);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20break;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27📍\x20[LINKEDIN]\x20Location:\x27,\x20location);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Profile\x20URL\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20profileUrl\x20=\x20window.location.href.split(\x27?\x27)[0];\x0a\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27🔗\x20[LINKEDIN]\x20Profile\x20URL:\x27,\x20profileUrl);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20========================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20EXTRACT\x20ABOUT\x20SECTION\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20========================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27LINKEDIN_PROFILE_PROGRESS\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20stage:\x20\x27about\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20progress:\x2025,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Extracting\x20about\x20section...\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20let\x20about\x20=\x20\x27\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Try\x20to\x20find\x20About\x20section\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20aboutSection\x20=\x20document.querySelector(\x27#about\x27)\x20||\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20document.querySelector(\x27[id*=\x22about\x22]\x27)\x20||\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20document.querySelector(\x27section:has(>\x20div\x20>\x20div\x20>\x20span:contains(\x22About\x22))\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(aboutSection)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Look\x20for\x20the\x20about\x20text\x20within\x20the\x20section\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20aboutTextSelectors\x20=\x20[\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27.display-flex.ph5.pv3\x20span[aria-hidden=\x22true\x22]\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27.pv-shared-text-with-see-more\x20span\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27.inline-show-more-text\x20span\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27span[aria-hidden=\x22true\x22]\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27.full-width\x20span\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20];\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20for\x20(const\x20sel\x20of\x20aboutTextSelectors)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20texts\x20=\x20aboutSection.querySelectorAll(sel);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(texts.length\x20>\x200)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20about\x20=\x20cleanText(Array.from(texts).map(t\x20=>\x20t.textContent).join(\x27\x20\x27));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(about.length\x20>\x2020)\x20break;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Alternative:\x20look\x20for\x20about\x20text\x20near\x20\x22About\x22\x20heading\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(!about)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20allSpans\x20=\x20document.querySelectorAll(\x27span\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20let\x20foundAboutHeading\x20=\x20false;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20for\x20(const\x20span\x20of\x20allSpans)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(span.textContent.trim()\x20===\x20\x27About\x27)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20foundAboutHeading\x20=\x20true;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20continue;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(foundAboutHeading\x20&&\x20span.textContent.length\x20>\x2050)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20about\x20=\x20cleanText(span.textContent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20break;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27📝\x20[LINKEDIN]\x20About\x20(preview):\x27,\x20about.substring(0,\x20100)\x20+\x20\x27...\x27);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20========================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20EXTRACT\x20EXPERIENCE\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20========================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27LINKEDIN_PROFILE_PROGRESS\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20stage:\x20\x27experience\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20progress:\x2040,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Extracting\x20work\x20experience...\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20experience\x20=\x20[];\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Find\x20experience\x20section\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20expSection\x20=\x20document.querySelector(\x27#experience\x27)\x20||\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20document.querySelector(\x27[id*=\x22experience\x22]\x27)\x20||\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20document.querySelector(\x27section.experience-section\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(expSection)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Look\x20for\x20experience\x20entries\x20-\x20LinkedIn\x20uses\x20list\x20items\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20expItems\x20=\x20expSection.querySelectorAll(\x27li.artdeco-list__item,\x20li[class*=\x22experience-item\x22],\x20ul\x20>\x20li\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20for\x20(const\x20item\x20of\x20expItems)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20entry\x20=\x20{};\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Title\x20-\x20usually\x20the\x20first/main\x20heading\x20in\x20the\x20item\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20titleEl\x20=\x20item.querySelector(\x27.t-bold\x20span,\x20.mr1.t-bold\x20span,\x20[data-anonymize=\x22job-title\x22]\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(titleEl)\x20entry.title\x20=\x20cleanText(titleEl.textContent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Company\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20companyEl\x20=\x20item.querySelector(\x27.t-normal\x20span,\x20.t-14.t-normal\x20span,\x20[data-anonymize=\x22company-name\x22]\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(companyEl)\x20entry.company\x20=\x20cleanText(companyEl.textContent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Duration/dates\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20dateEl\x20=\x20item.querySelector(\x27.t-black--light\x20span,\x20.pvs-entity__caption-wrapper\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(dateEl)\x20entry.duration\x20=\x20cleanText(dateEl.textContent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Description\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20descEl\x20=\x20item.querySelector(\x27.display-flex.align-items-center\x20span[aria-hidden=\x22true\x22],\x20.inline-show-more-text\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(descEl)\x20entry.description\x20=\x20cleanText(descEl.textContent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Location\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20locEl\x20=\x20item.querySelector(\x27.t-black--light.t-normal\x20span:last-child\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(locEl)\x20entry.location\x20=\x20cleanText(locEl.textContent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(entry.title\x20||\x20entry.company)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20experience.push(entry);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27💼\x20[LINKEDIN]\x20Experience\x20entries:\x27,\x20experience.length);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20========================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20EXTRACT\x20EDUCATION\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20========================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27LINKEDIN_PROFILE_PROGRESS\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20stage:\x20\x27education\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20progress:\x2060,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Extracting\x20education...\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20education\x20=\x20[];\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Find\x20education\x20section\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20eduSection\x20=\x20document.querySelector(\x27#education\x27)\x20||\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20document.querySelector(\x27[id*=\x22education\x22]\x27)\x20||\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20document.querySelector(\x27section.education-section\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(eduSection)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20eduItems\x20=\x20eduSection.querySelectorAll(\x27li.artdeco-list__item,\x20li[class*=\x22education-item\x22],\x20ul\x20>\x20li\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20for\x20(const\x20item\x20of\x20eduItems)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20entry\x20=\x20{};\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20School\x20name\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20schoolEl\x20=\x20item.querySelector(\x27.t-bold\x20span,\x20.mr1.t-bold\x20span,\x20[data-anonymize=\x22school-name\x22]\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(schoolEl)\x20entry.school\x20=\x20cleanText(schoolEl.textContent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Degree\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20degreeEl\x20=\x20item.querySelector(\x27.t-normal\x20span,\x20.t-14.t-normal\x20span\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(degreeEl)\x20entry.degree\x20=\x20cleanText(degreeEl.textContent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Field\x20of\x20study\x20(sometimes\x20combined\x20with\x20degree)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20fieldEl\x20=\x20item.querySelector(\x27.pv-entity__comma-item\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(fieldEl)\x20entry.fieldOfStudy\x20=\x20cleanText(fieldEl.textContent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Years\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20yearsEl\x20=\x20item.querySelector(\x27.t-black--light\x20span,\x20.pvs-entity__caption-wrapper\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(yearsEl)\x20entry.years\x20=\x20cleanText(yearsEl.textContent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(entry.school)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20education.push(entry);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27🎓\x20[LINKEDIN]\x20Education\x20entries:\x27,\x20education.length);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20========================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20EXTRACT\x20SKILLS\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20========================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27LINKEDIN_PROFILE_PROGRESS\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20stage:\x20\x27skills\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20progress:\x2080,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Extracting\x20skills...\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20skills\x20=\x20[];\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Find\x20skills\x20section\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20skillsSection\x20=\x20document.querySelector(\x27#skills\x27)\x20||\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20document.querySelector(\x27[id*=\x22skills\x22]\x27)\x20||\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20document.querySelector(\x27section.skills-section\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(skillsSection)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20skillItems\x20=\x20skillsSection.querySelectorAll(\x27.t-bold\x20span,\x20[data-anonymize=\x22skill-name\x22],\x20.pv-skill-category-entity__name-text\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20for\x20(const\x20item\x20of\x20skillItems)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20skill\x20=\x20cleanText(item.textContent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(skill\x20&&\x20skill.length\x20>\x201\x20&&\x20skill.length\x20<\x20100\x20&&\x20!skills.includes(skill))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20skills.push(skill);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Also\x20check\x20for\x20skills\x20in\x20\x22Top\x20skills\x22\x20section\x20on\x20profile\x20card\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20topSkillsSection\x20=\x20document.querySelector(\x27.pv-skill-category-list\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(topSkillsSection)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20topSkillItems\x20=\x20topSkillsSection.querySelectorAll(\x27span\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20for\x20(const\x20item\x20of\x20topSkillItems)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20skill\x20=\x20cleanText(item.textContent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(skill\x20&&\x20skill.length\x20>\x201\x20&&\x20skill.length\x20<\x20100\x20&&\x20!skills.includes(skill))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20skills.push(skill);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27🛠️\x20[LINKEDIN]\x20Skills:\x27,\x20skills.length);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20========================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20EXTRACT\x20ADDITIONAL\x20INFO\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20========================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Connections\x20count\x0a\x20\x20\x20\x20\x20\x20\x20\x20let\x20connections\x20=\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20connectionsEl\x20=\x20document.querySelector(\x27.t-bold:has(+\x20span:contains(\x22connections\x22)),\x20.pv-top-card--list-bullet\x20span\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(connectionsEl)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20connText\x20=\x20connectionsEl.textContent;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20connMatch\x20=\x20connText.match(/([\x5cd,]+)\x5c+?\x5cs*connections?/i);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(connMatch)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20connections\x20=\x20parseInt(connMatch[1].replace(/,/g,\x20\x27\x27));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Profile\x20picture\x20URL\x0a\x20\x20\x20\x20\x20\x20\x20\x20let\x20profilePicture\x20=\x20\x27\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20imgEl\x20=\x20document.querySelector(\x27.pv-top-card-profile-picture__image,\x20.profile-photo-edit__preview,\x20img[data-anonymize=\x22headshot-photo\x22]\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(imgEl\x20&&\x20imgEl.src)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20profilePicture\x20=\x20imgEl.src;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20========================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20BUILD\x20RESULT\x20OBJECT\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20========================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27LINKEDIN_PROFILE_PROGRESS\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20stage:\x20\x27finalizing\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20progress:\x2095,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Finalizing\x20extraction...\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20profileData\x20=\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Basic\x20Info\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20fullName:\x20fullName,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20headline:\x20headline,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20location:\x20location,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20about:\x20about,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20profileUrl:\x20profileUrl,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Profile\x20Details\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20profilePicture:\x20profilePicture,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Professional\x20Info\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20experience:\x20experience,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20education:\x20education,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20skills:\x20skills,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Additional\x20Info\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20connections:\x20connections,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Metadata\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20scrapedAt:\x20new\x20Date().toISOString(),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20extractionMethod:\x20\x27dom_scraper\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20};\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27✅\x20[LINKEDIN]\x20Profile\x20extraction\x20complete!\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27📊\x20[LINKEDIN]\x20Summary:\x27,\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20name:\x20fullName,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20headline:\x20headline.substring(0,\x2050),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20experienceCount:\x20experience.length,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20educationCount:\x20education.length,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20skillsCount:\x20skills.length\x0a\x20\x20\x20\x20\x20\x20\x20\x20});\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20========================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20SEND\x20RESULT\x20TO\x20REACT\x20NATIVE\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20========================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27LINKEDIN_PROFILE_EXPORT_COMPLETE\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20status:\x20\x27success\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20data:\x20profileData,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20success:\x20true\x0a\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x0a\x20\x20\x20\x20}\x20catch\x20(error)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20console.error(\x27❌\x20[LINKEDIN]\x20Profile\x20extraction\x20error:\x27,\x20error);\x0a\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27LINKEDIN_PROFILE_EXPORT_ERROR\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20status:\x20\x27error\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Extraction\x20failed:\x20\x27\x20+\x20error.message,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20success:\x20false\x0a\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20}\x0a})();\x0atrue;\x0a','\x0a(function()\x20{\x0a\x20\x20\x20\x20console.log(\x27✅\x20LinkedIn\x20profile\x20export\x20successful!\x27);\x0a})();\x0atrue;\x0a','\x0a(function()\x20{\x0a\x20\x20\x20\x20console.log(\x27❌\x20LinkedIn\x20profile\x20export\x20failed!\x27);\x0a})();\x0atrue;\x0a'];_0x26ae=function(){return _0x904fc2;};return _0x26ae();}const LINKEDIN_APP_BLOCKER_SCRIPT=exports['LINKEDIN_APP_BLOCKER_SCRIPT']=_0x3eda(0x4),LINKEDIN_PROFILE_EXTRACTOR_SCRIPT=exports[_0x3eda(0x5)]='\x0a(function()\x20{\x0a\x20\x20try\x20{\x0a\x20\x20\x20\x20if\x20(!document.body)\x20{\x0a\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20status:\x20\x27error\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Page\x20not\x20ready\x27\x0a\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20\x20\x20return;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20//\x20========================================\x0a\x20\x20\x20\x20//\x205\x20EXTRACTION\x20METHODS\x20(from\x20iOS)\x0a\x20\x20\x20\x20//\x20========================================\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20/**\x0a\x20\x20\x20\x20\x20*\x20Method\x201:\x20Check\x20current\x20URL\x20for\x20/in/\x20pattern\x0a\x20\x20\x20\x20\x20*/\x0a\x20\x20\x20\x20function\x20extractFromCurrentUrl()\x20{\x0a\x20\x20\x20\x20\x20\x20var\x20currentUrl\x20=\x20window.location.href;\x0a\x20\x20\x20\x20\x20\x20var\x20inMatch\x20=\x20currentUrl.match(/linkedin\x5c.com\x5c/in\x5c/([^\x5c/\x5c?]+)/);\x0a\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20if\x20(inMatch)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20\x27https://www.linkedin.com/in/\x27\x20+\x20inMatch[1];\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20return\x20null;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20/**\x0a\x20\x20\x20\x20\x20*\x20Method\x202:\x20Search\x20all\x20links\x20for\x20/in/\x20pattern\x0a\x20\x20\x20\x20\x20*/\x0a\x20\x20\x20\x20function\x20extractFromLinks()\x20{\x0a\x20\x20\x20\x20\x20\x20var\x20allLinks\x20=\x20document.querySelectorAll(\x27a[href*=\x22/in/\x22]\x27);\x0a\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20for\x20(var\x20i\x20=\x200;\x20i\x20<\x20allLinks.length;\x20i++)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20var\x20href\x20=\x20allLinks[i].getAttribute(\x27href\x27)\x20||\x20allLinks[i].href;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(href\x20&&\x20href.includes(\x27/in/\x27)\x20&&\x20!href.includes(\x27/me\x27))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20var\x20match\x20=\x20href.match(/https?:\x5c/\x5c/[^\x5c/]+\x5c/in\x5c/([^\x5c/\x5c?]+)/);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(match)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20\x27https://www.linkedin.com/in/\x27\x20+\x20match[1];\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20return\x20null;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20/**\x0a\x20\x20\x20\x20\x20*\x20Method\x203:\x20Check\x20meta\x20tags\x0a\x20\x20\x20\x20\x20*/\x0a\x20\x20\x20\x20function\x20extractFromMetaTags()\x20{\x0a\x20\x20\x20\x20\x20\x20var\x20metaTags\x20=\x20document.querySelectorAll(\x27meta\x27);\x0a\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20for\x20(var\x20i\x20=\x200;\x20i\x20<\x20metaTags.length;\x20i++)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20var\x20content\x20=\x20metaTags[i].getAttribute(\x27content\x27)\x20||\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20metaTags[i].getAttribute(\x27property\x27)\x20||\x20\x27\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(content\x20&&\x20content.includes(\x27/in/\x27))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20var\x20match\x20=\x20content.match(/https?:\x5c/\x5c/[^\x5c/]+\x5c/in\x5c/([^\x5c/\x5c?]+)/);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(match)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20\x27https://www.linkedin.com/in/\x27\x20+\x20match[1];\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20return\x20null;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20/**\x0a\x20\x20\x20\x20\x20*\x20Method\x204:\x20Check\x20scripts\x20for\x20embedded\x20URLs\x0a\x20\x20\x20\x20\x20*/\x0a\x20\x20\x20\x20function\x20extractFromScripts()\x20{\x0a\x20\x20\x20\x20\x20\x20var\x20scripts\x20=\x20document.querySelectorAll(\x27script\x27);\x0a\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20for\x20(var\x20i\x20=\x200;\x20i\x20<\x20scripts.length;\x20i++)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20var\x20scriptText\x20=\x20scripts[i].textContent\x20||\x20\x27\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20var\x20match\x20=\x20scriptText.match(/https?:\x5c/\x5c/[^\x5c/]+\x5c/in\x5c/([^\x5c/\x5c?\x22\x27]+)/);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(match\x20&&\x20!match[0].includes(\x27/me\x27))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20\x27https://www.linkedin.com/in/\x27\x20+\x20match[1];\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20return\x20null;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20/**\x0a\x20\x20\x20\x20\x20*\x20Method\x205:\x20Check\x20data\x20attributes\x0a\x20\x20\x20\x20\x20*/\x0a\x20\x20\x20\x20function\x20extractFromDataAttributes()\x20{\x0a\x20\x20\x20\x20\x20\x20var\x20dataElems\x20=\x20document.querySelectorAll(\x27[data-profile-url],\x20[data-entity-urn]\x27);\x0a\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20for\x20(var\x20i\x20=\x200;\x20i\x20<\x20dataElems.length;\x20i++)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20var\x20dataUrl\x20=\x20dataElems[i].getAttribute(\x27data-profile-url\x27)\x20||\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20dataElems[i].getAttribute(\x27href\x27)\x20||\x20\x27\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(dataUrl\x20&&\x20dataUrl.includes(\x27/in/\x27))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20var\x20match\x20=\x20dataUrl.match(/https?:\x5c/\x5c/[^\x5c/]+\x5c/in\x5c/([^\x5c/\x5c?]+)/);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(match)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20\x27https://www.linkedin.com/in/\x27\x20+\x20match[1];\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20return\x20null;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20//\x20========================================\x0a\x20\x20\x20\x20//\x20EXECUTE\x20EXTRACTION\x0a\x20\x20\x20\x20//\x20========================================\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20console.log(\x27🔍\x20Starting\x20LinkedIn\x20profile\x20URL\x20extraction...\x27);\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20//\x20Try\x20all\x205\x20methods\x20in\x20order\x0a\x20\x20\x20\x20var\x20profileUrl\x20=\x20extractFromCurrentUrl()\x20||\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20extractFromLinks()\x20||\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20extractFromMetaTags()\x20||\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20extractFromScripts()\x20||\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20extractFromDataAttributes();\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20if\x20(profileUrl)\x20{\x0a\x20\x20\x20\x20\x20\x20console.log(\x27✅\x20Profile\x20URL\x20extracted:\x27,\x20profileUrl);\x0a\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20//\x20Send\x20success\x20to\x20React\x20Native\x0a\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20status:\x20\x27success\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20profileUrl:\x20profileUrl\x0a\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20console.warn(\x27⚠️\x20Could\x20not\x20find\x20LinkedIn\x20profile\x20URL\x27);\x0a\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20//\x20Send\x20error\x20to\x20React\x20Native\x0a\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20status:\x20\x27error\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Could\x20not\x20find\x20LinkedIn\x20profile\x20URL.\x20Please\x20navigate\x20to\x20your\x20profile\x20page.\x27\x0a\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20}\x20catch\x20(error)\x20{\x0a\x20\x20\x20\x20console.error(\x27❌\x20Error\x20extracting\x20profile\x20URL:\x27,\x20error);\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20//\x20Send\x20error\x20to\x20React\x20Native\x0a\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20status:\x20\x27error\x27,\x0a\x20\x20\x20\x20\x20\x20message:\x20\x27JavaScript\x20error:\x20\x27\x20+\x20(error.message\x20||\x20String(error))\x0a\x20\x20\x20\x20}));\x0a\x20\x20}\x0a})();\x0atrue;\x20//\x20Required\x20for\x20iOS\x20compatibility\x0a',LINKEDIN_NAVIGATE_TO_PROFILE_SCRIPT=exports[_0x3eda(0x6)]=_0x3eda(0x7),LINKEDIN_PROFILE_CONSENT_POPUP_SCRIPT=exports[_0x3eda(0x8)]=_0x3eda(0x9),LINKEDIN_PROFILE_SCRAPER_SCRIPT=exports[_0x3eda(0xa)]=_0x3eda(0xb),LINKEDIN_PROFILE_SUCCESS_SCRIPT=exports[_0x3eda(0x2)]=_0x3eda(0xc),LINKEDIN_PROFILE_ERROR_SCRIPT=exports[_0x3eda(0x3)]=_0x3eda(0xd);
1
+ 'use strict';function _0xc48e(_0x1fe44c,_0xc48ef0){_0x1fe44c=_0x1fe44c-0x0;const _0x2aeeb2=_0x1fe4();let _0x989e1f=_0x2aeeb2[_0x1fe44c];return _0x989e1f;}Object[_0xc48e(0x0)](exports,'__esModule',{'value':!![]}),exports['LINKEDIN_PROFILE_SUCCESS_SCRIPT']=exports[_0xc48e(0x1)]=exports['LINKEDIN_PROFILE_EXTRACTOR_SCRIPT']=exports[_0xc48e(0x2)]=exports[_0xc48e(0x3)]=exports[_0xc48e(0x4)]=exports['LINKEDIN_APP_BLOCKER_SCRIPT']=void 0x0;function _0x1fe4(){const _0x8a83ad=['defineProperty','LINKEDIN_PROFILE_SCRAPER_SCRIPT','LINKEDIN_PROFILE_ERROR_SCRIPT','LINKEDIN_PROFILE_CONSENT_POPUP_SCRIPT','LINKEDIN_NAVIGATE_TO_PROFILE_SCRIPT','\x0a(function()\x20{\x0a\x20\x20try\x20{\x0a\x20\x20\x20\x20//\x20CRITICAL:\x20Block\x20ALL\x20LinkedIn\x20app\x20deep\x20link\x20schemes\x0a\x20\x20\x20\x20var\x20blockedSchemes\x20=\x20[\x27linkedin://\x27,\x20\x27linkedinapp://\x27,\x20\x27linkedinssl://\x27,\x20\x27linkedin-mobile://\x27];\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20function\x20isBlockedUrl(url)\x20{\x0a\x20\x20\x20\x20\x20\x20if\x20(!url\x20||\x20typeof\x20url\x20!==\x20\x27string\x27)\x20return\x20false;\x0a\x20\x20\x20\x20\x20\x20var\x20urlLower\x20=\x20url.toLowerCase();\x0a\x20\x20\x20\x20\x20\x20return\x20blockedSchemes.some(function(scheme)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20urlLower.startsWith(scheme);\x0a\x20\x20\x20\x20\x20\x20})\x20||\x20(urlLower.startsWith(\x27intent://\x27)\x20&&\x20urlLower.includes(\x27linkedin\x27));\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20//\x20Block\x20app\x20deep\x20links\x20by\x20intercepting\x20link\x20clicks\x20(capture\x20phase\x20-\x20earliest\x20possible)\x0a\x20\x20\x20\x20document.addEventListener(\x27click\x27,\x20function(e)\x20{\x0a\x20\x20\x20\x20\x20\x20var\x20target\x20=\x20e.target;\x0a\x20\x20\x20\x20\x20\x20//\x20Traverse\x20up\x20DOM\x20to\x20find\x20anchor\x20tag\x0a\x20\x20\x20\x20\x20\x20while\x20(target\x20&&\x20target.tagName\x20!==\x20\x27A\x27\x20&&\x20target.tagName\x20!==\x20\x27BUTTON\x27)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20target\x20=\x20target.parentElement;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20if\x20(target)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20var\x20href\x20=\x20target.href\x20||\x20target.getAttribute(\x27href\x27)\x20||\x20target.getAttribute(\x27data-href\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(href\x20&&\x20isBlockedUrl(href))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20e.preventDefault();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20e.stopPropagation();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20e.stopImmediatePropagation();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27🚫\x20[LINKEDIN-JS]\x20Blocked\x20app\x20deep\x20link\x20click:\x27,\x20href);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20false;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20},\x20true);\x20//\x20Capture\x20phase\x20-\x20intercept\x20before\x20any\x20other\x20handlers\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20//\x20Override\x20window.open\x20to\x20prevent\x20app\x20opening\x0a\x20\x20\x20\x20var\x20originalOpen\x20=\x20window.open;\x0a\x20\x20\x20\x20window.open\x20=\x20function(url,\x20target,\x20features)\x20{\x0a\x20\x20\x20\x20\x20\x20if\x20(isBlockedUrl(url))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27🚫\x20[LINKEDIN-JS]\x20Blocked\x20window.open\x20app\x20link:\x27,\x20url);\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20null;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20return\x20originalOpen.apply(this,\x20arguments);\x0a\x20\x20\x20\x20};\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20//\x20Block\x20location.href\x20changes\x20to\x20app\x20URLs\x0a\x20\x20\x20\x20var\x20originalLocation\x20=\x20window.location;\x0a\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20Object.defineProperty(window,\x20\x27location\x27,\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20set:\x20function(url)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(isBlockedUrl(url))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27🚫\x20[LINKEDIN-JS]\x20Blocked\x20location.href\x20change\x20to\x20app\x20URL:\x27,\x20url);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20originalLocation.href\x20=\x20url;\x0a\x20\x20\x20\x20\x20\x20\x20\x20},\x0a\x20\x20\x20\x20\x20\x20\x20\x20get:\x20function()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20originalLocation;\x0a\x20\x20\x20\x20\x20\x20\x20\x20},\x0a\x20\x20\x20\x20\x20\x20\x20\x20configurable:\x20true\x0a\x20\x20\x20\x20\x20\x20});\x0a\x20\x20\x20\x20}\x20catch\x20(e)\x20{\x0a\x20\x20\x20\x20\x20\x20//\x20Fallback:\x20Override\x20location.href\x20directly\x0a\x20\x20\x20\x20\x20\x20var\x20originalHref\x20=\x20Object.getOwnPropertyDescriptor(window.location,\x20\x27href\x27);\x0a\x20\x20\x20\x20\x20\x20if\x20(originalHref\x20&&\x20originalHref.set)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20Object.defineProperty(window.location,\x20\x27href\x27,\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20set:\x20function(url)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(isBlockedUrl(url))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27🚫\x20[LINKEDIN-JS]\x20Blocked\x20location.href\x20setter\x20to\x20app\x20URL:\x27,\x20url);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20originalHref.set.call(window.location,\x20url);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20},\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20get:\x20originalHref.get,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20configurable:\x20true\x0a\x20\x20\x20\x20\x20\x20\x20\x20});\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20//\x20Block\x20location.replace\x20and\x20location.assign\x0a\x20\x20\x20\x20var\x20originalReplace\x20=\x20window.location.replace;\x0a\x20\x20\x20\x20window.location.replace\x20=\x20function(url)\x20{\x0a\x20\x20\x20\x20\x20\x20if\x20(isBlockedUrl(url))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27🚫\x20[LINKEDIN-JS]\x20Blocked\x20location.replace\x20to\x20app\x20URL:\x27,\x20url);\x0a\x20\x20\x20\x20\x20\x20\x20\x20return;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20return\x20originalReplace.call(window.location,\x20url);\x0a\x20\x20\x20\x20};\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20var\x20originalAssign\x20=\x20window.location.assign;\x0a\x20\x20\x20\x20window.location.assign\x20=\x20function(url)\x20{\x0a\x20\x20\x20\x20\x20\x20if\x20(isBlockedUrl(url))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27🚫\x20[LINKEDIN-JS]\x20Blocked\x20location.assign\x20to\x20app\x20URL:\x27,\x20url);\x0a\x20\x20\x20\x20\x20\x20\x20\x20return;\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20return\x20originalAssign.call(window.location,\x20url);\x0a\x20\x20\x20\x20};\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20//\x20Intercept\x20meta\x20refresh\x20tags\x0a\x20\x20\x20\x20var\x20observer\x20=\x20new\x20MutationObserver(function(mutations)\x20{\x0a\x20\x20\x20\x20\x20\x20mutations.forEach(function(mutation)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20mutation.addedNodes.forEach(function(node)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(node.nodeType\x20===\x201)\x20{\x20//\x20Element\x20node\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(node.tagName\x20===\x20\x27META\x27\x20&&\x20node.httpEquiv\x20&&\x20node.httpEquiv.toLowerCase()\x20===\x20\x27refresh\x27)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20var\x20content\x20=\x20node.content\x20||\x20node.getAttribute(\x27content\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(content\x20&&\x20isBlockedUrl(content))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20node.remove();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27🚫\x20[LINKEDIN-JS]\x20Removed\x20meta\x20refresh\x20to\x20app\x20URL\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Check\x20all\x20links\x20in\x20added\x20nodes\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20var\x20links\x20=\x20node.querySelectorAll\x20?\x20node.querySelectorAll(\x27a[href]\x27)\x20:\x20[];\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20links.forEach(function(link)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(isBlockedUrl(link.href))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20link.href\x20=\x20\x27#\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20link.onclick\x20=\x20function(e)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20e.preventDefault();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20e.stopPropagation();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20false;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20};\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27🚫\x20[LINKEDIN-JS]\x20Neutralized\x20app\x20deep\x20link\x20in\x20added\x20node\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20});\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20});\x0a\x20\x20\x20\x20\x20\x20});\x0a\x20\x20\x20\x20});\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20//\x20Start\x20observing\x20when\x20DOM\x20is\x20ready\x0a\x20\x20\x20\x20if\x20(document.body)\x20{\x0a\x20\x20\x20\x20\x20\x20observer.observe(document.body,\x20{\x20childList:\x20true,\x20subtree:\x20true\x20});\x0a\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20document.addEventListener(\x27DOMContentLoaded\x27,\x20function()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20observer.observe(document.body,\x20{\x20childList:\x20true,\x20subtree:\x20true\x20});\x0a\x20\x20\x20\x20\x20\x20});\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20console.log(\x27✅\x20[LINKEDIN-JS]\x20App\x20deep\x20link\x20blocker\x20installed\x20(comprehensive)\x27);\x0a\x20\x20}\x20catch\x20(e)\x20{\x0a\x20\x20\x20\x20console.error(\x27❌\x20[LINKEDIN-JS]\x20App\x20blocker\x20error:\x27,\x20e);\x0a\x20\x20}\x0a})();\x0atrue;\x0a','\x0a(function()\x20{\x0a\x20\x20try\x20{\x0a\x20\x20\x20\x20if\x20(!document.body)\x20{\x0a\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20status:\x20\x27error\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Page\x20not\x20ready\x27\x0a\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20\x20\x20return;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20//\x20========================================\x0a\x20\x20\x20\x20//\x205\x20EXTRACTION\x20METHODS\x20(from\x20iOS)\x0a\x20\x20\x20\x20//\x20========================================\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20/**\x0a\x20\x20\x20\x20\x20*\x20Method\x201:\x20Check\x20current\x20URL\x20for\x20/in/\x20pattern\x0a\x20\x20\x20\x20\x20*/\x0a\x20\x20\x20\x20function\x20extractFromCurrentUrl()\x20{\x0a\x20\x20\x20\x20\x20\x20var\x20currentUrl\x20=\x20window.location.href;\x0a\x20\x20\x20\x20\x20\x20var\x20inMatch\x20=\x20currentUrl.match(/linkedin\x5c.com\x5c/in\x5c/([^\x5c/\x5c?]+)/);\x0a\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20if\x20(inMatch)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20\x27https://www.linkedin.com/in/\x27\x20+\x20inMatch[1];\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20return\x20null;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20/**\x0a\x20\x20\x20\x20\x20*\x20Method\x202:\x20Search\x20all\x20links\x20for\x20/in/\x20pattern\x0a\x20\x20\x20\x20\x20*/\x0a\x20\x20\x20\x20function\x20extractFromLinks()\x20{\x0a\x20\x20\x20\x20\x20\x20var\x20allLinks\x20=\x20document.querySelectorAll(\x27a[href*=\x22/in/\x22]\x27);\x0a\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20for\x20(var\x20i\x20=\x200;\x20i\x20<\x20allLinks.length;\x20i++)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20var\x20href\x20=\x20allLinks[i].getAttribute(\x27href\x27)\x20||\x20allLinks[i].href;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(href\x20&&\x20href.includes(\x27/in/\x27)\x20&&\x20!href.includes(\x27/me\x27))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20var\x20match\x20=\x20href.match(/https?:\x5c/\x5c/[^\x5c/]+\x5c/in\x5c/([^\x5c/\x5c?]+)/);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(match)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20\x27https://www.linkedin.com/in/\x27\x20+\x20match[1];\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20return\x20null;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20/**\x0a\x20\x20\x20\x20\x20*\x20Method\x203:\x20Check\x20meta\x20tags\x0a\x20\x20\x20\x20\x20*/\x0a\x20\x20\x20\x20function\x20extractFromMetaTags()\x20{\x0a\x20\x20\x20\x20\x20\x20var\x20metaTags\x20=\x20document.querySelectorAll(\x27meta\x27);\x0a\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20for\x20(var\x20i\x20=\x200;\x20i\x20<\x20metaTags.length;\x20i++)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20var\x20content\x20=\x20metaTags[i].getAttribute(\x27content\x27)\x20||\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20metaTags[i].getAttribute(\x27property\x27)\x20||\x20\x27\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(content\x20&&\x20content.includes(\x27/in/\x27))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20var\x20match\x20=\x20content.match(/https?:\x5c/\x5c/[^\x5c/]+\x5c/in\x5c/([^\x5c/\x5c?]+)/);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(match)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20\x27https://www.linkedin.com/in/\x27\x20+\x20match[1];\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20return\x20null;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20/**\x0a\x20\x20\x20\x20\x20*\x20Method\x204:\x20Check\x20scripts\x20for\x20embedded\x20URLs\x0a\x20\x20\x20\x20\x20*/\x0a\x20\x20\x20\x20function\x20extractFromScripts()\x20{\x0a\x20\x20\x20\x20\x20\x20var\x20scripts\x20=\x20document.querySelectorAll(\x27script\x27);\x0a\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20for\x20(var\x20i\x20=\x200;\x20i\x20<\x20scripts.length;\x20i++)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20var\x20scriptText\x20=\x20scripts[i].textContent\x20||\x20\x27\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20var\x20match\x20=\x20scriptText.match(/https?:\x5c/\x5c/[^\x5c/]+\x5c/in\x5c/([^\x5c/\x5c?\x22\x27]+)/);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(match\x20&&\x20!match[0].includes(\x27/me\x27))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20\x27https://www.linkedin.com/in/\x27\x20+\x20match[1];\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20return\x20null;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20/**\x0a\x20\x20\x20\x20\x20*\x20Method\x205:\x20Check\x20data\x20attributes\x0a\x20\x20\x20\x20\x20*/\x0a\x20\x20\x20\x20function\x20extractFromDataAttributes()\x20{\x0a\x20\x20\x20\x20\x20\x20var\x20dataElems\x20=\x20document.querySelectorAll(\x27[data-profile-url],\x20[data-entity-urn]\x27);\x0a\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20for\x20(var\x20i\x20=\x200;\x20i\x20<\x20dataElems.length;\x20i++)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20var\x20dataUrl\x20=\x20dataElems[i].getAttribute(\x27data-profile-url\x27)\x20||\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20dataElems[i].getAttribute(\x27href\x27)\x20||\x20\x27\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(dataUrl\x20&&\x20dataUrl.includes(\x27/in/\x27))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20var\x20match\x20=\x20dataUrl.match(/https?:\x5c/\x5c/[^\x5c/]+\x5c/in\x5c/([^\x5c/\x5c?]+)/);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(match)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20\x27https://www.linkedin.com/in/\x27\x20+\x20match[1];\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20return\x20null;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20//\x20========================================\x0a\x20\x20\x20\x20//\x20EXECUTE\x20EXTRACTION\x0a\x20\x20\x20\x20//\x20========================================\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20console.log(\x27🔍\x20Starting\x20LinkedIn\x20profile\x20URL\x20extraction...\x27);\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20//\x20Try\x20all\x205\x20methods\x20in\x20order\x0a\x20\x20\x20\x20var\x20profileUrl\x20=\x20extractFromCurrentUrl()\x20||\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20extractFromLinks()\x20||\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20extractFromMetaTags()\x20||\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20extractFromScripts()\x20||\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20extractFromDataAttributes();\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20if\x20(profileUrl)\x20{\x0a\x20\x20\x20\x20\x20\x20console.log(\x27✅\x20Profile\x20URL\x20extracted:\x27,\x20profileUrl);\x0a\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20//\x20Send\x20success\x20to\x20React\x20Native\x0a\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20status:\x20\x27success\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20profileUrl:\x20profileUrl\x0a\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20console.warn(\x27⚠️\x20Could\x20not\x20find\x20LinkedIn\x20profile\x20URL\x27);\x0a\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20//\x20Send\x20error\x20to\x20React\x20Native\x0a\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20status:\x20\x27error\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Could\x20not\x20find\x20LinkedIn\x20profile\x20URL.\x20Please\x20navigate\x20to\x20your\x20profile\x20page.\x27\x0a\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x0a\x20\x20}\x20catch\x20(error)\x20{\x0a\x20\x20\x20\x20console.error(\x27❌\x20Error\x20extracting\x20profile\x20URL:\x27,\x20error);\x0a\x20\x20\x20\x20\x0a\x20\x20\x20\x20//\x20Send\x20error\x20to\x20React\x20Native\x0a\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20status:\x20\x27error\x27,\x0a\x20\x20\x20\x20\x20\x20message:\x20\x27JavaScript\x20error:\x20\x27\x20+\x20(error.message\x20||\x20String(error))\x0a\x20\x20\x20\x20}));\x0a\x20\x20}\x0a})();\x0atrue;\x20//\x20Required\x20for\x20iOS\x20compatibility\x0a','\x0a(function()\x20{\x0a\x20\x20try\x20{\x0a\x20\x20\x20\x20//\x20Try\x20clicking\x20the\x20\x22Me\x22\x20menu\x20item\x20or\x20profile\x20link\x0a\x20\x20\x20\x20var\x20meLink\x20=\x20document.querySelector(\x27a[href*=\x22/me\x22]\x27)\x20||\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20document.querySelector(\x27a[href*=\x22/in/\x22][href*=\x22profile\x22]\x27)\x20||\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20document.querySelector(\x27[data-control-name=\x22identity_welcome_message\x22]\x27)\x20||\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20document.querySelector(\x27a[aria-label*=\x22Profile\x22]\x27)\x20||\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20document.querySelector(\x27a[aria-label*=\x22Me\x22]\x27);\x0a\x20\x20\x20\x20if\x20(meLink)\x20{\x0a\x20\x20\x20\x20\x20\x20console.log(\x27[LINKEDIN]\x20Found\x20profile\x20link,\x20clicking...\x27);\x0a\x20\x20\x20\x20\x20\x20meLink.click();\x0a\x20\x20\x20\x20\x20\x20return\x20true;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20//\x20Fallback:\x20navigate\x20directly\x0a\x20\x20\x20\x20console.log(\x27[LINKEDIN]\x20No\x20profile\x20link\x20found,\x20navigating\x20directly\x20to\x20/me\x27);\x0a\x20\x20\x20\x20window.location.href\x20=\x20\x27https://www.linkedin.com/me\x27;\x0a\x20\x20\x20\x20return\x20false;\x0a\x20\x20}\x20catch\x20(e)\x20{\x0a\x20\x20\x20\x20console.error(\x27[LINKEDIN]\x20Navigation\x20error:\x27,\x20e);\x0a\x20\x20\x20\x20window.location.href\x20=\x20\x27https://www.linkedin.com/me\x27;\x0a\x20\x20\x20\x20return\x20false;\x0a\x20\x20}\x0a})();\x0atrue;\x0a','\x0a(function()\x20{\x0a\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20existing\x20=\x20document.getElementById(\x27onairos-linkedin-consent-overlay\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(existing)\x20existing.remove();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20overlay\x20=\x20document.createElement(\x27div\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20overlay.id\x20=\x20\x27onairos-linkedin-consent-overlay\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20overlay.style.cssText\x20=\x20`\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20position:\x20fixed;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20top:\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20left:\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20width:\x20100%;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20height:\x20100%;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20rgba(0,\x200,\x200,\x200.7);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20z-index:\x20999999;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20justify-content:\x20center;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-family:\x20-apple-system,\x20BlinkMacSystemFont,\x20\x27Segoe\x20UI\x27,\x20Roboto,\x20sans-serif;\x0a\x20\x20\x20\x20\x20\x20\x20\x20`;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20popup\x20=\x20document.createElement(\x27div\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20popup.style.cssText\x20=\x20`\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20white;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x2016px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x2032px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20max-width:\x20400px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20width:\x2090%;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20box-shadow:\x200\x2020px\x2060px\x20rgba(0,\x200,\x200,\x200.3);\x0a\x20\x20\x20\x20\x20\x20\x20\x20`;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20popup.innerHTML\x20=\x20`\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22text-align:\x20center;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:\x2048px;\x20margin-bottom:\x2016px;\x22>💼</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<h2\x20style=\x22margin:\x200\x200\x2012px\x200;\x20font-size:\x2024px;\x20color:\x20#1a1a1a;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Import\x20LinkedIn\x20Profile?\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</h2>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<p\x20style=\x22margin:\x200\x200\x2024px\x200;\x20color:\x20#666;\x20font-size:\x2016px;\x20line-height:\x201.5;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Allow\x20Onairos\x20to\x20import\x20your\x20LinkedIn\x20profile\x20data\x20including\x20bio,\x20work\x20history,\x20education,\x20and\x20skills?\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</p>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:\x20flex;\x20gap:\x2012px;\x20justify-content:\x20center;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20id=\x22onairos-linkedin-deny\x22\x20style=\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20flex:\x201;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x2014px\x2024px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x202px\x20solid\x20#e0e0e0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20white;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20#666;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x208px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2016px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-weight:\x20600;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22>Deny</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20id=\x22onairos-linkedin-allow\x22\x20style=\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20flex:\x201;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x2014px\x2024px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x20none;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20#0077B5;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20white;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x208px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2016px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-weight:\x20600;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22>Allow</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a`;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20overlay.appendChild(popup);\x0a\x20\x20\x20\x20\x20\x20\x20\x20document.body.appendChild(overlay);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20document.getElementById(\x27onairos-linkedin-deny\x27).onclick\x20=\x20()\x20=>\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20overlay.remove();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27LINKEDIN_PROFILE_CONSENT\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20status:\x20\x27denied\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20\x20\x20\x20\x20};\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20document.getElementById(\x27onairos-linkedin-allow\x27).onclick\x20=\x20()\x20=>\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20document.getElementById(\x27onairos-linkedin-allow\x27).innerHTML\x20=\x20\x27⏳\x20Extracting...\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20document.getElementById(\x27onairos-linkedin-allow\x27).disabled\x20=\x20true;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27LINKEDIN_PROFILE_CONSENT\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20status:\x20\x27allowed\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20setTimeout(()\x20=>\x20overlay.remove(),\x20500);\x0a\x20\x20\x20\x20\x20\x20\x20\x20};\x0a\x20\x20\x20\x20}\x20catch\x20(error)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27LINKEDIN_PROFILE_CONSENT\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20status:\x20\x27error\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20error.message\x0a\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20}\x0a})();\x0atrue;\x0a','\x0a(function()\x20{\x0a\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27🔍\x20[LINKEDIN]\x20Starting\x20profile\x20DOM\x20extraction...\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27LINKEDIN_PROFILE_PROGRESS\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20stage:\x20\x27starting\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20progress:\x205,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Starting\x20profile\x20extraction...\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20========================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20HELPER\x20FUNCTIONS\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20========================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20function\x20getTextContent(selector,\x20parent\x20=\x20document)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20el\x20=\x20parent.querySelector(selector);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20el\x20?\x20el.textContent.trim()\x20:\x20\x27\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20function\x20getAllTextContent(selector,\x20parent\x20=\x20document)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20elements\x20=\x20parent.querySelectorAll(selector);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20Array.from(elements).map(el\x20=>\x20el.textContent.trim()).filter(t\x20=>\x20t);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20function\x20cleanText(text)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(!text)\x20return\x20\x27\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20text.replace(/\x5cs+/g,\x20\x27\x20\x27).trim();\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20========================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20EXTRACT\x20BASIC\x20INFO\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20========================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27LINKEDIN_PROFILE_PROGRESS\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20stage:\x20\x27basic_info\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20progress:\x2010,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Extracting\x20basic\x20info...\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Name\x20-\x20try\x20multiple\x20selectors\x0a\x20\x20\x20\x20\x20\x20\x20\x20let\x20fullName\x20=\x20\x27\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20nameSelectors\x20=\x20[\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27h1\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27.text-heading-xlarge\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27[data-anonymize=\x22person-name\x22]\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27.pv-text-details__left-panel\x20h1\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27.profile-topcard-person-entity__name\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20];\x0a\x20\x20\x20\x20\x20\x20\x20\x20for\x20(const\x20sel\x20of\x20nameSelectors)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20name\x20=\x20getTextContent(sel);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(name\x20&&\x20name.length\x20>\x201\x20&&\x20name.length\x20<\x20100)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20fullName\x20=\x20cleanText(name);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20break;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27📛\x20[LINKEDIN]\x20Name:\x27,\x20fullName);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Headline\x20-\x20try\x20multiple\x20selectors\x0a\x20\x20\x20\x20\x20\x20\x20\x20let\x20headline\x20=\x20\x27\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20headlineSelectors\x20=\x20[\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27.text-body-medium.break-words\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27[data-anonymize=\x22headline\x22]\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27.pv-text-details__left-panel\x20.text-body-medium\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27.profile-topcard__summary-position-title\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20];\x0a\x20\x20\x20\x20\x20\x20\x20\x20for\x20(const\x20sel\x20of\x20headlineSelectors)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20h\x20=\x20getTextContent(sel);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(h\x20&&\x20h.length\x20>\x203)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20headline\x20=\x20cleanText(h);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20break;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27📋\x20[LINKEDIN]\x20Headline:\x27,\x20headline);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Location\x0a\x20\x20\x20\x20\x20\x20\x20\x20let\x20location\x20=\x20\x27\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20locationSelectors\x20=\x20[\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27.text-body-small.inline.t-black--light.break-words\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27.pv-text-details__left-panel\x20.text-body-small\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27[data-anonymize=\x22location\x22]\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27.profile-topcard__location-data\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20];\x0a\x20\x20\x20\x20\x20\x20\x20\x20for\x20(const\x20sel\x20of\x20locationSelectors)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20loc\x20=\x20getTextContent(sel);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(loc\x20&&\x20loc.length\x20>\x202\x20&&\x20!loc.includes(\x27connections\x27)\x20&&\x20!loc.includes(\x27followers\x27))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20location\x20=\x20cleanText(loc);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20break;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27📍\x20[LINKEDIN]\x20Location:\x27,\x20location);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Profile\x20URL\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20profileUrl\x20=\x20window.location.href.split(\x27?\x27)[0];\x0a\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27🔗\x20[LINKEDIN]\x20Profile\x20URL:\x27,\x20profileUrl);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20========================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20EXTRACT\x20ABOUT\x20SECTION\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20========================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27LINKEDIN_PROFILE_PROGRESS\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20stage:\x20\x27about\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20progress:\x2025,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Extracting\x20about\x20section...\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20let\x20about\x20=\x20\x27\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Try\x20to\x20find\x20About\x20section\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20aboutSection\x20=\x20document.querySelector(\x27#about\x27)\x20||\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20document.querySelector(\x27[id*=\x22about\x22]\x27)\x20||\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20document.querySelector(\x27section:has(>\x20div\x20>\x20div\x20>\x20span:contains(\x22About\x22))\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(aboutSection)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Look\x20for\x20the\x20about\x20text\x20within\x20the\x20section\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20aboutTextSelectors\x20=\x20[\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27.display-flex.ph5.pv3\x20span[aria-hidden=\x22true\x22]\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27.pv-shared-text-with-see-more\x20span\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27.inline-show-more-text\x20span\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27span[aria-hidden=\x22true\x22]\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x27.full-width\x20span\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20];\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20for\x20(const\x20sel\x20of\x20aboutTextSelectors)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20texts\x20=\x20aboutSection.querySelectorAll(sel);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(texts.length\x20>\x200)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20about\x20=\x20cleanText(Array.from(texts).map(t\x20=>\x20t.textContent).join(\x27\x20\x27));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(about.length\x20>\x2020)\x20break;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Alternative:\x20look\x20for\x20about\x20text\x20near\x20\x22About\x22\x20heading\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(!about)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20allSpans\x20=\x20document.querySelectorAll(\x27span\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20let\x20foundAboutHeading\x20=\x20false;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20for\x20(const\x20span\x20of\x20allSpans)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(span.textContent.trim()\x20===\x20\x27About\x27)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20foundAboutHeading\x20=\x20true;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20continue;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(foundAboutHeading\x20&&\x20span.textContent.length\x20>\x2050)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20about\x20=\x20cleanText(span.textContent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20break;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27📝\x20[LINKEDIN]\x20About\x20(preview):\x27,\x20about.substring(0,\x20100)\x20+\x20\x27...\x27);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20========================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20EXTRACT\x20EXPERIENCE\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20========================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27LINKEDIN_PROFILE_PROGRESS\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20stage:\x20\x27experience\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20progress:\x2040,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Extracting\x20work\x20experience...\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20experience\x20=\x20[];\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Find\x20experience\x20section\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20expSection\x20=\x20document.querySelector(\x27#experience\x27)\x20||\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20document.querySelector(\x27[id*=\x22experience\x22]\x27)\x20||\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20document.querySelector(\x27section.experience-section\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(expSection)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Look\x20for\x20experience\x20entries\x20-\x20LinkedIn\x20uses\x20list\x20items\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20expItems\x20=\x20expSection.querySelectorAll(\x27li.artdeco-list__item,\x20li[class*=\x22experience-item\x22],\x20ul\x20>\x20li\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20for\x20(const\x20item\x20of\x20expItems)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20entry\x20=\x20{};\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Title\x20-\x20usually\x20the\x20first/main\x20heading\x20in\x20the\x20item\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20titleEl\x20=\x20item.querySelector(\x27.t-bold\x20span,\x20.mr1.t-bold\x20span,\x20[data-anonymize=\x22job-title\x22]\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(titleEl)\x20entry.title\x20=\x20cleanText(titleEl.textContent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Company\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20companyEl\x20=\x20item.querySelector(\x27.t-normal\x20span,\x20.t-14.t-normal\x20span,\x20[data-anonymize=\x22company-name\x22]\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(companyEl)\x20entry.company\x20=\x20cleanText(companyEl.textContent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Duration/dates\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20dateEl\x20=\x20item.querySelector(\x27.t-black--light\x20span,\x20.pvs-entity__caption-wrapper\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(dateEl)\x20entry.duration\x20=\x20cleanText(dateEl.textContent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Description\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20descEl\x20=\x20item.querySelector(\x27.display-flex.align-items-center\x20span[aria-hidden=\x22true\x22],\x20.inline-show-more-text\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(descEl)\x20entry.description\x20=\x20cleanText(descEl.textContent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Location\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20locEl\x20=\x20item.querySelector(\x27.t-black--light.t-normal\x20span:last-child\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(locEl)\x20entry.location\x20=\x20cleanText(locEl.textContent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(entry.title\x20||\x20entry.company)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20experience.push(entry);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27💼\x20[LINKEDIN]\x20Experience\x20entries:\x27,\x20experience.length);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20========================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20EXTRACT\x20EDUCATION\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20========================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27LINKEDIN_PROFILE_PROGRESS\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20stage:\x20\x27education\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20progress:\x2060,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Extracting\x20education...\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20education\x20=\x20[];\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Find\x20education\x20section\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20eduSection\x20=\x20document.querySelector(\x27#education\x27)\x20||\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20document.querySelector(\x27[id*=\x22education\x22]\x27)\x20||\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20document.querySelector(\x27section.education-section\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(eduSection)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20eduItems\x20=\x20eduSection.querySelectorAll(\x27li.artdeco-list__item,\x20li[class*=\x22education-item\x22],\x20ul\x20>\x20li\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20for\x20(const\x20item\x20of\x20eduItems)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20entry\x20=\x20{};\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20School\x20name\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20schoolEl\x20=\x20item.querySelector(\x27.t-bold\x20span,\x20.mr1.t-bold\x20span,\x20[data-anonymize=\x22school-name\x22]\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(schoolEl)\x20entry.school\x20=\x20cleanText(schoolEl.textContent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Degree\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20degreeEl\x20=\x20item.querySelector(\x27.t-normal\x20span,\x20.t-14.t-normal\x20span\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(degreeEl)\x20entry.degree\x20=\x20cleanText(degreeEl.textContent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Field\x20of\x20study\x20(sometimes\x20combined\x20with\x20degree)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20fieldEl\x20=\x20item.querySelector(\x27.pv-entity__comma-item\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(fieldEl)\x20entry.fieldOfStudy\x20=\x20cleanText(fieldEl.textContent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Years\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20yearsEl\x20=\x20item.querySelector(\x27.t-black--light\x20span,\x20.pvs-entity__caption-wrapper\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(yearsEl)\x20entry.years\x20=\x20cleanText(yearsEl.textContent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(entry.school)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20education.push(entry);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27🎓\x20[LINKEDIN]\x20Education\x20entries:\x27,\x20education.length);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20========================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20EXTRACT\x20SKILLS\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20========================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27LINKEDIN_PROFILE_PROGRESS\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20stage:\x20\x27skills\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20progress:\x2080,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Extracting\x20skills...\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20skills\x20=\x20[];\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Find\x20skills\x20section\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20skillsSection\x20=\x20document.querySelector(\x27#skills\x27)\x20||\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20document.querySelector(\x27[id*=\x22skills\x22]\x27)\x20||\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20document.querySelector(\x27section.skills-section\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(skillsSection)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20skillItems\x20=\x20skillsSection.querySelectorAll(\x27.t-bold\x20span,\x20[data-anonymize=\x22skill-name\x22],\x20.pv-skill-category-entity__name-text\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20for\x20(const\x20item\x20of\x20skillItems)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20skill\x20=\x20cleanText(item.textContent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(skill\x20&&\x20skill.length\x20>\x201\x20&&\x20skill.length\x20<\x20100\x20&&\x20!skills.includes(skill))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20skills.push(skill);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Also\x20check\x20for\x20skills\x20in\x20\x22Top\x20skills\x22\x20section\x20on\x20profile\x20card\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20topSkillsSection\x20=\x20document.querySelector(\x27.pv-skill-category-list\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(topSkillsSection)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20topSkillItems\x20=\x20topSkillsSection.querySelectorAll(\x27span\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20for\x20(const\x20item\x20of\x20topSkillItems)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20skill\x20=\x20cleanText(item.textContent);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(skill\x20&&\x20skill.length\x20>\x201\x20&&\x20skill.length\x20<\x20100\x20&&\x20!skills.includes(skill))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20skills.push(skill);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27🛠️\x20[LINKEDIN]\x20Skills:\x27,\x20skills.length);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20========================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20EXTRACT\x20ADDITIONAL\x20INFO\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20========================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Connections\x20count\x0a\x20\x20\x20\x20\x20\x20\x20\x20let\x20connections\x20=\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20connectionsEl\x20=\x20document.querySelector(\x27.t-bold:has(+\x20span:contains(\x22connections\x22)),\x20.pv-top-card--list-bullet\x20span\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(connectionsEl)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20connText\x20=\x20connectionsEl.textContent;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20connMatch\x20=\x20connText.match(/([\x5cd,]+)\x5c+?\x5cs*connections?/i);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(connMatch)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20connections\x20=\x20parseInt(connMatch[1].replace(/,/g,\x20\x27\x27));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20Profile\x20picture\x20URL\x0a\x20\x20\x20\x20\x20\x20\x20\x20let\x20profilePicture\x20=\x20\x27\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20imgEl\x20=\x20document.querySelector(\x27.pv-top-card-profile-picture__image,\x20.profile-photo-edit__preview,\x20img[data-anonymize=\x22headshot-photo\x22]\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(imgEl\x20&&\x20imgEl.src)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20profilePicture\x20=\x20imgEl.src;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20========================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20BUILD\x20RESULT\x20OBJECT\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20========================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27LINKEDIN_PROFILE_PROGRESS\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20stage:\x20\x27finalizing\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20progress:\x2095,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Finalizing\x20extraction...\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20profileData\x20=\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Basic\x20Info\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20fullName:\x20fullName,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20headline:\x20headline,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20location:\x20location,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20about:\x20about,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20profileUrl:\x20profileUrl,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Profile\x20Details\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20profilePicture:\x20profilePicture,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Professional\x20Info\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20experience:\x20experience,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20education:\x20education,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20skills:\x20skills,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Additional\x20Info\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20connections:\x20connections,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Metadata\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20scrapedAt:\x20new\x20Date().toISOString(),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20extractionMethod:\x20\x27dom_scraper\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20};\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27✅\x20[LINKEDIN]\x20Profile\x20extraction\x20complete!\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27📊\x20[LINKEDIN]\x20Summary:\x27,\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20name:\x20fullName,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20headline:\x20headline.substring(0,\x2050),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20experienceCount:\x20experience.length,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20educationCount:\x20education.length,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20skillsCount:\x20skills.length\x0a\x20\x20\x20\x20\x20\x20\x20\x20});\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20========================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20SEND\x20RESULT\x20TO\x20REACT\x20NATIVE\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20========================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27LINKEDIN_PROFILE_EXPORT_COMPLETE\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20status:\x20\x27success\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20data:\x20profileData,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20success:\x20true\x0a\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x0a\x20\x20\x20\x20}\x20catch\x20(error)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20console.error(\x27❌\x20[LINKEDIN]\x20Profile\x20extraction\x20error:\x27,\x20error);\x0a\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27LINKEDIN_PROFILE_EXPORT_ERROR\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20status:\x20\x27error\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Extraction\x20failed:\x20\x27\x20+\x20error.message,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20success:\x20false\x0a\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20}\x0a})();\x0atrue;\x0a','LINKEDIN_PROFILE_SUCCESS_SCRIPT','\x0a(function()\x20{\x0a\x20\x20\x20\x20console.log(\x27✅\x20LinkedIn\x20profile\x20export\x20successful!\x27);\x0a})();\x0atrue;\x0a'];_0x1fe4=function(){return _0x8a83ad;};return _0x1fe4();}const LINKEDIN_APP_BLOCKER_SCRIPT=exports['LINKEDIN_APP_BLOCKER_SCRIPT']=_0xc48e(0x5),LINKEDIN_PROFILE_EXTRACTOR_SCRIPT=exports['LINKEDIN_PROFILE_EXTRACTOR_SCRIPT']=_0xc48e(0x6),LINKEDIN_NAVIGATE_TO_PROFILE_SCRIPT=exports[_0xc48e(0x4)]=_0xc48e(0x7),LINKEDIN_PROFILE_CONSENT_POPUP_SCRIPT=exports[_0xc48e(0x3)]=_0xc48e(0x8),LINKEDIN_PROFILE_SCRAPER_SCRIPT=exports[_0xc48e(0x1)]=_0xc48e(0x9),LINKEDIN_PROFILE_SUCCESS_SCRIPT=exports[_0xc48e(0xa)]=_0xc48e(0xb),LINKEDIN_PROFILE_ERROR_SCRIPT=exports[_0xc48e(0x2)]='\x0a(function()\x20{\x0a\x20\x20\x20\x20console.log(\x27❌\x20LinkedIn\x20profile\x20export\x20failed!\x27);\x0a})();\x0atrue;\x0a';
@@ -1 +1 @@
1
- 'use strict';function _0x14af(_0x10b7f0,_0x14af70){_0x10b7f0=_0x10b7f0-0x0;const _0x4d10da=_0x10b7();let _0x2bfac7=_0x4d10da[_0x10b7f0];return _0x2bfac7;}Object[_0x14af(0x0)](exports,_0x14af(0x1),{'value':!![]}),exports[_0x14af(0x2)]=exports[_0x14af(0x3)]=exports[_0x14af(0x4)]=exports[_0x14af(0x5)]=void 0x0;const NETFLIX_CONSENT_POPUP_SCRIPT=exports['NETFLIX_CONSENT_POPUP_SCRIPT']=_0x14af(0x6),NETFLIX_EXPORT_SCRIPT=exports[_0x14af(0x3)]=_0x14af(0x7),NETFLIX_SUCCESS_SCRIPT=exports['NETFLIX_SUCCESS_SCRIPT']='\x0a(function()\x20{\x0a\x20\x20\x20\x20console.log(\x27✅\x20Netflix\x20export\x20successful!\x27);\x0a})();\x0atrue;\x0a',NETFLIX_ERROR_SCRIPT=exports[_0x14af(0x4)]='\x0a(function()\x20{\x0a\x20\x20\x20\x20console.log(\x27❌\x20Netflix\x20export\x20failed!\x27);\x0a})();\x0atrue;\x0a';function _0x10b7(){const _0x33fb6f=['defineProperty','__esModule','NETFLIX_SUCCESS_SCRIPT','NETFLIX_EXPORT_SCRIPT','NETFLIX_ERROR_SCRIPT','NETFLIX_CONSENT_POPUP_SCRIPT','\x0a(function()\x20{\x0a\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20existing\x20=\x20document.getElementById(\x27onairos-consent-overlay\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(existing)\x20existing.remove();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20overlay\x20=\x20document.createElement(\x27div\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20overlay.id\x20=\x20\x27onairos-consent-overlay\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20overlay.style.cssText\x20=\x20`\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20position:\x20fixed;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20top:\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20left:\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20width:\x20100%;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20height:\x20100%;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20rgba(0,\x200,\x200,\x200.85);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20z-index:\x20999999;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20justify-content:\x20center;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-family:\x20-apple-system,\x20BlinkMacSystemFont,\x20\x27Segoe\x20UI\x27,\x20Roboto,\x20sans-serif;\x0a\x20\x20\x20\x20\x20\x20\x20\x20`;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20popup\x20=\x20document.createElement(\x27div\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20popup.style.cssText\x20=\x20`\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20#141414;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x2016px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x2032px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20max-width:\x20400px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20width:\x2090%;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20box-shadow:\x200\x2020px\x2060px\x20rgba(0,\x200,\x200,\x200.5);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20#333;\x0a\x20\x20\x20\x20\x20\x20\x20\x20`;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20popup.innerHTML\x20=\x20`\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22text-align:\x20center;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:\x2048px;\x20margin-bottom:\x2016px;\x22>🎬</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<h2\x20style=\x22margin:\x200\x200\x2012px\x200;\x20font-size:\x2024px;\x20color:\x20#FFFFFF;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Export\x20Netflix\x20Data?\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</h2>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<p\x20style=\x22margin:\x200\x200\x2024px\x200;\x20color:\x20#999;\x20font-size:\x2016px;\x20line-height:\x201.5;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Allow\x20Onairos\x20to\x20export\x20your\x20Netflix\x20viewing\x20activity\x20(watch\x20history,\x20My\x20List,\x20ratings)\x20for\x20analysis?\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</p>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:\x20flex;\x20gap:\x2012px;\x20justify-content:\x20center;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20id=\x22onairos-deny\x22\x20style=\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20flex:\x201;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x2014px\x2024px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x202px\x20solid\x20#444;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20transparent;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20#999;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x208px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2016px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-weight:\x20600;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22>Deny</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20id=\x22onairos-allow\x22\x20style=\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20flex:\x201;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x2014px\x2024px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x20none;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20linear-gradient(135deg,\x20#E50914\x200%,\x20#B20710\x20100%);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20white;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x208px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2016px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-weight:\x20600;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22>Allow</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20`;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20overlay.appendChild(popup);\x0a\x20\x20\x20\x20\x20\x20\x20\x20document.body.appendChild(overlay);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20document.getElementById(\x27onairos-deny\x27).onclick\x20=\x20()\x20=>\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20overlay.remove();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27NETFLIX_CONSENT\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20status:\x20\x27denied\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20\x20\x20\x20\x20};\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20document.getElementById(\x27onairos-allow\x27).onclick\x20=\x20()\x20=>\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20document.getElementById(\x27onairos-allow\x27).innerHTML\x20=\x20\x27⏳\x20Starting...\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20document.getElementById(\x27onairos-allow\x27).disabled\x20=\x20true;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27NETFLIX_CONSENT\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20status:\x20\x27allowed\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20setTimeout(()\x20=>\x20overlay.remove(),\x20500);\x0a\x20\x20\x20\x20\x20\x20\x20\x20};\x0a\x20\x20\x20\x20}\x20catch\x20(error)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27NETFLIX_CONSENT\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20status:\x20\x27error\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20error.message\x0a\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20}\x0a})();\x0atrue;\x0a','\x0a(function()\x20{\x0a\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27🔄\x20[NETFLIX]\x20Script\x20version:\x20SDK_V1_PLACEHOLDER\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27DEBUG_LOG\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Netflix\x20Script\x20version:\x20SDK_V1_PLACEHOLDER\x20loaded\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(!document.body)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27NETFLIX_EXPORT_ERROR\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Page\x20not\x20ready\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20============================================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20NETFLIX\x20API\x20CONFIGURATION\x20-\x20PLACEHOLDER\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20TODO:\x20Fill\x20in\x20actual\x20Netflix\x20API\x20details\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20============================================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20NETFLIX_CONFIG\x20=\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20baseUrl:\x20\x27https://www.netflix.com\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20TODO:\x20Add\x20actual\x20API\x20endpoints\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20endpoints:\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20viewingHistory:\x20\x27/api/viewing-history\x27,\x20//\x20PLACEHOLDER\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20myList:\x20\x27/api/my-list\x27,\x20//\x20PLACEHOLDER\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ratings:\x20\x27/api/ratings\x27,\x20//\x20PLACEHOLDER\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20profile:\x20\x27/api/profile\x27,\x20//\x20PLACEHOLDER\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20},\x0a\x20\x20\x20\x20\x20\x20\x20\x20};\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20============================================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20TOKEN\x20EXTRACTION\x20-\x20PLACEHOLDER\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20TODO:\x20Implement\x20actual\x20Netflix\x20token\x20extraction\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20============================================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20function\x20getNetflixToken()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20TODO:\x20Implement\x20token\x20extraction\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Potential\x20locations:\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20-\x20localStorage\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20-\x20sessionStorage\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20-\x20cookies\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20-\x20window.__NETFLIX_STATE__\x20or\x20similar\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27[NETFLIX]\x20Looking\x20for\x20authentication\x20token...\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Try\x20common\x20patterns\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20var\x20tokenKeys\x20=\x20[\x27netflix-token\x27,\x20\x27netflixToken\x27,\x20\x27accessToken\x27];\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20for\x20(var\x20i\x20=\x200;\x20i\x20<\x20tokenKeys.length;\x20i++)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20var\x20token\x20=\x20localStorage.getItem(tokenKeys[i]);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(token)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20var\x20parsed\x20=\x20JSON.parse(token);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(parsed\x20&&\x20parsed.data)\x20return\x20{\x20token:\x20parsed.data,\x20expiry:\x20parsed.expiry\x20};\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x20catch\x20(e)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20{\x20token:\x20token,\x20expiry:\x20null\x20};\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Try\x20cookies\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20var\x20cookieMatch\x20=\x20document.cookie.match(/NetflixId=([^;]+)/);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(cookieMatch)\x20return\x20{\x20token:\x20cookieMatch[1],\x20expiry:\x20null\x20};\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20{\x20token:\x20null,\x20expiry:\x20null\x20};\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20============================================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20PROFILE\x20ID\x20EXTRACTION\x20-\x20PLACEHOLDER\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20TODO:\x20Implement\x20actual\x20profile\x20ID\x20extraction\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20============================================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20function\x20getProfileId(tokenData)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20TODO:\x20Implement\x20profile\x20ID\x20extraction\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Check\x20URL,\x20localStorage,\x20cookies,\x20etc.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Try\x20URL\x20pattern\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20var\x20urlMatch\x20=\x20window.location.href.match(/profile=([^&]+)/);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(urlMatch)\x20return\x20urlMatch[1];\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Try\x20localStorage\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20var\x20profileId\x20=\x20localStorage.getItem(\x27profileId\x27)\x20||\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20localStorage.getItem(\x27netflixProfileId\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(profileId)\x20return\x20profileId;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20null;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27🚀\x20[NETFLIX]\x20Starting\x20extraction...\x27);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20(async\x20()\x20=>\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20STEP\x201:\x20Get\x20authentication\x20data\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27NETFLIX_EXPORT_PROGRESS\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20stage:\x20\x27fetching_auth\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20progress:\x202,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Getting\x20authentication...\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27[NETFLIX]\x20Getting\x20auth\x20data...\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20tokenData\x20=\x20getNetflixToken();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20profileId\x20=\x20getProfileId(tokenData);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27[NETFLIX]\x20Auth:\x27,\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20hasToken:\x20!!tokenData.token,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20profileId:\x20profileId\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20});\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20TODO:\x20For\x20now,\x20proceed\x20without\x20token\x20requirement\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Once\x20APIs\x20are\x20known,\x20add\x20proper\x20authentication\x20check\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Initialize\x20data\x20containers\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20let\x20viewingHistory\x20=\x20{\x20items:\x20[],\x20totalCount:\x200\x20};\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20let\x20myList\x20=\x20[];\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20let\x20ratings\x20=\x20[];\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20let\x20profile\x20=\x20null;\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20STEP\x202:\x20Fetch\x20viewing\x20history\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27NETFLIX_EXPORT_PROGRESS\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20stage:\x20\x27fetching_history\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20progress:\x2020,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Fetching\x20viewing\x20history...\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27[NETFLIX]\x20TODO:\x20Implement\x20viewing\x20history\x20fetch\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20TODO:\x20Implement\x20actual\x20API\x20call\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20const\x20historyResponse\x20=\x20await\x20fetch(NETFLIX_CONFIG.endpoints.viewingHistory,\x20...);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20STEP\x203:\x20Fetch\x20My\x20List\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27NETFLIX_EXPORT_PROGRESS\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20stage:\x20\x27fetching_mylist\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20progress:\x2040,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Fetching\x20My\x20List...\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27[NETFLIX]\x20TODO:\x20Implement\x20My\x20List\x20fetch\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20TODO:\x20Implement\x20actual\x20API\x20call\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20STEP\x204:\x20Fetch\x20ratings\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27NETFLIX_EXPORT_PROGRESS\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20stage:\x20\x27fetching_ratings\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20progress:\x2060,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Fetching\x20ratings...\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27[NETFLIX]\x20TODO:\x20Implement\x20ratings\x20fetch\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20TODO:\x20Implement\x20actual\x20API\x20call\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20STEP\x205:\x20Fetch\x20profile\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27NETFLIX_EXPORT_PROGRESS\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20stage:\x20\x27fetching_profile\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20progress:\x2080,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Fetching\x20profile...\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27[NETFLIX]\x20TODO:\x20Implement\x20profile\x20fetch\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20TODO:\x20Implement\x20actual\x20API\x20call\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20STEP\x206:\x20Send\x20results\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27NETFLIX_EXPORT_PROGRESS\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20stage:\x20\x27complete\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20progress:\x2095,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Finalizing...\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27✅\x20[NETFLIX]\x20Extraction\x20complete:\x27,\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20viewingHistory:\x20viewingHistory.items.length,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20myList:\x20myList.length,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ratings:\x20ratings.length,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20hasProfile:\x20!!profile\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20});\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27NETFLIX_EXPORT_COMPLETE\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20status:\x20\x27success\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20data:\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20viewingHistory:\x20viewingHistory,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20myList:\x20myList,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ratings:\x20ratings,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20profile:\x20profile,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20summary:\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20totalViewingHistoryItems:\x20viewingHistory.items.length,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20totalMyListItems:\x20myList.length,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20totalRatings:\x20ratings.length,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20thumbsUpCount:\x20ratings.filter(r\x20=>\x20r.rating\x20===\x20\x27thumbs_up\x27).length,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20thumbsDownCount:\x20ratings.filter(r\x20=>\x20r.rating\x20===\x20\x27thumbs_down\x27).length,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20profileName:\x20profile?.profileName\x20||\x20\x27unknown\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20},\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20tokenExpiry:\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20expiry:\x20tokenData.expiry,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20isExpired:\x20false,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20},\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20profileId:\x20profileId,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20},\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20success:\x20true\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x20catch\x20(error)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.error(\x27❌\x20[NETFLIX]\x20Export\x20failed:\x27,\x20error.message);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27NETFLIX_EXPORT_ERROR\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20status:\x20\x27error\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Fetch\x20failed:\x20\x27\x20+\x20error.message,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20success:\x20false\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20})();\x0a\x0a\x20\x20\x20\x20}\x20catch\x20(error)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20console.error(\x27❌\x20[NETFLIX]\x20Init\x20error:\x27,\x20error.message);\x0a\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27NETFLIX_EXPORT_ERROR\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20status:\x20\x27error\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Script\x20error:\x20\x27\x20+\x20error.message,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20success:\x20false\x0a\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20}\x0a})();\x0atrue;\x0a'];_0x10b7=function(){return _0x33fb6f;};return _0x10b7();}
1
+ 'use strict';function _0x1215(_0xf08b95,_0x12157a){_0xf08b95=_0xf08b95-0x0;const _0xc7e2f9=_0xf08b();let _0x4b96dd=_0xc7e2f9[_0xf08b95];return _0x4b96dd;}Object[_0x1215(0x0)](exports,_0x1215(0x1),{'value':!![]}),exports[_0x1215(0x2)]=exports[_0x1215(0x3)]=exports['NETFLIX_ERROR_SCRIPT']=exports['NETFLIX_CONSENT_POPUP_SCRIPT']=void 0x0;function _0xf08b(){const _0x51e637=['defineProperty','__esModule','NETFLIX_SUCCESS_SCRIPT','NETFLIX_EXPORT_SCRIPT','NETFLIX_CONSENT_POPUP_SCRIPT','\x0a(function()\x20{\x0a\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20existing\x20=\x20document.getElementById(\x27onairos-consent-overlay\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(existing)\x20existing.remove();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20overlay\x20=\x20document.createElement(\x27div\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20overlay.id\x20=\x20\x27onairos-consent-overlay\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20overlay.style.cssText\x20=\x20`\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20position:\x20fixed;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20top:\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20left:\x200;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20width:\x20100%;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20height:\x20100%;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20rgba(0,\x200,\x200,\x200.85);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20z-index:\x20999999;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20display:\x20flex;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20align-items:\x20center;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20justify-content:\x20center;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-family:\x20-apple-system,\x20BlinkMacSystemFont,\x20\x27Segoe\x20UI\x27,\x20Roboto,\x20sans-serif;\x0a\x20\x20\x20\x20\x20\x20\x20\x20`;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20popup\x20=\x20document.createElement(\x27div\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20popup.style.cssText\x20=\x20`\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20#141414;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x2016px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x2032px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20max-width:\x20400px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20width:\x2090%;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20box-shadow:\x200\x2020px\x2060px\x20rgba(0,\x200,\x200,\x200.5);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x201px\x20solid\x20#333;\x0a\x20\x20\x20\x20\x20\x20\x20\x20`;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20popup.innerHTML\x20=\x20`\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22text-align:\x20center;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:\x2048px;\x20margin-bottom:\x2016px;\x22>🎬</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<h2\x20style=\x22margin:\x200\x200\x2012px\x200;\x20font-size:\x2024px;\x20color:\x20#FFFFFF;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Export\x20Netflix\x20Data?\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</h2>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<p\x20style=\x22margin:\x200\x200\x2024px\x200;\x20color:\x20#999;\x20font-size:\x2016px;\x20line-height:\x201.5;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20Allow\x20Onairos\x20to\x20export\x20your\x20Netflix\x20viewing\x20activity\x20(watch\x20history,\x20My\x20List,\x20ratings)\x20for\x20analysis?\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</p>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:\x20flex;\x20gap:\x2012px;\x20justify-content:\x20center;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20id=\x22onairos-deny\x22\x20style=\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20flex:\x201;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x2014px\x2024px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x202px\x20solid\x20#444;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20transparent;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20#999;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x208px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2016px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-weight:\x20600;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22>Deny</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<button\x20id=\x22onairos-allow\x22\x20style=\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20flex:\x201;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20padding:\x2014px\x2024px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border:\x20none;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20linear-gradient(135deg,\x20#E50914\x200%,\x20#B20710\x20100%);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20white;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20border-radius:\x208px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-size:\x2016px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-weight:\x20600;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20cursor:\x20pointer;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22>Allow</button>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20`;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20overlay.appendChild(popup);\x0a\x20\x20\x20\x20\x20\x20\x20\x20document.body.appendChild(overlay);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20document.getElementById(\x27onairos-deny\x27).onclick\x20=\x20()\x20=>\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20overlay.remove();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27NETFLIX_CONSENT\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20status:\x20\x27denied\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20\x20\x20\x20\x20};\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20document.getElementById(\x27onairos-allow\x27).onclick\x20=\x20()\x20=>\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20document.getElementById(\x27onairos-allow\x27).innerHTML\x20=\x20\x27⏳\x20Starting...\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20document.getElementById(\x27onairos-allow\x27).disabled\x20=\x20true;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27NETFLIX_CONSENT\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20status:\x20\x27allowed\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20setTimeout(()\x20=>\x20overlay.remove(),\x20500);\x0a\x20\x20\x20\x20\x20\x20\x20\x20};\x0a\x20\x20\x20\x20}\x20catch\x20(error)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27NETFLIX_CONSENT\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20status:\x20\x27error\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20error.message\x0a\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20}\x0a})();\x0atrue;\x0a','\x0a(function()\x20{\x0a\x20\x20\x20\x20console.log(\x27✅\x20Netflix\x20export\x20successful!\x27);\x0a})();\x0atrue;\x0a','NETFLIX_ERROR_SCRIPT'];_0xf08b=function(){return _0x51e637;};return _0xf08b();}const NETFLIX_CONSENT_POPUP_SCRIPT=exports[_0x1215(0x4)]=_0x1215(0x5),NETFLIX_EXPORT_SCRIPT=exports['NETFLIX_EXPORT_SCRIPT']='\x0a(function()\x20{\x0a\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27🔄\x20[NETFLIX]\x20Script\x20version:\x20SDK_V1_PLACEHOLDER\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27DEBUG_LOG\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Netflix\x20Script\x20version:\x20SDK_V1_PLACEHOLDER\x20loaded\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(!document.body)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27NETFLIX_EXPORT_ERROR\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Page\x20not\x20ready\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20============================================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20NETFLIX\x20API\x20CONFIGURATION\x20-\x20PLACEHOLDER\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20TODO:\x20Fill\x20in\x20actual\x20Netflix\x20API\x20details\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20============================================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20const\x20NETFLIX_CONFIG\x20=\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20baseUrl:\x20\x27https://www.netflix.com\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20TODO:\x20Add\x20actual\x20API\x20endpoints\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20endpoints:\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20viewingHistory:\x20\x27/api/viewing-history\x27,\x20//\x20PLACEHOLDER\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20myList:\x20\x27/api/my-list\x27,\x20//\x20PLACEHOLDER\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ratings:\x20\x27/api/ratings\x27,\x20//\x20PLACEHOLDER\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20profile:\x20\x27/api/profile\x27,\x20//\x20PLACEHOLDER\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20},\x0a\x20\x20\x20\x20\x20\x20\x20\x20};\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20============================================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20TOKEN\x20EXTRACTION\x20-\x20PLACEHOLDER\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20TODO:\x20Implement\x20actual\x20Netflix\x20token\x20extraction\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20============================================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20function\x20getNetflixToken()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20TODO:\x20Implement\x20token\x20extraction\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Potential\x20locations:\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20-\x20localStorage\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20-\x20sessionStorage\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20-\x20cookies\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20-\x20window.__NETFLIX_STATE__\x20or\x20similar\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27[NETFLIX]\x20Looking\x20for\x20authentication\x20token...\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Try\x20common\x20patterns\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20var\x20tokenKeys\x20=\x20[\x27netflix-token\x27,\x20\x27netflixToken\x27,\x20\x27accessToken\x27];\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20for\x20(var\x20i\x20=\x200;\x20i\x20<\x20tokenKeys.length;\x20i++)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20var\x20token\x20=\x20localStorage.getItem(tokenKeys[i]);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(token)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20var\x20parsed\x20=\x20JSON.parse(token);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(parsed\x20&&\x20parsed.data)\x20return\x20{\x20token:\x20parsed.data,\x20expiry:\x20parsed.expiry\x20};\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x20catch\x20(e)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20{\x20token:\x20token,\x20expiry:\x20null\x20};\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Try\x20cookies\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20var\x20cookieMatch\x20=\x20document.cookie.match(/NetflixId=([^;]+)/);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(cookieMatch)\x20return\x20{\x20token:\x20cookieMatch[1],\x20expiry:\x20null\x20};\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20{\x20token:\x20null,\x20expiry:\x20null\x20};\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20============================================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20PROFILE\x20ID\x20EXTRACTION\x20-\x20PLACEHOLDER\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20TODO:\x20Implement\x20actual\x20profile\x20ID\x20extraction\x0a\x20\x20\x20\x20\x20\x20\x20\x20//\x20============================================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20function\x20getProfileId(tokenData)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20TODO:\x20Implement\x20profile\x20ID\x20extraction\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Check\x20URL,\x20localStorage,\x20cookies,\x20etc.\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Try\x20URL\x20pattern\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20var\x20urlMatch\x20=\x20window.location.href.match(/profile=([^&]+)/);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(urlMatch)\x20return\x20urlMatch[1];\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Try\x20localStorage\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20var\x20profileId\x20=\x20localStorage.getItem(\x27profileId\x27)\x20||\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20localStorage.getItem(\x27netflixProfileId\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(profileId)\x20return\x20profileId;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20return\x20null;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27🚀\x20[NETFLIX]\x20Starting\x20extraction...\x27);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20(async\x20()\x20=>\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20try\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20STEP\x201:\x20Get\x20authentication\x20data\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27NETFLIX_EXPORT_PROGRESS\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20stage:\x20\x27fetching_auth\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20progress:\x202,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Getting\x20authentication...\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27[NETFLIX]\x20Getting\x20auth\x20data...\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20tokenData\x20=\x20getNetflixToken();\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20profileId\x20=\x20getProfileId(tokenData);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27[NETFLIX]\x20Auth:\x27,\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20hasToken:\x20!!tokenData.token,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20profileId:\x20profileId\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20});\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20TODO:\x20For\x20now,\x20proceed\x20without\x20token\x20requirement\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Once\x20APIs\x20are\x20known,\x20add\x20proper\x20authentication\x20check\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20Initialize\x20data\x20containers\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20let\x20viewingHistory\x20=\x20{\x20items:\x20[],\x20totalCount:\x200\x20};\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20let\x20myList\x20=\x20[];\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20let\x20ratings\x20=\x20[];\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20let\x20profile\x20=\x20null;\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20STEP\x202:\x20Fetch\x20viewing\x20history\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27NETFLIX_EXPORT_PROGRESS\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20stage:\x20\x27fetching_history\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20progress:\x2020,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Fetching\x20viewing\x20history...\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27[NETFLIX]\x20TODO:\x20Implement\x20viewing\x20history\x20fetch\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20TODO:\x20Implement\x20actual\x20API\x20call\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20const\x20historyResponse\x20=\x20await\x20fetch(NETFLIX_CONFIG.endpoints.viewingHistory,\x20...);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20STEP\x203:\x20Fetch\x20My\x20List\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27NETFLIX_EXPORT_PROGRESS\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20stage:\x20\x27fetching_mylist\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20progress:\x2040,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Fetching\x20My\x20List...\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27[NETFLIX]\x20TODO:\x20Implement\x20My\x20List\x20fetch\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20TODO:\x20Implement\x20actual\x20API\x20call\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20STEP\x204:\x20Fetch\x20ratings\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27NETFLIX_EXPORT_PROGRESS\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20stage:\x20\x27fetching_ratings\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20progress:\x2060,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Fetching\x20ratings...\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27[NETFLIX]\x20TODO:\x20Implement\x20ratings\x20fetch\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20TODO:\x20Implement\x20actual\x20API\x20call\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20STEP\x205:\x20Fetch\x20profile\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27NETFLIX_EXPORT_PROGRESS\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20stage:\x20\x27fetching_profile\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20progress:\x2080,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Fetching\x20profile...\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27[NETFLIX]\x20TODO:\x20Implement\x20profile\x20fetch\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20TODO:\x20Implement\x20actual\x20API\x20call\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20//\x20STEP\x206:\x20Send\x20results\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27NETFLIX_EXPORT_PROGRESS\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20stage:\x20\x27complete\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20progress:\x2095,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Finalizing...\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.log(\x27✅\x20[NETFLIX]\x20Extraction\x20complete:\x27,\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20viewingHistory:\x20viewingHistory.items.length,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20myList:\x20myList.length,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ratings:\x20ratings.length,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20hasProfile:\x20!!profile\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20});\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27NETFLIX_EXPORT_COMPLETE\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20status:\x20\x27success\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20data:\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20viewingHistory:\x20viewingHistory,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20myList:\x20myList,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ratings:\x20ratings,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20profile:\x20profile,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20summary:\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20totalViewingHistoryItems:\x20viewingHistory.items.length,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20totalMyListItems:\x20myList.length,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20totalRatings:\x20ratings.length,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20thumbsUpCount:\x20ratings.filter(r\x20=>\x20r.rating\x20===\x20\x27thumbs_up\x27).length,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20thumbsDownCount:\x20ratings.filter(r\x20=>\x20r.rating\x20===\x20\x27thumbs_down\x27).length,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20profileName:\x20profile?.profileName\x20||\x20\x27unknown\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20},\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20tokenExpiry:\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20expiry:\x20tokenData.expiry,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20isExpired:\x20false,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20},\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20profileId:\x20profileId,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20},\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20success:\x20true\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x20catch\x20(error)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20console.error(\x27❌\x20[NETFLIX]\x20Export\x20failed:\x27,\x20error.message);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27NETFLIX_EXPORT_ERROR\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20status:\x20\x27error\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Fetch\x20failed:\x20\x27\x20+\x20error.message,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20success:\x20false\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20})();\x0a\x0a\x20\x20\x20\x20}\x20catch\x20(error)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20console.error(\x27❌\x20[NETFLIX]\x20Init\x20error:\x27,\x20error.message);\x0a\x20\x20\x20\x20\x20\x20\x20\x20window.ReactNativeWebView.postMessage(JSON.stringify({\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type:\x20\x27NETFLIX_EXPORT_ERROR\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20status:\x20\x27error\x27,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20message:\x20\x27Script\x20error:\x20\x27\x20+\x20error.message,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20success:\x20false\x0a\x20\x20\x20\x20\x20\x20\x20\x20}));\x0a\x20\x20\x20\x20}\x0a})();\x0atrue;\x0a',NETFLIX_SUCCESS_SCRIPT=exports[_0x1215(0x2)]=_0x1215(0x6),NETFLIX_ERROR_SCRIPT=exports[_0x1215(0x7)]='\x0a(function()\x20{\x0a\x20\x20\x20\x20console.log(\x27❌\x20Netflix\x20export\x20failed!\x27);\x0a})();\x0atrue;\x0a';