403Webshell
Server IP : 80.87.202.40  /  Your IP : 216.73.216.169
Web Server : Apache
System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64
User : bitrix ( 600)
PHP Version : 8.2.27
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : ON |  Perl : ON |  Python : OFF |  Sudo : ON |  Pkexec : ON
Directory :  /home/bitrix/ext_www/cvetdv.ru/bitrix/js/im/v2/provider/service/recent/dist/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/cvetdv.ru/bitrix/js/im/v2/provider/service/recent/dist/recent.bundle.js.map
{"version":3,"file":"recent.bundle.js","sources":["../src/classes/recent-data-extractor.js","../src/recent.js"],"sourcesContent":["import { Type } from 'main.core';\n\nimport { Core } from 'im.v2.application.core';\nimport { ChatType, UserRole, MessageStatus, FakeMessagePrefix } from 'im.v2.const';\n\nimport type { ImModelMessage } from 'im.v2.model';\nimport type {\n\tRawUser,\n\tRawChat,\n\tRawRecentItem,\n\tRawMessage,\n\tRawCopilot,\n\tRawMessagesAutoDeleteConfig,\n} from 'im.v2.provider.service.types';\nimport type { RecentRestResult } from '../types/recent';\n\ntype RecentFile = {\n\tid: number,\n\tname: string,\n\ttype: string,\n};\n\ntype ExtractionResult = {\n\tusers: RawUser[],\n\tchats: RawChat[],\n\tmessages: RawMessage[],\n\tfiles: RecentFile[],\n\trecentItems: RawRecentItem[],\n\tcopilot?: RawCopilot,\n\tmessagesAutoDeleteConfigs: RawMessagesAutoDeleteConfig[],\n};\n\nexport class RecentDataExtractor\n{\n\t#restResult: RecentRestResult;\n\t#withBirthdays: boolean;\n\n\t#users: { [id: string]: RawUser } = {};\n\t#chats: { [id: string]: RawChat } = {};\n\t#messages: { [id: string]: RawMessage } = {};\n\t#files: { [id: string]: RecentFile } = {};\n\t#recentItems: { [id: string]: RawRecentItem } = {};\n\n\tconstructor(params: { rawData: RecentRestResult, withBirthdays?: boolean })\n\t{\n\t\tconst { rawData, withBirthdays = true } = params;\n\t\tthis.#withBirthdays = withBirthdays;\n\t\tthis.#restResult = rawData;\n\t}\n\n\tgetItems(): ExtractionResult\n\t{\n\t\tconst { items = [], copilot, messagesAutoDeleteConfigs } = this.#restResult;\n\t\titems.forEach((item: RawRecentItem) => {\n\t\t\tthis.#extractUser(item);\n\t\t\tthis.#extractChat(item);\n\t\t\tthis.#extractMessage(item);\n\t\t\tthis.#extractRecentItem(item);\n\t\t});\n\n\t\tthis.#extractBirthdayItems();\n\n\t\treturn {\n\t\t\tusers: Object.values(this.#users),\n\t\t\tchats: Object.values(this.#chats),\n\t\t\tmessages: Object.values(this.#messages),\n\t\t\tfiles: Object.values(this.#files),\n\t\t\trecentItems: Object.values(this.#recentItems),\n\t\t\tcopilot,\n\t\t\tmessagesAutoDeleteConfigs,\n\t\t};\n\t}\n\n\t#extractUser(item: RawRecentItem)\n\t{\n\t\tif (item.user?.id && !this.#users[item.user.id])\n\t\t{\n\t\t\tthis.#users[item.user.id] = item.user;\n\t\t}\n\t}\n\n\t#extractChat(item: RawRecentItem)\n\t{\n\t\tif (item.type === ChatType.chat)\n\t\t{\n\t\t\tthis.#chats[item.id] = this.#prepareGroupChat(item);\n\n\t\t\tif (item.user.id && !this.#chats[item.user.id])\n\t\t\t{\n\t\t\t\tthis.#chats[item.user.id] = this.#prepareChatForAdditionalUser(item.user);\n\t\t\t}\n\t\t}\n\t\telse if (item.type === ChatType.user)\n\t\t{\n\t\t\tconst existingRecentItem = Core.getStore().getters['recent/get'](item.user.id);\n\t\t\t// we should not update real chat with \"default\" chat data\n\t\t\tif (!existingRecentItem || !item.options.default_user_record)\n\t\t\t{\n\t\t\t\tthis.#chats[item.user.id] = this.#prepareChatForUser(item);\n\t\t\t}\n\t\t}\n\t}\n\n\t#extractMessage(item: RawRecentItem): void\n\t{\n\t\tconst message = item.message;\n\t\tif (!message)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tif (message.id === 0)\n\t\t{\n\t\t\tmessage.id = `${FakeMessagePrefix}-${item.id}`;\n\t\t}\n\n\t\tlet viewedByOthers = false;\n\t\tif (message.status === MessageStatus.delivered)\n\t\t{\n\t\t\tviewedByOthers = true;\n\t\t}\n\n\t\tconst existingMessage: ImModelMessage = Core.getStore().getters['messages/getById'](message.id);\n\t\t// recent has shortened attach format, we should not rewrite attach if model has it\n\t\tif (Type.isArrayFilled(existingMessage?.attach))\n\t\t{\n\t\t\tdelete message.attach;\n\t\t}\n\n\t\tif (Type.isPlainObject(message.file))\n\t\t{\n\t\t\tconst file: RecentFile = message.file;\n\t\t\tif (existingMessage)\n\t\t\t{\n\t\t\t\t// recent doesn't know about several files in one message,\n\t\t\t\t// we should not rewrite message files, so we merge it.\n\t\t\t\tmessage.files = this.#mergeFileIds(existingMessage, file.id);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tmessage.files = [file.id];\n\t\t\t}\n\n\t\t\tconst existingFile = Core.getStore().getters['files/get'](file.id);\n\t\t\t// recent has shortened file format, we should not rewrite file if model has it\n\t\t\tif (!existingFile)\n\t\t\t{\n\t\t\t\tthis.#files[file.id] = file;\n\t\t\t}\n\t\t}\n\n\t\tthis.#messages[message.id] = { ...message, viewedByOthers };\n\t}\n\n\t#extractRecentItem(item: RawRecentItem): void\n\t{\n\t\tconst messageId = item.message?.id ?? 0;\n\t\tthis.#recentItems[item.id] = { ...item, messageId };\n\t}\n\n\t#extractBirthdayItems()\n\t{\n\t\tif (!this.#withBirthdays)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst { birthdayList = [] } = this.#restResult;\n\t\tbirthdayList.forEach((item) => {\n\t\t\tif (!this.#users[item.id])\n\t\t\t{\n\t\t\t\tthis.#users[item.id] = item;\n\t\t\t}\n\n\t\t\tif (!this.#chats[item.id])\n\t\t\t{\n\t\t\t\tthis.#chats[item.id] = this.#prepareChatForAdditionalUser(item);\n\t\t\t}\n\n\t\t\tif (!this.#recentItems[item.id])\n\t\t\t{\n\t\t\t\tconst messageId = `${FakeMessagePrefix}-${item.id}`;\n\t\t\t\tthis.#recentItems[item.id] = { ...this.#getBirthdayPlaceholder(item), messageId };\n\t\t\t\tthis.#messages[messageId] = { id: messageId };\n\t\t\t}\n\t\t});\n\t}\n\n\t#prepareGroupChat(item: RawRecentItem): RawChat\n\t{\n\t\treturn {\n\t\t\t...item.chat,\n\t\t\tcounter: item.counter,\n\t\t\tdialogId: item.id,\n\t\t};\n\t}\n\n\t#prepareChatForUser(item: RawRecentItem): RawChat\n\t{\n\t\treturn {\n\t\t\tchatId: item.chat_id,\n\t\t\tavatar: item.user.avatar,\n\t\t\tcolor: item.user.color,\n\t\t\tdialogId: item.id,\n\t\t\tname: item.user.name,\n\t\t\ttype: ChatType.user,\n\t\t\tcounter: item.counter,\n\t\t\trole: UserRole.member,\n\t\t\tbackgroundId: item.chat.background_id,\n\t\t\ttextFieldEnabled: item.chat.text_field_enabled,\n\t\t};\n\t}\n\n\t#prepareChatForAdditionalUser(user: RawUser): RawChat\n\t{\n\t\treturn {\n\t\t\tdialogId: user.id,\n\t\t\tavatar: user.avatar,\n\t\t\tcolor: user.color,\n\t\t\tname: user.name,\n\t\t\ttype: ChatType.user,\n\t\t\trole: UserRole.member,\n\t\t};\n\t}\n\n\t#getBirthdayPlaceholder(item: RawRecentItem): { id: string, isBirthdayPlaceholder: true }\n\t{\n\t\treturn {\n\t\t\tid: item.id,\n\t\t\tisBirthdayPlaceholder: true,\n\t\t};\n\t}\n\n\t#mergeFileIds(existingMessage: ImModelMessage, fileId: number): number[]\n\t{\n\t\tconst existingMessageFilesIds = existingMessage.files.map((id) => {\n\t\t\treturn Number.parseInt(id, 10);\n\t\t});\n\t\tconst setOfFileIds = new Set([...existingMessageFilesIds, fileId]);\n\n\t\treturn [...setOfFileIds];\n\t}\n}\n","import { Core } from 'im.v2.application.core';\nimport { RestMethod } from 'im.v2.const';\nimport { Logger } from 'im.v2.lib.logger';\nimport { CopilotManager } from 'im.v2.lib.copilot';\nimport { LayoutManager } from 'im.v2.lib.layout';\n\nimport { RecentDataExtractor } from './classes/recent-data-extractor';\n\nimport type { JsonObject } from 'main.core';\nimport type { ImModelRecentItem } from 'im.v2.model';\n\nexport class RecentService\n{\n\tstatic instance = null;\n\n\tdataIsPreloaded: boolean = false;\n\tfirstPageIsLoaded: boolean = false;\n\titemsPerPage: number = 50;\n\tisLoading: boolean = false;\n\tpagesLoaded: number = 0;\n\thasMoreItemsToLoad: boolean = true;\n\tlastMessageDate: string = null;\n\n\tstatic getInstance(): RecentService\n\t{\n\t\tif (!this.instance)\n\t\t{\n\t\t\tthis.instance = new this();\n\t\t}\n\n\t\treturn this.instance;\n\t}\n\n\t// region public\n\tgetCollection(): ImModelRecentItem[]\n\t{\n\t\treturn Core.getStore().getters['recent/getRecentCollection'];\n\t}\n\n\tasync loadFirstPage({ ignorePreloadedItems = false } = {}): Promise\n\t{\n\t\tif (this.dataIsPreloaded && !ignorePreloadedItems)\n\t\t{\n\t\t\tLogger.warn('Im.RecentList: first page was preloaded');\n\n\t\t\treturn Promise.resolve();\n\t\t}\n\t\tthis.isLoading = true;\n\n\t\tconst result = await this.requestItems({ firstPage: true });\n\t\tthis.firstPageIsLoaded = true;\n\n\t\treturn result;\n\t}\n\n\tloadNextPage(): Promise\n\t{\n\t\tif (this.isLoading || !this.hasMoreItemsToLoad)\n\t\t{\n\t\t\treturn Promise.resolve();\n\t\t}\n\n\t\tthis.isLoading = true;\n\n\t\treturn this.requestItems();\n\t}\n\n\tsetPreloadedData(params)\n\t{\n\t\tLogger.warn('Im.RecentList: setting preloaded data', params);\n\t\tconst { items, hasMore } = params;\n\n\t\tthis.lastMessageDate = this.getLastMessageDate(items);\n\n\t\tif (!hasMore)\n\t\t{\n\t\t\tthis.hasMoreItemsToLoad = false;\n\t\t}\n\n\t\tthis.dataIsPreloaded = true;\n\n\t\tvoid this.updateModels(params);\n\t}\n\n\thideChat(dialogId: string): void\n\t{\n\t\tLogger.warn('Im.RecentList: hide chat', dialogId);\n\t\tconst recentItem = Core.getStore().getters['recent/get'](dialogId);\n\t\tif (!recentItem)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tvoid Core.getStore().dispatch('recent/delete', { id: dialogId });\n\n\t\tconst chatIsOpened = Core.getStore().getters['application/isChatOpen'](dialogId);\n\t\tif (chatIsOpened)\n\t\t{\n\t\t\tLayoutManager.getInstance().clearCurrentLayoutEntityId();\n\t\t\tvoid LayoutManager.getInstance().deleteLastOpenedElementById(dialogId);\n\t\t}\n\n\t\tCore.getRestClient().callMethod(RestMethod.imRecentHide, { DIALOG_ID: dialogId })\n\t\t\t.catch((result: RestResult) => {\n\t\t\t\tconsole.error('Im.RecentList: hide chat error', result.error());\n\t\t\t});\n\t}\n\t// endregion public\n\n\tasync requestItems({ firstPage = false } = {}): Promise\n\t{\n\t\tconst queryParams = this.getQueryParams(firstPage);\n\n\t\tconst result: RestResult = await Core.getRestClient().callMethod(this.getQueryMethod(), queryParams)\n\t\t\t.catch((errorResult: RestResult) => {\n\t\t\t\tconsole.error('Im.RecentList: page request error', errorResult.error());\n\t\t\t});\n\n\t\tthis.pagesLoaded++;\n\t\tLogger.warn(`Im.RecentList: ${firstPage ? 'First' : this.pagesLoaded} page request result`, result.data());\n\t\tconst { items, hasMore } = result.data();\n\t\tthis.lastMessageDate = this.getLastMessageDate(items);\n\t\tif (!hasMore)\n\t\t{\n\t\t\tthis.hasMoreItemsToLoad = false;\n\t\t}\n\n\t\tthis.isLoading = false;\n\n\t\treturn this.updateModels(result.data());\n\t}\n\n\tgetQueryMethod(): string\n\t{\n\t\treturn RestMethod.imRecentList;\n\t}\n\n\tgetQueryParams(firstPage: boolean): JsonObject\n\t{\n\t\treturn {\n\t\t\tSKIP_OPENLINES: 'Y',\n\t\t\tLIMIT: this.itemsPerPage,\n\t\t\tLAST_MESSAGE_DATE: firstPage ? null : this.lastMessageDate,\n\t\t\tGET_ORIGINAL_TEXT: 'Y',\n\t\t\tPARSE_TEXT: 'Y',\n\t\t};\n\t}\n\n\tgetModelSaveMethod(): string\n\t{\n\t\treturn 'recent/setRecent';\n\t}\n\n\tupdateModels(rawData): Promise\n\t{\n\t\tconst extractor = new RecentDataExtractor({ rawData, ...this.getExtractorOptions() });\n\t\tconst extractedItems = extractor.getItems();\n\t\tconst {\n\t\t\tusers,\n\t\t\tchats,\n\t\t\tmessages,\n\t\t\tfiles,\n\t\t\trecentItems,\n\t\t\tcopilot,\n\t\t\tmessagesAutoDeleteConfigs,\n\t\t} = extractedItems;\n\t\tLogger.warn('RecentService: prepared data for models', extractedItems);\n\n\t\tconst usersPromise = Core.getStore().dispatch('users/set', users);\n\t\tconst dialoguesPromise = Core.getStore().dispatch('chats/set', chats);\n\t\tconst autoDeletePromise = Core.getStore().dispatch('chats/autoDelete/set', messagesAutoDeleteConfigs);\n\t\tconst messagesPromise = Core.getStore().dispatch('messages/store', messages);\n\t\tconst filesPromise = Core.getStore().dispatch('files/set', files);\n\t\tconst recentPromise = Core.getStore().dispatch(this.getModelSaveMethod(), recentItems);\n\n\t\tconst copilotManager = new CopilotManager();\n\t\tconst copilotPromise = copilotManager.handleRecentListResponse(copilot);\n\n\t\treturn Promise.all([\n\t\t\tusersPromise,\n\t\t\tdialoguesPromise,\n\t\t\tmessagesPromise,\n\t\t\tfilesPromise,\n\t\t\trecentPromise,\n\t\t\tcopilotPromise,\n\t\t\tautoDeletePromise,\n\t\t]);\n\t}\n\n\tgetLastMessageDate(items: Array): string\n\t{\n\t\tif (items.length === 0)\n\t\t{\n\t\t\treturn '';\n\t\t}\n\n\t\treturn items.slice(-1)[0].message.date;\n\t}\n\n\tgetExtractorOptions(): { withBirthdays?: boolean }\n\t{\n\t\treturn {};\n\t}\n}\n"],"names":["RecentDataExtractor","constructor","params","rawData","withBirthdays","getItems","items","copilot","messagesAutoDeleteConfigs","forEach","item","users","Object","values","chats","messages","files","recentItems","user","id","type","ChatType","chat","existingRecentItem","Core","getStore","getters","options","default_user_record","message","FakeMessagePrefix","viewedByOthers","status","MessageStatus","delivered","existingMessage","Type","isArrayFilled","attach","isPlainObject","file","existingFile","messageId","birthdayList","counter","dialogId","chatId","chat_id","avatar","color","name","role","UserRole","member","backgroundId","background_id","textFieldEnabled","text_field_enabled","isBirthdayPlaceholder","fileId","existingMessageFilesIds","map","Number","parseInt","setOfFileIds","Set","RecentService","dataIsPreloaded","firstPageIsLoaded","itemsPerPage","isLoading","pagesLoaded","hasMoreItemsToLoad","lastMessageDate","getInstance","instance","getCollection","loadFirstPage","ignorePreloadedItems","Logger","warn","Promise","resolve","result","requestItems","firstPage","loadNextPage","setPreloadedData","hasMore","getLastMessageDate","updateModels","hideChat","recentItem","dispatch","chatIsOpened","LayoutManager","clearCurrentLayoutEntityId","deleteLastOpenedElementById","getRestClient","callMethod","RestMethod","imRecentHide","DIALOG_ID","catch","console","error","queryParams","getQueryParams","getQueryMethod","errorResult","data","imRecentList","SKIP_OPENLINES","LIMIT","LAST_MESSAGE_DATE","GET_ORIGINAL_TEXT","PARSE_TEXT","getModelSaveMethod","extractor","getExtractorOptions","extractedItems","usersPromise","dialoguesPromise","autoDeletePromise","messagesPromise","filesPromise","recentPromise","copilotManager","CopilotManager","copilotPromise","handleRecentListResponse","all","length","slice","date"],"mappings":";;;;;;;CAGmF;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;AA6BnF,CAAO,MAAMA,mBAAmB,CAChC;GAUCC,WAAW,CAACC,MAA8D,EAC1E;KAAA;OAAA;;KAAA;OAAA;;KAAA;OAAA;;KAAA;OAAA;;KAAA;OAAA;;KAAA;OAAA;;KAAA;OAAA;;KAAA;OAAA;;KAAA;OAAA;;KAAA;OAAA;;KAAA;OAAA;OAAA;;KAAA;OAAA;OAAA;;KAAA;OAAA;OAAA,OAPoC;;KAAE;OAAA;OAAA,OACF;;KAAE;OAAA;OAAA,OACI;;KAAE;OAAA;OAAA,OACL;;KAAE;OAAA;OAAA,OACO;;KAI/C,MAAM;OAAEC,OAAO;OAAEC,aAAa,GAAG;MAAM,GAAGF,MAAM;KAChD,4CAAI,oCAAkBE,aAAa;KACnC,4CAAI,8BAAeD,OAAO;;GAG3BE,QAAQ,GACR;KACC,MAAM;OAAEC,KAAK,GAAG,EAAE;OAAEC,OAAO;OAAEC;MAA2B,2CAAG,IAAI,2BAAY;KAC3EF,KAAK,CAACG,OAAO,CAAEC,IAAmB,IAAK;OACtC,4CAAI,8BAAcA,IAAI;OACtB,4CAAI,8BAAcA,IAAI;OACtB,4CAAI,oCAAiBA,IAAI;OACzB,4CAAI,0CAAoBA,IAAI;MAC5B,CAAC;KAEF,4CAAI;KAEJ,OAAO;OACNC,KAAK,EAAEC,MAAM,CAACC,MAAM,yCAAC,IAAI,kBAAQ;OACjCC,KAAK,EAAEF,MAAM,CAACC,MAAM,yCAAC,IAAI,kBAAQ;OACjCE,QAAQ,EAAEH,MAAM,CAACC,MAAM,yCAAC,IAAI,wBAAW;OACvCG,KAAK,EAAEJ,MAAM,CAACC,MAAM,yCAAC,IAAI,kBAAQ;OACjCI,WAAW,EAAEL,MAAM,CAACC,MAAM,yCAAC,IAAI,8BAAc;OAC7CN,OAAO;OACPC;MACA;;CA4KH;CAAC,uBAzKaE,IAAmB,EAChC;GAAA;GACC,IAAI,cAAAA,IAAI,CAACQ,IAAI,aAAT,WAAWC,EAAE,IAAI,CAAC,4CAAI,kBAAQT,IAAI,CAACQ,IAAI,CAACC,EAAE,CAAC,EAC/C;KACC,4CAAI,kBAAQT,IAAI,CAACQ,IAAI,CAACC,EAAE,CAAC,GAAGT,IAAI,CAACQ,IAAI;;CAEvC;CAAC,uBAEYR,IAAmB,EAChC;GACC,IAAIA,IAAI,CAACU,IAAI,KAAKC,oBAAQ,CAACC,IAAI,EAC/B;KACC,4CAAI,kBAAQZ,IAAI,CAACS,EAAE,CAAC,2CAAG,IAAI,wCAAmBT,IAAI,CAAC;KAEnD,IAAIA,IAAI,CAACQ,IAAI,CAACC,EAAE,IAAI,CAAC,4CAAI,kBAAQT,IAAI,CAACQ,IAAI,CAACC,EAAE,CAAC,EAC9C;OACC,4CAAI,kBAAQT,IAAI,CAACQ,IAAI,CAACC,EAAE,CAAC,2CAAG,IAAI,gEAA+BT,IAAI,CAACQ,IAAI,CAAC;;IAE1E,MACI,IAAIR,IAAI,CAACU,IAAI,KAAKC,oBAAQ,CAACH,IAAI,EACpC;KACC,MAAMK,kBAAkB,GAAGC,2BAAI,CAACC,QAAQ,EAAE,CAACC,OAAO,CAAC,YAAY,CAAC,CAAChB,IAAI,CAACQ,IAAI,CAACC,EAAE,CAAC;;KAE9E,IAAI,CAACI,kBAAkB,IAAI,CAACb,IAAI,CAACiB,OAAO,CAACC,mBAAmB,EAC5D;OACC,4CAAI,kBAAQlB,IAAI,CAACQ,IAAI,CAACC,EAAE,CAAC,2CAAG,IAAI,4CAAqBT,IAAI,CAAC;;;CAG7D;CAAC,0BAEeA,IAAmB,EACnC;GACC,MAAMmB,OAAO,GAAGnB,IAAI,CAACmB,OAAO;GAC5B,IAAI,CAACA,OAAO,EACZ;KACC;;GAGD,IAAIA,OAAO,CAACV,EAAE,KAAK,CAAC,EACpB;KACCU,OAAO,CAACV,EAAE,GAAI,GAAEW,6BAAkB,IAAGpB,IAAI,CAACS,EAAG,EAAC;;GAG/C,IAAIY,cAAc,GAAG,KAAK;GAC1B,IAAIF,OAAO,CAACG,MAAM,KAAKC,yBAAa,CAACC,SAAS,EAC9C;KACCH,cAAc,GAAG,IAAI;;GAGtB,MAAMI,eAA+B,GAAGX,2BAAI,CAACC,QAAQ,EAAE,CAACC,OAAO,CAAC,kBAAkB,CAAC,CAACG,OAAO,CAACV,EAAE,CAAC;;GAE/F,IAAIiB,cAAI,CAACC,aAAa,CAACF,eAAe,oBAAfA,eAAe,CAAEG,MAAM,CAAC,EAC/C;KACC,OAAOT,OAAO,CAACS,MAAM;;GAGtB,IAAIF,cAAI,CAACG,aAAa,CAACV,OAAO,CAACW,IAAI,CAAC,EACpC;KACC,MAAMA,IAAgB,GAAGX,OAAO,CAACW,IAAI;KACrC,IAAIL,eAAe,EACnB;;;OAGCN,OAAO,CAACb,KAAK,2CAAG,IAAI,gCAAemB,eAAe,EAAEK,IAAI,CAACrB,EAAE,CAAC;MAC5D,MAED;OACCU,OAAO,CAACb,KAAK,GAAG,CAACwB,IAAI,CAACrB,EAAE,CAAC;;KAG1B,MAAMsB,YAAY,GAAGjB,2BAAI,CAACC,QAAQ,EAAE,CAACC,OAAO,CAAC,WAAW,CAAC,CAACc,IAAI,CAACrB,EAAE,CAAC;;KAElE,IAAI,CAACsB,YAAY,EACjB;OACC,4CAAI,kBAAQD,IAAI,CAACrB,EAAE,CAAC,GAAGqB,IAAI;;;GAI7B,4CAAI,wBAAWX,OAAO,CAACV,EAAE,CAAC,GAAG;KAAE,GAAGU,OAAO;KAAEE;IAAgB;CAC5D;CAAC,6BAEkBrB,IAAmB,EACtC;GAAA;GACC,MAAMgC,SAAS,wCAAGhC,IAAI,CAACmB,OAAO,qBAAZ,cAAcV,EAAE,+BAAI,CAAC;GACvC,4CAAI,8BAAcT,IAAI,CAACS,EAAE,CAAC,GAAG;KAAE,GAAGT,IAAI;KAAEgC;IAAW;CACpD;CAAC,kCAGD;GACC,IAAI,yCAAC,IAAI,iCAAe,EACxB;KACC;;GAGD,MAAM;KAAEC,YAAY,GAAG;IAAI,2CAAG,IAAI,2BAAY;GAC9CA,YAAY,CAAClC,OAAO,CAAEC,IAAI,IAAK;KAC9B,IAAI,CAAC,4CAAI,kBAAQA,IAAI,CAACS,EAAE,CAAC,EACzB;OACC,4CAAI,kBAAQT,IAAI,CAACS,EAAE,CAAC,GAAGT,IAAI;;KAG5B,IAAI,CAAC,4CAAI,kBAAQA,IAAI,CAACS,EAAE,CAAC,EACzB;OACC,4CAAI,kBAAQT,IAAI,CAACS,EAAE,CAAC,2CAAG,IAAI,gEAA+BT,IAAI,CAAC;;KAGhE,IAAI,CAAC,4CAAI,8BAAcA,IAAI,CAACS,EAAE,CAAC,EAC/B;OACC,MAAMuB,SAAS,GAAI,GAAEZ,6BAAkB,IAAGpB,IAAI,CAACS,EAAG,EAAC;OACnD,4CAAI,8BAAcT,IAAI,CAACS,EAAE,CAAC,GAAG;SAAE,2CAAG,IAAI,oDAAyBT,IAAI,CAAC;SAAEgC;QAAW;OACjF,4CAAI,wBAAWA,SAAS,CAAC,GAAG;SAAEvB,EAAE,EAAEuB;QAAW;;IAE9C,CAAC;CACH;CAAC,4BAEiBhC,IAAmB,EACrC;GACC,OAAO;KACN,GAAGA,IAAI,CAACY,IAAI;KACZsB,OAAO,EAAElC,IAAI,CAACkC,OAAO;KACrBC,QAAQ,EAAEnC,IAAI,CAACS;IACf;CACF;CAAC,8BAEmBT,IAAmB,EACvC;GACC,OAAO;KACNoC,MAAM,EAAEpC,IAAI,CAACqC,OAAO;KACpBC,MAAM,EAAEtC,IAAI,CAACQ,IAAI,CAAC8B,MAAM;KACxBC,KAAK,EAAEvC,IAAI,CAACQ,IAAI,CAAC+B,KAAK;KACtBJ,QAAQ,EAAEnC,IAAI,CAACS,EAAE;KACjB+B,IAAI,EAAExC,IAAI,CAACQ,IAAI,CAACgC,IAAI;KACpB9B,IAAI,EAAEC,oBAAQ,CAACH,IAAI;KACnB0B,OAAO,EAAElC,IAAI,CAACkC,OAAO;KACrBO,IAAI,EAAEC,oBAAQ,CAACC,MAAM;KACrBC,YAAY,EAAE5C,IAAI,CAACY,IAAI,CAACiC,aAAa;KACrCC,gBAAgB,EAAE9C,IAAI,CAACY,IAAI,CAACmC;IAC5B;CACF;CAAC,wCAE6BvC,IAAa,EAC3C;GACC,OAAO;KACN2B,QAAQ,EAAE3B,IAAI,CAACC,EAAE;KACjB6B,MAAM,EAAE9B,IAAI,CAAC8B,MAAM;KACnBC,KAAK,EAAE/B,IAAI,CAAC+B,KAAK;KACjBC,IAAI,EAAEhC,IAAI,CAACgC,IAAI;KACf9B,IAAI,EAAEC,oBAAQ,CAACH,IAAI;KACnBiC,IAAI,EAAEC,oBAAQ,CAACC;IACf;CACF;CAAC,kCAEuB3C,IAAmB,EAC3C;GACC,OAAO;KACNS,EAAE,EAAET,IAAI,CAACS,EAAE;KACXuC,qBAAqB,EAAE;IACvB;CACF;CAAC,wBAEavB,eAA+B,EAAEwB,MAAc,EAC7D;GACC,MAAMC,uBAAuB,GAAGzB,eAAe,CAACnB,KAAK,CAAC6C,GAAG,CAAE1C,EAAE,IAAK;KACjE,OAAO2C,MAAM,CAACC,QAAQ,CAAC5C,EAAE,EAAE,EAAE,CAAC;IAC9B,CAAC;GACF,MAAM6C,YAAY,GAAG,IAAIC,GAAG,CAAC,CAAC,GAAGL,uBAAuB,EAAED,MAAM,CAAC,CAAC;GAElE,OAAO,CAAC,GAAGK,YAAY,CAAC;CACzB;;CCtOM,MAAME,aAAa,CAC1B;GAAA;KAAA,KAGCC,eAAe,GAAY,KAAK;KAAA,KAChCC,iBAAiB,GAAY,KAAK;KAAA,KAClCC,YAAY,GAAW,EAAE;KAAA,KACzBC,SAAS,GAAY,KAAK;KAAA,KAC1BC,WAAW,GAAW,CAAC;KAAA,KACvBC,kBAAkB,GAAY,IAAI;KAAA,KAClCC,eAAe,GAAW,IAAI;;GAE9B,OAAOC,WAAW,GAClB;KACC,IAAI,CAAC,IAAI,CAACC,QAAQ,EAClB;OACC,IAAI,CAACA,QAAQ,GAAG,IAAI,IAAI,EAAE;;KAG3B,OAAO,IAAI,CAACA,QAAQ;;;;GAIrBC,aAAa,GACb;KACC,OAAOpD,2BAAI,CAACC,QAAQ,EAAE,CAACC,OAAO,CAAC,4BAA4B,CAAC;;GAG7D,MAAMmD,aAAa,CAAC;KAAEC,oBAAoB,GAAG;IAAO,GAAG,EAAE,EACzD;KACC,IAAI,IAAI,CAACX,eAAe,IAAI,CAACW,oBAAoB,EACjD;OACCC,uBAAM,CAACC,IAAI,CAAC,yCAAyC,CAAC;OAEtD,OAAOC,OAAO,CAACC,OAAO,EAAE;;KAEzB,IAAI,CAACZ,SAAS,GAAG,IAAI;KAErB,MAAMa,MAAM,GAAG,MAAM,IAAI,CAACC,YAAY,CAAC;OAAEC,SAAS,EAAE;MAAM,CAAC;KAC3D,IAAI,CAACjB,iBAAiB,GAAG,IAAI;KAE7B,OAAOe,MAAM;;GAGdG,YAAY,GACZ;KACC,IAAI,IAAI,CAAChB,SAAS,IAAI,CAAC,IAAI,CAACE,kBAAkB,EAC9C;OACC,OAAOS,OAAO,CAACC,OAAO,EAAE;;KAGzB,IAAI,CAACZ,SAAS,GAAG,IAAI;KAErB,OAAO,IAAI,CAACc,YAAY,EAAE;;GAG3BG,gBAAgB,CAACrF,MAAM,EACvB;KACC6E,uBAAM,CAACC,IAAI,CAAC,uCAAuC,EAAE9E,MAAM,CAAC;KAC5D,MAAM;OAAEI,KAAK;OAAEkF;MAAS,GAAGtF,MAAM;KAEjC,IAAI,CAACuE,eAAe,GAAG,IAAI,CAACgB,kBAAkB,CAACnF,KAAK,CAAC;KAErD,IAAI,CAACkF,OAAO,EACZ;OACC,IAAI,CAAChB,kBAAkB,GAAG,KAAK;;KAGhC,IAAI,CAACL,eAAe,GAAG,IAAI;KAE3B,KAAK,IAAI,CAACuB,YAAY,CAACxF,MAAM,CAAC;;GAG/ByF,QAAQ,CAAC9C,QAAgB,EACzB;KACCkC,uBAAM,CAACC,IAAI,CAAC,0BAA0B,EAAEnC,QAAQ,CAAC;KACjD,MAAM+C,UAAU,GAAGpE,2BAAI,CAACC,QAAQ,EAAE,CAACC,OAAO,CAAC,YAAY,CAAC,CAACmB,QAAQ,CAAC;KAClE,IAAI,CAAC+C,UAAU,EACf;OACC;;KAGD,KAAKpE,2BAAI,CAACC,QAAQ,EAAE,CAACoE,QAAQ,CAAC,eAAe,EAAE;OAAE1E,EAAE,EAAE0B;MAAU,CAAC;KAEhE,MAAMiD,YAAY,GAAGtE,2BAAI,CAACC,QAAQ,EAAE,CAACC,OAAO,CAAC,wBAAwB,CAAC,CAACmB,QAAQ,CAAC;KAChF,IAAIiD,YAAY,EAChB;OACCC,8BAAa,CAACrB,WAAW,EAAE,CAACsB,0BAA0B,EAAE;OACxD,KAAKD,8BAAa,CAACrB,WAAW,EAAE,CAACuB,2BAA2B,CAACpD,QAAQ,CAAC;;KAGvErB,2BAAI,CAAC0E,aAAa,EAAE,CAACC,UAAU,CAACC,sBAAU,CAACC,YAAY,EAAE;OAAEC,SAAS,EAAEzD;MAAU,CAAC,CAC/E0D,KAAK,CAAEpB,MAAkB,IAAK;OAC9BqB,OAAO,CAACC,KAAK,CAAC,gCAAgC,EAAEtB,MAAM,CAACsB,KAAK,EAAE,CAAC;MAC/D,CAAC;;;;GAIJ,MAAMrB,YAAY,CAAC;KAAEC,SAAS,GAAG;IAAO,GAAG,EAAE,EAC7C;KACC,MAAMqB,WAAW,GAAG,IAAI,CAACC,cAAc,CAACtB,SAAS,CAAC;KAElD,MAAMF,MAAkB,GAAG,MAAM3D,2BAAI,CAAC0E,aAAa,EAAE,CAACC,UAAU,CAAC,IAAI,CAACS,cAAc,EAAE,EAAEF,WAAW,CAAC,CAClGH,KAAK,CAAEM,WAAuB,IAAK;OACnCL,OAAO,CAACC,KAAK,CAAC,mCAAmC,EAAEI,WAAW,CAACJ,KAAK,EAAE,CAAC;MACvE,CAAC;KAEH,IAAI,CAAClC,WAAW,EAAE;KAClBQ,uBAAM,CAACC,IAAI,CAAE,kBAAiBK,SAAS,GAAG,OAAO,GAAG,IAAI,CAACd,WAAY,sBAAqB,EAAEY,MAAM,CAAC2B,IAAI,EAAE,CAAC;KAC1G,MAAM;OAAExG,KAAK;OAAEkF;MAAS,GAAGL,MAAM,CAAC2B,IAAI,EAAE;KACxC,IAAI,CAACrC,eAAe,GAAG,IAAI,CAACgB,kBAAkB,CAACnF,KAAK,CAAC;KACrD,IAAI,CAACkF,OAAO,EACZ;OACC,IAAI,CAAChB,kBAAkB,GAAG,KAAK;;KAGhC,IAAI,CAACF,SAAS,GAAG,KAAK;KAEtB,OAAO,IAAI,CAACoB,YAAY,CAACP,MAAM,CAAC2B,IAAI,EAAE,CAAC;;GAGxCF,cAAc,GACd;KACC,OAAOR,sBAAU,CAACW,YAAY;;GAG/BJ,cAAc,CAACtB,SAAkB,EACjC;KACC,OAAO;OACN2B,cAAc,EAAE,GAAG;OACnBC,KAAK,EAAE,IAAI,CAAC5C,YAAY;OACxB6C,iBAAiB,EAAE7B,SAAS,GAAG,IAAI,GAAG,IAAI,CAACZ,eAAe;OAC1D0C,iBAAiB,EAAE,GAAG;OACtBC,UAAU,EAAE;MACZ;;GAGFC,kBAAkB,GAClB;KACC,OAAO,kBAAkB;;GAG1B3B,YAAY,CAACvF,OAAO,EACpB;KACC,MAAMmH,SAAS,GAAG,IAAItH,mBAAmB,CAAC;OAAEG,OAAO;OAAE,GAAG,IAAI,CAACoH,mBAAmB;MAAI,CAAC;KACrF,MAAMC,cAAc,GAAGF,SAAS,CAACjH,QAAQ,EAAE;KAC3C,MAAM;OACLM,KAAK;OACLG,KAAK;OACLC,QAAQ;OACRC,KAAK;OACLC,WAAW;OACXV,OAAO;OACPC;MACA,GAAGgH,cAAc;KAClBzC,uBAAM,CAACC,IAAI,CAAC,yCAAyC,EAAEwC,cAAc,CAAC;KAEtE,MAAMC,YAAY,GAAGjG,2BAAI,CAACC,QAAQ,EAAE,CAACoE,QAAQ,CAAC,WAAW,EAAElF,KAAK,CAAC;KACjE,MAAM+G,gBAAgB,GAAGlG,2BAAI,CAACC,QAAQ,EAAE,CAACoE,QAAQ,CAAC,WAAW,EAAE/E,KAAK,CAAC;KACrE,MAAM6G,iBAAiB,GAAGnG,2BAAI,CAACC,QAAQ,EAAE,CAACoE,QAAQ,CAAC,sBAAsB,EAAErF,yBAAyB,CAAC;KACrG,MAAMoH,eAAe,GAAGpG,2BAAI,CAACC,QAAQ,EAAE,CAACoE,QAAQ,CAAC,gBAAgB,EAAE9E,QAAQ,CAAC;KAC5E,MAAM8G,YAAY,GAAGrG,2BAAI,CAACC,QAAQ,EAAE,CAACoE,QAAQ,CAAC,WAAW,EAAE7E,KAAK,CAAC;KACjE,MAAM8G,aAAa,GAAGtG,2BAAI,CAACC,QAAQ,EAAE,CAACoE,QAAQ,CAAC,IAAI,CAACwB,kBAAkB,EAAE,EAAEpG,WAAW,CAAC;KAEtF,MAAM8G,cAAc,GAAG,IAAIC,gCAAc,EAAE;KAC3C,MAAMC,cAAc,GAAGF,cAAc,CAACG,wBAAwB,CAAC3H,OAAO,CAAC;KAEvE,OAAO0E,OAAO,CAACkD,GAAG,CAAC,CAClBV,YAAY,EACZC,gBAAgB,EAChBE,eAAe,EACfC,YAAY,EACZC,aAAa,EACbG,cAAc,EACdN,iBAAiB,CACjB,CAAC;;GAGHlC,kBAAkB,CAACnF,KAAY,EAC/B;KACC,IAAIA,KAAK,CAAC8H,MAAM,KAAK,CAAC,EACtB;OACC,OAAO,EAAE;;KAGV,OAAO9H,KAAK,CAAC+H,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAACxG,OAAO,CAACyG,IAAI;;GAGvCf,mBAAmB,GACnB;KACC,OAAO,EAAE;;CAEX;CAhMarD,aAAa,CAElBS,QAAQ,GAAG,IAAI;;;;;;;;"}

Youez - 2016 - github.com/yon3zu
LinuXploit